ios - 我的 iOS 应用程序标识符应该是什么才能与我的配置文件配合使用?

标签 ios testflight

我尝试使用 Testflight 将 IPA 上传到我的应用测试人员,但失败并出现以下错误:

Invalid IPA: The keychain-access-group in in the embedded.mobileprovision and your binary don't match.

我很困惑,因为我认为我的设置非常标准,而且我有另一个可以很好地构建和分发的应用程序(注意:使用第二个开发人员帐户,但在同一个 Xcode 实例中)。

这是我的设置:

  • 我在配置门户中创建的应用 ID 是 com.bubblefoundry.Clear。当然,它会以 Apple 分配的数字标识符为前缀。
  • 我使用应用 ID 和所需设备创建了一个临时分发配置文件。我将其下载到 Xcode 中。
  • 产品名称在 Xcode 中为 Clear
  • 目标“Summary”选项卡下的包名称为 com.bubblefoundry.Clear,其中 Clear 为浅灰色,由 Xcode 自动填充。虽然我可以在 Clear 之前或之后添加文本,但无法删除它。 “信息”选项卡下的名称为 com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}
  • 在项目和目标的代码签名build设置中,“调试”和“发布”均在“自动配置文件选择器”下设置为“iPhone 开发人员”。我认为我可能需要将 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>

看看这个,一切看起来都与我之前设置的一致。唯一的想法是 AppIDNameProject Clear,而不是 Clear。这是问题的根源吗?或者也许keychain-access-groups应该是app-id.com.bubblefoundry.Clear,而不是app-id.*

最佳答案

在这种情况下,您的应用 ID 应为 com.bubblefoundry.Clear

如果您创建的配置文件如下:

com.bubblefoundry.*

您可以将此配置文件与各种 ID 一起使用。

com.bubblefoundry.Clear
com.bubblefoundry.my
com.bubblefoundry.Clear.newApp
com.bubblefoundry.testApp
com.bubblefoundry.yoyo

您可以在indo.plist中更改应用程序ID

com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}. 替换为必需的 Id,例如:com.bubblefoundry.myTestApp

关于ios - 我的 iOS 应用程序标识符应该是什么才能与我的配置文件配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318531/

相关文章:

ios - 仍有截图上传正在进行中。苹果应用提交

ios - testflight 应用程序在启动时关闭

ios - 使用 Xcode 6 构建 iOS 9 功能

ios - 如何在不访问所有物理设备的情况下检查每个设备的 TestFlight beta 精简构建大小

ios - TestFlight:尝试下载时出现消息 “Unable to Download Application”

ios - 为什么UIWindow添加UIGestureRecognizer后iPad无响应?

ios - 在 iPad 上显示潜意识图像

ios - "Missing Compliance"测试飞行

ios - 如何使 UIScrollView 内的 UIScrollView 同时 Action

ios - SpriteKit 自定义节点边界