【发布时间】:2012-10-30 02:32:34
【问题描述】:
我有一个uses the keychain 用于身份验证相关存储的 iPhone 应用程序。
我还有一个即将到期的配置文件。
在documentation for keychain access 中声明:
在 iPhone 上,钥匙串权限取决于用于 签署您的申请。确保始终使用相同的 跨不同版本的应用程序配置配置文件。
因为我的 Provisioning Profile 即将到期,所以我更新了它(在配置门户中),下载它,然后双击它,将它“安装”到 XCode 的管理器中。
在向应用商店提交应用更新后,我基本上看到的是一个空的钥匙串(要求用户重新登录)。
我的问题是:当使用更新的配置文件提交应用更新时,更新用于签署应用的配置文件会影响钥匙串访问吗?文档只是说要使用“相同的配置文件”,但不清楚更新的配置文件是否算作 不同的 配置文件(正如我上面描述的经验所示)。
什么给了?
更新
在 tc 的回答的帮助下解决了。查看提交给苹果的每个 .ipas 中的embedded.mobileprovision 文件显示,过期证书和配置文件用于签署应用程序的版本 x,而不同的证书和配置文件用于签署版本 x+1应用程序(罪魁祸首:XCode 用于代码签名身份的“自动配置文件选择器”功能)。
当开发人员使用不同的 iOS 开发人员计划帐户开发不相关的应用程序(在同一台机器上,使用同一 OSX 用户)时,剩余的第一个证书和配置文件。跨多个 iOS 开发者程序帐户的配置文件显然都存储在~/Library/MobileDevice/Provisioning Profiles 中,因此它们都是 XCode 自动配置文件选择功能的候选者。
我通过选择一个完全不同的分发配置文件更改了代码签名身份,我误认为该分发配置文件是过期分发配置文件的更新/有效版本,并提交了更新。相同的应用程序,不同的证书,不同的配置文件 == 空钥匙串。哦。
【问题讨论】:
标签: iphone ios xcode provisioning-profile ios-provisioning