相當長一段時間以來,我一直使用KeychainItemWrapper的ARC版本成功讀取和寫入私人鑰匙串項目。指定訪問組時KeychainItemWrapper出錯
我現在正在將我的iOS應用程序轉換爲使用共享訪問組,以便我的2個共享相同應用程序前綴的應用程序可以訪問這些鑰匙串項目。在功能部分,我已經添加了鑰匙串組「MYAPPPREFIX.MYSHAREDACCESSNAME」
我使用這些行寫我的變量鑰匙串組:
keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:@"MYAPPPREFIX.MYSHAREDACCESSNAME"];
[keychainItemWrapper setObject:value forKey:(__bridge id)(kSecAttrAccount)]; // store the new value in the keychain
如果accessGroup被指定爲零,它的效果很好。但是,如果我指定的訪問組,我得到了以下錯誤崩潰在調試日誌:
斷言失敗 - [KeychainItemWrapper writeToKeychain] .../KeychainItemWrapper.m:329 終止,由於應用程序未捕獲異常'NSInternalInconsistencyException',原因:'無法添加鑰匙串項目'。
由此產生的OSStatus錯誤代碼是-25243,我無法追蹤更多信息。
爲了寫入共享訪問組,我還需要做些什麼嗎?
應用程序ID的前綴意味着軟件包標識符? – Durgaprasad 2015-06-05 05:59:24
否。應用程序ID前綴是用於對應用程序集合進行分組的唯一標識符。您可以在Apple會員中心 - 標識符 - APP ID中找到這些信息。 – RGML 2015-08-13 10:26:05