Проблема обновления приложения iOS

91
7

Могу ли я добавить кнопку "проверить обновление" в интерфейсе параметров приложения, а затем отправить в магазин Apple. Будет ли это отклонено? Если я не могу добавить кнопку для проверки обновлений, есть ли другой способ определить, есть ли новое обновление приложения?

спросил(а) 2021-01-19T14:33:58+03:00 9 месяцев назад
1
1 ответ
-5

Да. Вы можете добавить, чтобы проверить доступное обновление или нет. А также вы можете узнать, доступно ли обновление или нет. Сначала вам нужно получить текущий номер версии приложения из файла info.plist. Позже вы должны получить номер версии из apple itunes. Теперь сравните оба обновления, и если версия appstore больше текущей версии, отобразите всплывающее сообщение о том, что доступно новое обновление. Вся эта вещь вы можете сделать это из AppDelegate, когда пользователь запускает приложение каждый раз, когда он основывается на ваших требованиях.

Вот как получить номера версий:

Быстрая версия

  func appUpdateAvailable(storeInfoURL: String) -> Bool
{
var upgradeAvailable = false

// Get the main bundle of the app so that we can determine the app version number
let bundle = NSBundle.mainBundle()
if let infoDictionary = bundle.infoDictionary {
// The URL for this app on the iTunes store uses the Apple ID for the This never changes, so it is a constant
let urlOnAppStore = NSURL(string: storeInfoURL)
if let dataInJSON = NSData(contentsOfURL: urlOnAppStore!) {
// Try to deserialize the JSON that we got
if let lookupResults = try? NSJSONSerialization.JSONObjectWithData(dataInJSON, options: NSJSONReadingOptions()) {
// Determine how many results we got. There should be exactly one, but will be zero if the URL was wrong
if let resultCount = lookupResults["resultCount"] as? Int {
if resultCount == 1 {
// Get the version number of the version in the App Store
if let appStoreVersion = lookupResults["results"]!![0]["version"] as? String {
// Get the version number of the current version
if let currentVersion = infoDictionary["CFBundleShortVersionString"] as? String {
// Check if they are the same. If not, an upgrade is available.
if appStoreVersion != currentVersion {
upgradeAvailable = true
}
}
}
}
}
}
}
}

return upgradeAvailable
}

Objective-C

 -(BOOL) needsUpdate{
NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString* appID = infoDictionary[@"CFBundleIdentifier"];
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
NSData* data = [NSData dataWithContentsOfURL:url];
NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

if ([lookup[@"resultCount"] integerValue] == 1){
NSString* appStoreVersion = lookup[@"results"][0][@"version"];
NSString* currentVersion = infoDictionary[@"CFBundleShortVersionString"];
if (![appStoreVersion isEqualToString:currentVersion]){
NSLog(@"Need to update [%@ != %@]", appStoreVersion, currentVersion);
return YES;
}
}
return NO;
}

ответил(а) 2021-01-19T14:33:58+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема