KeychainItemWrapper在iOS10上崩溃

5 keychain keychainitemwrapper

当我尝试将项目添加到Keychain时,我在iOS10上发现此崩溃***断言失败 - [KeychainItemWrapper writeToKeychain]

在iOS 9.3上我把密钥写在钥匙串中没有问题谢谢

Lan*_*tig 8

它看起来像一个bug; 已提交错误报告,但有一个解决方法.只需启用"Keychain Sharing"(在您的应用程序 - Xcode中的功能选项卡下).有关完整背景,请参阅https://forums.developer.apple.com/thread/51071.


ana*_*abi 0

编辑:忽略我在胡言乱语的内容...呃,忘记了在项目目标的“功能”选项卡下我还启用了钥匙串共享...尽管仍然希望获得更深入、更令人信服的答案。

所以我猜你可以忽略这个......但离开这里以防万一你遇到隐私问题(尽管这是另一个问题,我确信已经在其他地方得到了回答):

是的,我也遇到了同样的问题(同样是请求位置崩溃)...看起来 iOS 10 在隐私和服务方面发生了变化。奇怪的是,在我的例子中,将此注释下方的键添加到 info.plist (或者通过 Xcode,您将看到它们带有“Privacy-*”)

有趣的是,突然钥匙串访问工作得很好,即使这些钥匙都与钥匙串访问没有任何关系......我仍在深入研究,以便我可以提供“真正的答案”,但希望这可以解锁你现在。

这是我添加的内容(请注意,您不需要全部,但只是为了确保我的答案与我所做的相匹配):

<key>LSApplicationCategoryType</key>
<string></string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>health devices</string>
<key>NSRemindersUsageDescription</key>
<string>medication reminders</string>
<key>NSMicrophoneUsageDescription</key>
<string>calls</string>
<key>NSCameraUsageDescription</key>
<string>Allow Moonshot to use the camera (profile and calls)</string>
<key>NSMotionUsageDescription</key>
<string>Allow Moonshot to use motion to track activity</string>
<key>NSLocationUsageDescription</key>
<string>Allow Moonshot to use location to track activity</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Allow Moonshot to always use location (to track activity)</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Allow Moonshot to use location while in use (to track activity)</string>
<key>CFBundleDevelopmentRegion</key>
Run Code Online (Sandbox Code Playgroud)