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