iPhone: обновленная версия не обновляет бинарный файл приложения? - PullRequest
3 голосов
/ 08 августа 2011

У меня есть несколько приложений в магазине Apple, и мы только что выпустили обновленную версию этих приложений с увеличенными номерами версий.Я обнаружил, что все ресурсы обновляются правильно (обновленный экран-заставка, фоновое изображение и т. Д.), Но недавно добавленные функции не обновляются.Например, я включил функцию, чтобы приложение для iPhone получало новое содержимое с моего веб-сайта.Это не происходит, когда я обновляю приложение из списка обновлений Appstore.

... но другая странная вещь, если я удаляю приложение с моего iPhone и загружаю его снова из магазина Apple, тогда все работает отлично !!Я не могу понять, что происходит.Кто-нибудь может помочь мне отладить это?

С этого Я получил следующий код и добавил в свой AppDelegate.Для меня это всегда версия для печати (ноль).Я мог видеть номер версии, правильно установленный в моем файле Application-info.plist, хотя!

#if DDEBUG // debugging/testing
NSString *versionString = [NSString stringWithFormat:@"v%@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]];
#else
NSString *versionString = [NSString stringWithFormat:@"Version %@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]];
#endif // DDEBUG
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:versionString forKey:@"version"];
printf("Version: = %s\n", [versionString cStringUsingEncoding:NSMacOSRomanStringEncoding]);
[defaults synchronize]; // force immediate saving of defaults.

Следующий код работает, хотя!Я имею в виду, что он печатает правильную версию, доступную в файле application-info.plist!Получил его от здесь

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"Version: %@", version);
[defaults setObject:version forKey:@"version_preference"];
[defaults synchronize];

Я могу подтвердить, исправит ли это проблему после повторной отправки приложения.

Спасибо.

1 Ответ

0 голосов
/ 07 декабря 2011

Это сработало:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"Version: %@", version);
[defaults setObject:version forKey:@"version_preference"];
[defaults synchronize];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...