iphone – 当我向AppStore提交应用更新时,更新配置文件是否会影
我有一个iPhone应用程序,
uses the keychain用于认证相关的存储。
我也有一个到期的配置配置文件。 在documentation for keychain access它说:
由于我的配置配置文件到期,我更新了它(在配置门户),下载它,并将其“安装”到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授权编辑器)。如果捆绑前缀不同,则会导致您看到的问题。我想你可以改变它,只要你没有启用推/游戏中心/等。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |