我正在尝试使用 Testflight 将 IPA 上传到我的应用程序测试人员,但它失败并出现以下错误:
IPA 无效:embedded.mobileprovision 中的 keychain-access-group 与您的二进制文件不匹配。
我很困惑,因为我认为我的设置非常标准,而且我还有另一个可以构建和分发的应用程序(注意:使用第二个开发人员帐户但在同一个 Xcode 实例中)。
这是我的设置:
- 我在 Provisioning Portal 中创建的应用程序 ID 是
com.bubblefoundry.Clear
. 自然,它会以 Apple 分配的数字标识符作为前缀。 - 我使用应用程序 ID 和所需设备创建了一个临时分发配置文件。我将它下载到 Xcode 中。
- 产品名称
Clear
在 Xcode 中。 - 目标的“Summary”选项卡下的包名称为
com.bubblefoundry.Clear
,其中 Clear 为浅灰色并由 Xcode 自动填充。虽然我可以在 之前或之后添加文本Clear
,但我无法删除它。“信息”选项卡下的名称是com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}
。 - 在项目和目标的代码签名构建设置中,Debug 和 Release 都设置为 Automatic Profile Selector 下的 iPhone Developer。我想我可能需要将 Release 设置为我的分发配置文件,但我没有在另一个工作项目中这样做。
我可以很好地归档我的应用程序。然后在管理器中,我可以告诉它分发它以进行临时开发,然后选择使用我之前创建的分发配置文件重新签名。没有错误报告。同样,我可以连接我的 iPhone 并在手机上运行应用程序而不会出现问题。只有当我尝试使用 Testflight.app 上传 IPA 时,我才被告知该文件无效。
因为它提到了embedded.mobileprovision
,我想我会戳进 IPA 并检查文件。这是相关数据(减去唯一信息):
<plist version="1.0">
<dict>
<key>AppIDName</key>
<string>Project Clear</string>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>app-id</string>
</array>
<key>CreationDate</key>
<date>2013-01-11T17:44:51Z</date>
<key>DeveloperCertificates</key>
<array>
<data>
my-certificate
</data>
</array>
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>app-id.com.bubblefoundry.Clear</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>app-id.*</string>
</array>
</dict>
<key>ExpirationDate</key>
<date>2013-10-07T17:44:51Z</date>
<key>Name</key>
<string>Project Clear Testers</string>
<key>ProvisionedDevices</key>
<array>
<string>device1</string>
<string>device2</string>
<string>device3</string>
<string>device4</string>
<string>device5</string>
</array>
<key>TeamIdentifier</key>
<array>
<string>app-id</string>
</array>
<key>TeamName</key>
<string>Bubble Foundry</string>
<key>TimeToLive</key>
<integer>269</integer>
<key>UUID</key>
<string>uuid</string>
<key>Version</key>
<integer>1</integer>
</dict>
</plist>
看看这个,几乎所有的东西看起来都和我之前设置的一致。唯一的想法是,AppIDName
是Project Clear
,不是Clear
。这是问题的根源吗?或者也许keychain-access-groups
应该是app-id.com.bubblefoundry.Clear
,不是app-id.*
吗?