我也有一个到期的配置配置文件。
在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.
由于我的配置配置文件到期,我更新了它(在配置门户),下载它,并将其“安装”到XCode的组织者中。
在向应用商店提交更新应用程序后,我基本上看到一个空钥匙串(用户被要求再次登录)。
我的问题是:当更新的配置文件用于向应用程序提交更新时,更新用于签署应用程序的配置文件是否影响密钥匙访问?文档只是说使用“相同的配置文件”,但是不清楚一个更新的配置文件是否被视为不同的配置文件(正如我上面介绍的经验)。
是什么赋予了?
更新
在tc的答案的帮助下解决。查看提交给苹果的每个.ipas中的embedded.mobileprovision文件显示,使用到期的证书和配置文件来签署应用程序的x版本,并使用不同的证书和配置配置文件来签署版本x 1用于代码签名身份的XCode的应用程序(罪魁祸首:“自动配置文件选择器”)功能)。
当开发人员使用不同的iOS开发者计划帐户开发不相关的应用程序(在同一台机器上,使用相同的OSX用户)时,第一个证书和配置文件是剩下的。多个iOS开发者程序帐户中的配置文件显然都存储在〜/ library / MobileDevice / Provisioning Profiles中,因此它们都是XCode自动配置文件选择功能的候选项。
我更改了代码签名身份,方法是选择一个完全不同的分发配置文件,这个配置文件被认为是一个更新的/有效版本的到期配置文件,并提交了更新。相同的应用程序,不同的证书,不同的配置文件==空钥匙扣。 D’OH。
解决方法 您允许使用的钥匙串由授权中的钥匙串访问组决定,该权限限制在供应配置文件中的密钥链接入组的一个子集,由“捆绑种子”/“前缀“/(配置配置文件中的ApplicationIDentifIErPrefix),在”应用程序ID“中设置。假设你保留了旧的提交的应用程序(或者iTunes的.ipa,这只是一个zip),请查看旧的和新的应用程序中的embedded.mobileprovision(在终端应用程序中更少的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
钥匙扣访问组默认为例如A1B2C3D4E5.com.example.MyApp,但是您可以将其设置为与A1B2C3D4E5匹配的任何内容*(Xcode 4甚至具有不错的GUI授权编辑器)。如果捆绑前缀不同,则会导致您看到的问题。我想你可以改变它,只要你没有启用推/游戏中心/等。
总结以上是内存溢出为你收集整理的iphone – 当我向AppStore提交应用更新时,更新配置文件是否会影响密钥匙访问?全部内容,希望文章能够帮你解决iphone – 当我向AppStore提交应用更新时,更新配置文件是否会影响密钥匙访问?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)