Kos*_*Kim 11 keychain adhoc ios
我在我的应用程序中使用钥匙串,当我将应用程序作为AdHoc运行时出现此错误.当我使用调试器(使用开发人员配置文件)运行它时,它不会出现.如果已经在设备上安装了应用程序并且我在Xcode上再次安装它,那么我注意到应用程序无法访问钥匙串.它肯定是因为那些错误而发生的.
我花了很多时间在Google上搜索该错误,有些人建议在其中添加带有keychain-access-group的权利文件.但是我找不到任何Apple文档或任何合理的解释所需的权利文件.
有人可以帮我解决吗?
小智 6
有一个很老的帖子在这里 你需要的权利说哪捆绑标识符您应用程序的包种子是根据,因为这是钥匙链允许应用程序通过访问它的方式.
一旦两个应用程序在其捆绑种子中具有相同的Bundle标识符,它们就可以共享KeyChain访问权限.
因此,如果应用程序A有一个Common Bundle Id:com.yourcompany.AAAAAA而应用程序B作为Common Bundle Id com.yourcompany.BBBBBB
如果他们在.ipa中都有一个权利文件(plist包含一个键入"keychain-access-groups"的数组,其中包含一个字符串".com.yourcompany.AAAAA"和.com.yourcompany.BBBBB")
他们可以共享KeyChain访问..
我找到了解决方案。adHoc 和 Debug 配置文件的 appID 前缀似乎不同。
假设我们有以下 AppId:
a.com.mycompany.A (临时构建)b.* (调试/开发版本)第二个 id 是由 xcode 创建的,它的前缀用于签署应用程序的调试版本。第一个 id 用于签署应用程序的 AdHoc 版本。
如果您现在尝试将钥匙串与a.com.mycompany访问组一起使用,您将获得 AdHoc 版本的钥匙串访问权限。如果您使用b.com.mycompany访问组,您将在调试版本中获得访问权限。它们都不适用于两者。
我通过创建一个新的通配符 id: a.* 并将其用于“iOS Team Provisioning Profile:*”解决了这个问题。似乎此配置文件以某种方式用于签署应用程序的调试版本。我实际上认为它使用开发配置文件来签名?!
但是,通过此更改,我能够使用相同的访问组以调试和临时模式访问钥匙串。
新注册用户似乎不会遇到这个问题,现在 Xcode 会自动创建一个带有正确前缀的 id。
| 归档时间: |
|
| 查看次数: |
28525 次 |
| 最近记录: |