gpt4 book ai didi

iphone - 当我向 AppStore 提交应用程序更新时,更新配置文件是否会影响钥匙串(keychain)访问?

转载 作者:IT王子 更新时间:2023-10-29 08:19:07 25 4
gpt4 key购买 nike

我有一个 iPhone 应用 uses the keychain用于与身份验证相关的存储。

我还有一个即将到期的配置文件。

documentation for keychain access它指出:

On iPhone, Keychain rights depend on the provisioning profile used to sign your application. Be sure to consistently use the same provisioning profile across different versions of your application.

因为我的 Provisioning Profile 即将过期,我更新了它(在配置门户中),下载了它,然后双击它,将它“安装”到 XCode 的管理器中。

将应用更新提交到应用商店后,我基本上看到一个空钥匙串(keychain)(要求用户再次登录)。

我的问题是:当更新的配置文件用于向应用程序提交更新时,更新用于签署应用程序的配置文件是否会影响钥匙串(keychain)访问?文档只是说使用“相同的配置文件”,但不清楚更新的配置文件是否算作不同的配置文件(正如我上面描述的经验所暗示的)。

什么给了?

更新

在 tc 的回答的帮助下解决了。查看提交给苹果的每个 .ipas 中的 embedded.mobileprovision 文件显示,过期的证书和配置文件用于签署应用程序的版本 x,并且使用了不同的证书和配置文件签署应用程序的 x+1 版本(罪魁祸首:代码签名身份的 XCode 的“自动配置文件选择器”功能)。

第一个证书和配置文件是开发人员使用不同的 iOS Developer Program 帐户开发不相关的应用程序时留下的(在同一台机器上,具有相同的 OSX 用户)。跨多个 iOS 开发者计划帐户的配置文件显然都存储在 ~/Library/MobileDevice/Provisioning Profiles 中,因此它们都是 XCode 的自动配置文件选择功能的候选者。

我通过选择一个完全不同的分发配置文件更改了代码签名身份,我误认为它是即将到期的分发配置文件的更新/有效版本,并提交了更新。相同的应用程序、不同的证书、不同的配置文件 == 空钥匙串(keychain)。哦。

最佳答案

您可以使用的钥匙串(keychain)由权利中的 keychain-access-groups 决定,它仅限于 keychain-access-groups 的子集在供应配置文件中,由“捆绑种子”/“前缀”/(供应配置文件中的ApplicationIdentifierPrefix)确定,在“App ID”中设置。

假设您保留了旧提交的应用程序(或者从 iTunes 获得了 .ipa,它只是一个 zip),请查看 embedded.mobileprovision新旧应用程序(终端中的 less Foo.app/embedded.mobileprovision 应该可以解决问题,或者您可以在文本编辑器中打开它,尽管有时他们会选择错误的行尾)。您正在寻找这样的东西(您可能会看到用于推送/iCloud 的额外键):

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

您还可以查看您的应用签署的实际权利:

codesign -d --entitlements - Foo.app/Foo | vis

IIRC 钥匙串(keychain)访问组默认为例如A1B2C3D4E5.com.example.MyApp,但您可以将其设置为任何您想要的,只要它匹配 A1B2C3D4E5.*(Xcode 4 甚至有一个不错的 GUI 权利编辑器)。如果 bundle 前缀不同,那将导致您看到的问题。我认为如果您没有启用推送/游戏中心/等,您可以将其改回。

关于iphone - 当我向 AppStore 提交应用程序更新时,更新配置文件是否会影响钥匙串(keychain)访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com