iOS NSUserDefaults не работает, если обновить приложение с ios 9 до ios 10

У меня было приложение, работающее на iOS 9, и я создал новую сборку для iOS 10 с Xcode 8 beta 4, теперь, когда я обновляю приложение с предыдущей версии (iOS 9) до новой версии (iOS 10) в этом сценарии...

Установите предыдущую версию с Xcode 7 на iPhone (с ios 9 или 10), затем закройте приложение и установите новую версию с Xcode 8 beta 4 на том же устройстве, которое рассматривает обновление как новую установку, так что все сохраненные значения NSUserDefaults вернуть ноль!

Я протестировал пример приложения и следовал сценариям, с которыми не было проблем NSUserDefaults в этом случае, как я использовал [NSUserDefaults standardUserDefaults] чтобы сохранить и извлечь значения, но в следующей реализации, которая имеет проблему с использованием общего контейнера для сохранения данных, я полагаю, что "authorlementGroup" вызывает проблему!

SDK 10 может не распознать ранее созданный общий контейнер с помощью SDK 9! Есть ли мысли по этому поводу? Проблема в том, что я не могу исправить код, заменив [NSUserDefaults standardUserDefaults] вместо использования authorlementGroup, потому что пользователи, использующие в настоящее время предыдущую версию приложения, и любые изменения в новой версии не решают проблему, поскольку ее необходимо исправить в двух версиях.

Вот основные части кода (написанные предыдущим разработчиком):

@implementation AppDelegate

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { 

    // background launch

} else {

    //foreground launch 

    [self setupForForegroundLaunch:application option:launchOptions];

    [[TrackingManager sharedTrackingManager] setIsBackground:NO];

}

}

@end

1 ответ

Я заметил, что SDK 10 не вызывает никаких проблем с NSUserDefaults.

Это был только вопрос заказа в проекте, в AppDelegate Я звонил [[TrackingManager sharedTrackingManager] setIsBackground:NO]; до этой линии [self setupForForegroundLaunch:application option:launchOptions];

Пока я вообще инициализировал Entitlement_Group в setupForForegroundLaunch функция и в синглтоне TrackingManager class также Entitlement_Group запускается со значением nil, что вызвало проблему. Я только изменил порядок этих двух строк, и теперь все работает хорошо.

Подобные проблемы могут возникнуть в случае изменения файла прав. Пожалуйста, перейдите по следующим ссылкам.

О компании

Другие вопросы по тегам