Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 钥匙链没有';使用TestFlight安装应用程序时无法工作_Swift_App Store Connect_Keychain - Fatal编程技术网

Swift 钥匙链没有';使用TestFlight安装应用程序时无法工作

Swift 钥匙链没有';使用TestFlight安装应用程序时无法工作,swift,app-store-connect,keychain,Swift,App Store Connect,Keychain,当我直接在iPhone上构建应用程序时,我可以将项目存储在钥匙链中,但如果我将其存档并发送到ItunesConnect,然后有人使用testFlight下载,则不会将项目存储在钥匙链中 以下是他尝试访问钥匙链时的日志: Dec 4 23:10:40 <Error>: securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error

当我直接在iPhone上构建应用程序时,我可以将项目存储在钥匙链中,但如果我将其存档并发送到ItunesConnect,然后有人使用testFlight下载,则不会将项目存储在钥匙链中

以下是他尝试访问钥匙链时的日志:

Dec  4 23:10:40  <Error>:  securityd_xpc_dictionary_handler    appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.123944Z,F87F1109)
Dec  4 23:10:40  <Error>:  SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.123944Z,F87F1109))
Dec  4 23:10:40  <Error>:  securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.146946Z,5CD00596)
Dec  4 23:10:40  <Error>:  SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.146946Z,5CD00596))
Dec  4 23:10:40  <Error>:  securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.20269Z,846CAAC0)
Dec  4 23:10:40  <Error>:  SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.20269Z,846CAAC0))
Dec  4 23:10:40  <Error>:  securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.222921Z,7E11CA46)
Dec  4 23:10:40  <Error>:  SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.222921Z,7E11CA46))
KeychainWrapper.setString(self.username.text, forKey: "username")
KeychainWrapper.setString(self.password.text, forKey: "password")
我用以下方法把它取回来:

if let u = KeychainWrapper.stringForKey("username") {
        username = KeychainWrapper.stringForKey("username")!
        password = KeychainWrapper.stringForKey("password")!
}

您应该检查无法访问钥匙链的设备上的控制台,并查找指示钥匙链访问问题的日志。这听起来像是权利的问题。查看此常见问题解答,了解如何解决您可能会在控制台中看到的问题:

编辑

我认为您可能没有填写钥匙链项目的所有必要信息。如果您使用的是
kSecClassGenericPassword
,则需要同时填写
kSecAttrAccount
kSecAttrService

此博客文章提供了更多详细信息:

此问题列出了构成主键的组合:


对于您的同一问题,这里还有另一个问题:

这似乎是Swift编译器的一个bug

如果您在目标的“构建设置”中将“发布”的“优化级别”更改为“无”,那么它应该可以工作

在此线程中通过标记检查答案:


希望这有帮助

你想在钥匙链里储存什么?钥匙链项目是每个设备或每个用户(iCloud)的,因此如果您通过应用程序将某些内容放入自己的钥匙链中,它不会神奇地转移到其他人的钥匙链。我知道我正在尝试将用户输入的用户名和密码存储在文本字段中。我不认为这是他的设备的问题,因为如果我直接将其构建到它,它会工作。我对该设备只字未提,链接也不会。这是关于应用程序中包含的资源调配配置文件和权限的。与通过TestFlight构建临时测试时相比,您可能正在使用不同的配置文件来构建设备进行开发。按照我的建议检查控制台,看看你是否看到了链接中提到的错误,如果没有,请用你看到的消息发回这里。我如何看到控制台和日志?我没有随身携带他的设备让他在打开应用程序时按照以下说明操作:我在他尝试访问钥匙链时添加了他的设备日志