2017-03-20 60 views
1

我正在iOS中開發一個應用程序,我需要在應用程序中註冊帳戶期間在鑰匙串中存儲安全數據。
我面臨的問題是,有時,當用戶有第二個設備時,他們的註冊(可疑)失敗,因爲此項目已存在於鑰匙串中,原因是iCloud中的同步。這可能是用戶重新安裝了應用程序並且鑰匙串中的物品在重新安裝後仍然存活的情況,但不幸的是,唯一給我的細節是「用戶無法註冊」日誌文件,這些日誌文件抱怨鑰匙扣項目。將商品保存在沒有iCloud同步的iOS Keychain中?

不幸的是,這個註冊過程是固定的,因爲它是一個已經在生產中的繼承項目,所以我不能真正改變它太多。

我的膝蓋反應是以某種方式阻止這個項目跨設備同步,但我甚至無法找到任何可能表明這是可能的東西。
所有的想法表示歡迎
感謝

編輯
我才意識到,我的問題是不是很清楚。我想這是一個雙人遊戲
1.有沒有辦法阻止keychain項目與iCloud同步?
2.任何人都可以想辦法解決這個問題,如果不是的話?

回答

2

如果您在創建鑰匙串項目時未在鑰匙串項目字典中指定kSecAttrSynchronizable屬性和true值,那麼它將不會通過iCloud進行同步;它只會保留在本地設備上。

這很可能是鑰匙串中存在舊項目。您需要檢查註冊碼並對其進行修改,以提供某種從失敗的註冊嘗試中恢復的方法。

+0

圖例。我其實只是註銷了鑰匙串中的項目,可以看到項目屬性'sync = 0',所以我假設這正是您所指的。這留下了一個事實,即它可能是一個重新註冊的設備,我可以輕鬆處理。謝謝。 – mylogon