Вы можете воспользоваться тем фактом, что NSUserDefaults
были были удалены при удалении приложения. Например:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Clear keychain on first run in case of reinstallation
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"FirstRun"]) {
// Delete values from keychain here
[[NSUserDefaults standardUserDefaults] setValue:@"1strun" forKey:@"FirstRun"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
//...Other stuff that usually happens in didFinishLaunching
}
Проверяется для и устанавливает ключ «FirstRun»/значение в NSUserDefaults
при первом запуске вашего приложения, если он еще не установлен. Есть комментарий, где вы должны поместить код для удаления значений из связки ключей. Синхронизацию можно вызвать, чтобы убедиться, что ключ/значение «FirstRun» сразу же сохраняется, если пользователь убивает приложение вручную до того, как система его сохранит.
Поскольку ваш код не работает, когда приложение находится в процессе удаления, вам не имеют возможности сделать это. –
Я думаю, что вы можете удалить элемент keychain только изнутри приложения, но не перед его удалением. Вы можете взглянуть на метод deleteItem SFHFKeychainUtils, чтобы удалить имя пользователя или пароль из брелка. – matteodv