已looking around找到检测应用何时卸载/重新安装的方法。问题是,我不使用NSUserDefaults
,我使用SwiftKeychainWrapper。
我需要在卸载应用时清除该用户的钥匙串。
didFinishLaunchingWithOptions
似乎在应用加载时调用,因此没有用处。有没有办法检测重新安装?我需要称之为:
return KeychainWrapper.standard.removeObject(forKey: "myKey") // only when/if app is unsinstalled/reinstalling
答案 0 :(得分:2)
您可能因为需要存储敏感信息而使用Keychain?如果是这样,那么你可以在UserDefaults
中存储一个布尔值并检查它是否存在。例如:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let freshInstall = !UserDefaults.standard.bool(forKey: "alreadyInstalled")
if freshInstall {
// delete your item from keychain
UserDefaults.standard.set(true, forKey: "alreadyInstalled")
}
return true
}
这样你仍然拥有Keychain的安全性,但UserDefaults在卸载/重新安装时的行为。
答案 1 :(得分:1)
其他人在“//删除你的项目”部分答案中寻找清除钥匙串的方法......
Swift 3
let _ = KeychainWrapper.standard.removeAllKeys()