Какой самый простой способ сравнить текущую версию вашего приложения с последней версией в магазине приложений? - PullRequest
10 голосов
/ 13 января 2011

Если iOS SDK не имеет функциональности для этого, то что, если у меня есть базовый (статический) веб-сайт, и где-то на этом веб-сайте я вручную устанавливаю часть данных, которая определяет последнюю версию моего приложения в приложениихранить каждый раз, когда я выпускаю обновление?Как я могу заставить свое приложение запрашивать у веб-сайта данные об этой версии и сравнивать их с версией, работающей на устройстве iOS?

Ответы [ 3 ]

12 голосов
/ 13 января 2011

Вы на правильном пути.Вам нужно сделать HTTP-запрос к вашей статической версии веб-страницы.Для этого вы можете использовать объект NSURLConnection .Так что-то вроде:

NSURL * url = [NSURL URLWithString:@"http://yourweb.com/version.txt"];
NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60];
 _connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];  

Тогда в вашей реализации делегата:

(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSHTTPURLResponse*)response
{
    if(response.statusCode != 200)
        // you got an error
}

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
     // again with the errors ...
}

// you got some data ... append it to your chunk
// in your case all the data should come back in one callback
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
    [mData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
   // your request finished ... check the version here
}

Итак, в вашем connectionDidFinishLoading вы смотрите на mData что вы собрали.Разберите номер версии и сравните его с номером версии вашего пакета:

[self infoValueForKey:@"CFBundleVersion"];
4 голосов
/ 17 мая 2013

Вы можете сделать запрос как http://itunes.apple.com/en/lookup?bundleId=com.easi6.doorsndots в AppStore.

Возвращая JSON имеет информацию о версии (в настоящее время в AppStore), которую можно сравнить с другой в комплекте.

1 голос
/ 21 июня 2012

Я использовал то же решение @RedBlueThing, рекомендованное во многих моих приложениях.Я масштабировал его до службы, которую другие разработчики приложений могут использовать на CleverStork - Update Manager for Apps .Надеюсь, вам, ребята, нравится:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...