Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Вы на правильном пути. Вам нужно сделать 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
}

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

[self infoValueForKey:@"CFBundleVersion"];

Ответ 2

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

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

Ответ 3

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