Ios 您是否可以使用密钥链跨调配配置文件共享数据?

Ios 您是否可以使用密钥链跨调配配置文件共享数据?,ios,keychain,Ios,Keychain,我想在两个开发人员配置文件之间共享应用程序数据这是否可以通过密钥链访问实现 阅读文档时,您似乎被限制使用应用程序id前面的标识符。例如:GUS8339.com.company.app将限制您使用GUS8339配置文件已签名的应用程序密钥链访问组取决于捆绑包种子id-配置文件特有的值“GUS8339”。因此,更直接地回答,不,您不能跨不同的配置文件使用访问组,因为在您的示例中,种子ID基本上就是配置文件ID。您是正确的,但它稍微复杂一些: 设置配置文件必须具有相同的捆绑种子。这是在创建相应的“应

我想在两个开发人员配置文件之间共享应用程序数据这是否可以通过密钥链访问实现


阅读文档时,您似乎被限制使用应用程序id前面的标识符。例如:GUS8339.com.company.app将限制您使用GUS8339配置文件已签名的应用程序

密钥链访问组取决于捆绑包种子id-配置文件特有的值“GUS8339”。因此,更直接地回答,不,您不能跨不同的配置文件使用访问组,因为在您的示例中,种子ID基本上就是配置文件ID。

您是正确的,但它稍微复杂一些:

  • 设置配置文件必须具有相同的捆绑种子。这是在创建相应的“应用程序ID”时设置的。应用可以在您将其提交到应用商店后更改应用ID,但请注意,非通配符应用ID必须具有唯一的捆绑ID(即,如果您已经为应用设置了非通配符应用ID,则只能将其更改为使用通配符应用ID)

  • 您必须向两个应用程序授予对同一“钥匙链访问组”的访问权限。这在应用程序权限中设置。我认为Xcode现在有了一个可以编辑这些内容的工作界面。您可以使用通配符访问组,但我认为不建议这样做

设置配置文件的相关部分如下所示(在您喜爱的文本编辑器中打开一个):

权利
应用程序标识符
A1B2C3D4E5.com.example.myapp
aps环境
生产
获取任务允许
密钥链访问组
A1B2C3D4E5*
这限制了您可以在权利中添加的内容,但您应该能够指定类似的内容

  <key>keychain-access-groups</key>
  <array>
    <string>A1B2C3D4E5.com.example.myappsuite</string>
  </array>
钥匙链访问组
A1B2C3D4E5.com.example.myappsuite

请注意,您可能需要将其指定给keychainAPI

这不是个人资料所独有的。它被设置为“应用程序ID”的一部分,但应用程序ID可以共享相同的捆绑种子,我相信对于新公司,它默认为团队ID。如果应用程序ID位于相同的配置配置文件上,则它们可以共享相同的捆绑种子,因为捆绑种子ID是使提供配置文件和权利独特的一部分。问题是,具有不同配置文件和不同种子ID的应用程序是否可以使用访问组来读取彼此的密钥链。他们不能。但是,如果您知道这些数据:密钥链访问组A1B2C3D4E5。*那么,如果您知道另一个应用程序的密钥链访问字符串,是否可以从其密钥链中获取数据?或者是严格不允许的。我猜越狱设备将允许这种数据共享,而不会对没有该区域权限的应用程序造成麻烦。请注意原始问题:“GUS8339.com.company.app将限制您使用GUS8339配置文件签名的应用程序”。
  <key>keychain-access-groups</key>
  <array>
    <string>A1B2C3D4E5.com.example.myappsuite</string>
  </array>