Строковое значение в настройках.пакет пуст после обновления

StackOverflow https://stackoverflow.com/questions/1500842

  •  19-09-2019
  •  | 
  •  

Вопрос

В целях контроля качества я отображаю версию сборки нашего приложения в представлении настроек приложения как параметр PSTitleValueSpecifier.Я устанавливаю текущий номер сборки нашего приложения в качестве значения по умолчанию и обновляю его для каждой новой сборки.

Моя проблема в том, что всякий раз, когда я развертываю новую сборку нашего приложения на телефоне разработчика через Xcode, значение версии не обновляется, а остается с предыдущей сборкой.Единственный способ обновить значение версии - это удалить приложение с телефона разработчика, а затем развернуть новую сборку.Очевидно, что такой подход не нравится нашему отделу контроля качества, поскольку в этом случае они теряют все свои сохраненные данные.

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

Кто-нибудь еще сталкивался с этой проблемой?Есть идеи о том, как это обойти / исправить?

Это было полезно?

Решение

Это связано с тем, что это значение сохраняется с помощью NSUserDefaults, которое хранится на диске и удаляется только при удалении приложения.Вы можете явно задать его в коде так же, как и у любого другого пользователя по умолчанию.Вы могли бы просто создать поле в своем Info.plist, которое вы измените, когда захотите отправить новую сборку.Прочитайте это значение из списка при запуске, а затем запишите его в настройки пользователя по умолчанию с помощью:

NSString *value = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"build_version"];
[[NSUserDefaults standardDefaults] setObject:value forKey@"build_version"];
[[NSUserDefaults standardDefaults] synchronize];

Конечно, вы заменяете "build_version" на любое другое имя вашего ключа в вашем файле настроек.Это взлом, но он может удовлетворить ваших специалистов по контролю качества.

Ради аргумента, на самом деле разумно ожидать, что вам придется полностью удалить предыдущую версию, прежде чем увидеть обновление номера версии, однако я понимаю, что не все специалисты по контролю качества разумны.;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top