[英]How do I reset the keychain in simulator?
我已經在模擬器鑰匙串中存儲了一些敏感數據的數據。 現在我必須測試如果該數據尚不存在會發生什么。
但是我無法重置模擬器的鑰匙串來測試。
我嘗試從模擬器中刪除應用程序,然后重置內容和設置。 但是鑰匙串數據仍然存在。
編輯:是的,我試過“重置內容和設置”,但這不起作用
最簡單的方法是打開模擬器並轉到:
"iOS Simulator -> Reset Content and Settings"
這將重置模擬器中的所有內容並將其恢復為默認設置。
如果你想通過代碼來做到這一點,你可以這樣做:
NSArray *secItemClasses = @[(__bridge id)kSecClassGenericPassword,
(__bridge id)kSecClassInternetPassword,
(__bridge id)kSecClassCertificate,
(__bridge id)kSecClassKey,
(__bridge id)kSecClassIdentity];
for (id secItemClass in secItemClasses) {
NSDictionary *spec = @{(__bridge id)kSecClass: secItemClass};
SecItemDelete((__bridge CFDictionaryRef)spec);
}
重置內容和設置有時不起作用,這是一種競爭條件。 如果它不起作用,請再試一次。 如果它真的一直不工作,退出Simulator.app
,等待幾秒鍾,然后從終端運行xcrun simctl erase <Device UDID>
。 您可以通過運行xcrun simctl list
來獲取設備的 UDID。
這個種族錯誤應該在最新的 Xcode 7 Beta 中得到解決。
在正在運行的設備上調用終端中的那些:
xcrun simctl spawn ${device_udid} launchctl stop com.apple.securityd;
rm -rf ${HOME}/Library/Developer/CoreSimulator/Devices/${device_udid}/data/Library/Keychains;
xcrun simctl spawn ${device_udid} launchctl start com.apple.securityd;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.