在我的 iOS 应用程序中,我使用 Apple 提供的 KeychainItemWrapper 来保存我的应用程序的一些重要数据。
当我使用开发人员配置文件在移动设备上部署应用程序时,应用程序运行良好,但是当我通过使用“分发”配置文件创建分发构建来部署相同的应用程序时应用程序崩溃。
我分析了设备日志,但无法找出问题所在。它使“writeToKeyChain”方法崩溃。我无法找出为什么这只发生在分发配置文件构建中。
知道为什么会这样吗?以前有人遇到过这个问题吗?
iOS : 9.3.1
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
CoreFoundation 0x1817fee38 __exceptionPreprocess + 124
1 libobjc.A.dylib 0x180e63f80 objc_exception_throw + 56
2 CoreFoundation 0x1817fed08 +[NSException raise:format:arguments:] + 108
3 Foundation 0x182184124 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
4 MyApp 0x10017fe6c -[KeychainItemWrapper writeToKeychain] (KeychainItemWrapper.m:328)
5 MyApp 0x10017f1c4 -[KeychainItemWrapper setObject:forKey:] (KeychainItemWrapper.m:177)
6 MyApp 0x1000c61cc +[MyKeyChainWrappper fetchInfo:] (MyKeyChainWrappper.m:41)
编辑:
KeychainItemWrapper 初始化代码
KeychainItemWrapper* mykeyChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"My_Identifier" accessGroup:[[NSBundle mainBundle] bundleIdentifier]];
[mykeyChain setObject:(__bridge id)(kSecAttrAccessibleWhenUnlocked) forKey:(__bridge id)(kSecAttrAccessible)];