您可以使用钥匙串在配置文件中共享数据吗?

时间:2012-04-28 17:59:23

标签: ios keychain

我想在两个开发者配置文件之间共享应用程序数据,这可能与密钥链访问有关吗?

通过阅读文档,听起来您只能使用应用程序ID之前的标识符。 EX:GUS8339.com.company.app会限制您使用GUS8339配置文件签名的应用程序

2 个答案:

答案 0 :(得分:3)

你是正确的,但它稍微复杂一点:

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

  • 您必须同时授予两个应用访问同一个"钥匙串访问组"。这是在应用权利中设置的。我认为Xcode现在有一个可用于编辑这些的UI。您可以使用通配符访问组,但我不认为这是推荐的。

配置文件的相关部分看起来像这样(在您喜欢的文本编辑器中打开一个):

<key>Entitlements</key>
<dict>
  <key>application-identifier</key>
  <string>A1B2C3D4E5.com.example.myapp</string>
  <key>aps-environment</key>
  <string>production</string>
  <key>get-task-allow</key>
  </false>
  <key>keychain-access-groups</key>
  <array>
    <string>A1B2C3D4E5.*</string>
  </array>
</dict>

这限制了您可以在权利中添加的内容,但您应该能够指定类似

的内容
  <key>keychain-access-groups</key>
  <array>
    <string>A1B2C3D4E5.com.example.myappsuite</string>
  </array>

请注意,您可能需要将此项指定给钥匙串API!

答案 1 :(得分:-2)

钥匙串访问组取决于捆绑种子ID - 您的配置文件中唯一的值“GUS8339”。因此,为了更直接地回答,不,您不能在不同的配置文件中使用访问组,因为种子ID基本上是示例中的配置文件ID。