亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

卸載應用程序時刪除鑰匙串項

卸載應用程序時刪除鑰匙串項

iOS
心有法竹 2019-12-08 12:08:28
我正在使用idandersen的scifihifi-iphone代碼作為鑰匙串并使用以下代碼保存密碼[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123"              forServiceName:@"TestService" updateExisting:YES error:&error];當我從設備上刪除應用程序時,密碼保留在鑰匙串中。當用戶從設備中刪除應用程序時,我想從鑰匙串中刪除密碼。我怎樣才能做到這一點?
查看完整描述

3 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

你可以利用這一事實的優點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

}

NSUserDefaults如果尚未設置,它將在您的應用程序第一次運行時檢查并設置“ FirstRun”鍵/值。有一條注釋,您應該在其中添加代碼以從鑰匙串中刪除值??梢哉{用Synchronize以確?!?FirstRun”鍵/值立即保留,以防用戶在系統保留應用程序之前手動將其終止。



查看完整回答
反對 回復 2019-12-11
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

對于尋找@amro答案的Swift 3.0版本的用戶:


let userDefaults = UserDefaults.standard


if !userDefaults.bool(forKey: "hasRunBefore") {

     // Remove Keychain items here


     // Update the flag indicator

     userDefaults.set(true, forKey: "hasRunBefore")

}

*請注意,不建議使用syncnize()函數



查看完整回答
反對 回復 2019-12-11
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

從設備刪除應用程序后,沒有觸發器可以執行代碼。對鑰匙串的訪問取決于用于對應用程序進行簽名的供應配置文件。因此,沒有其他應用程序能夠訪問鑰匙串中的此信息。


當用戶從設備中刪除應用程序時,目的是要刪除鑰匙串中的密碼,這無濟于事,但應為您提供一些密碼無法訪問(只能從原始應用程序重新安裝)的便利。


查看完整回答
反對 回復 2019-12-11
  • 3 回答
  • 0 關注
  • 477 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號