我有一个 iPhone 应用程序,使用密钥链 进行身份验证相关的存储。
我还有一个即将到期的 Provisioning Profile。
在 密钥链访问文档 中指出:
在向应用商店提交应用程序更新后,我基本上看到了一个空的密钥链(用户被要求再次登录)。
我的问题是:更新用于签署应用程序的配置文件是否会影响在使用更新后的配置文件提交应用程序更新时的钥匙串访问?文档只说要使用“相同的配置文件”,但不清楚更新的配置文件是否算作一个不同的配置文件(正如我的经验所述)。
这是为什么呢? 更新 在tc的答案的帮助下解决了。查看提交给苹果的每个.ipa文件中的
第一个证书和配置文件留下来是因为开发人员使用不同的iOS Developer Program帐户开发了一个不相关的应用程序(在同一台机器上,使用相同的OSX用户)。跨多个iOS开发人员计划帐户的配置文件显然都存储在
我通过选择一个被我误认为是即将到期的分发证书的更新/有效版本的完全不同的分发证书,更改了代码签名身份,并提交了更新。相同的应用程序,不同的证书,不同的配置文件==空的密钥链。
我还有一个即将到期的 Provisioning Profile。
在 密钥链访问文档 中指出:
由于我的 Provisioning Profile 即将到期,我在 provisioning portal 中更新了它,下载并双击它,将其“安装”到 XCode 的组织者中。在 iPhone 上,密钥链权限取决于用于签署应用程序的配置文件。请确保在不同版本的应用程序中始终使用相同的配置文件。
在向应用商店提交应用程序更新后,我基本上看到了一个空的密钥链(用户被要求再次登录)。
我的问题是:更新用于签署应用程序的配置文件是否会影响在使用更新后的配置文件提交应用程序更新时的钥匙串访问?文档只说要使用“相同的配置文件”,但不清楚更新的配置文件是否算作一个不同的配置文件(正如我的经验所述)。
这是为什么呢? 更新 在tc的答案的帮助下解决了。查看提交给苹果的每个.ipa文件中的
embedded.mobileprovision
文件,发现过期的证书和配置文件用于签署应用程序版本x,并且不同的证书和配置文件用于签署应用程序版本x+1(罪魁祸首:XCode的代码签名身份的“自动配置文件选择器”功能)。第一个证书和配置文件留下来是因为开发人员使用不同的iOS Developer Program帐户开发了一个不相关的应用程序(在同一台机器上,使用相同的OSX用户)。跨多个iOS开发人员计划帐户的配置文件显然都存储在
〜/Library/MobileDevice/Provisioning Profiles
中,因此它们都是XCode自动配置文件选择功能的候选项。我通过选择一个被我误认为是即将到期的分发证书的更新/有效版本的完全不同的分发证书,更改了代码签名身份,并提交了更新。相同的应用程序,不同的证书,不同的配置文件==空的密钥链。