Используйте NSUserDefaults
, чтобы проверить, запускается приложение в первый раз.
//In applicationDidFinishLaunching:withOptions:
BOOL hasLaunchedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"AppHasLaunchedBefore_v1.0"];
if(!hasLaunchedBefore) {
//First launch
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"AppHasLaunchedBefore_v1.0"];
}
else {
//Not first launch
}
При обновлении приложения до версии 2.0 (скажем) изменить приведенный выше ключ к AppHasLaunchedBefore_v2.0
. Этот способ для первого запуска после обновления, этот ключ не будет присутствовать в NSUserDefaults
, делая hasLaunchedBefore = NO
. Вы можете предпринять необходимые действия.
При необходимости, вы можете удалить предыдущий ключ версии из NSUserDefaults
с,
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppHasLaunchedBefore_v1.0"];
Вы можете программно получить версию пучка текущего выпущенного приложения с,
NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
//Append this to the user default key, AppHasLaunchedBefore_v%@
Надежда что помогает!
Спасибо за ваш ответ. Есть ли способ проверить это без жесткого кодирования версий. Я могу часто выпускать свою версию. Пользователь может сделать обновление версии 1.0 до 3.1 напрямую, не обновляя его до 2.0 или какого-либо другого – nik
@nik, которое ваше приложение должно знать перед тем, какую версию проверить в пользовательских настройках по умолчанию. Этот код нужно будет изменить для каждого обновления, которое вы нажимаете на магазин приложений. Поэтому, я думаю, это не имеет значения, если вы его жестко кодируете. – Amar
@nik Проверить мое редактирование – Amar