我的iOS应用程序标识符应该与我的配置文件一起使用?

时间:2013-01-14 12:36:22

标签: ios testflight

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

  

无效的IPA:embedded.mobileprovision中的keychain-access-group和你的二进制文件不匹配。

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

以下是我的设置:

  • 我在配置门户中创建的应用ID是com.bubblefoundry.Clear。当然,它的前缀是Apple分配的数字标识符。
  • 我使用app id和所需设备创建了一个ad-hoc分发配置文件。我把它下载到Xcode中。
  • Xcode中的产品名称为Clear
  • 目标的“摘要”标签下的捆绑名称为com.bubblefoundry.Clear,其中“清除”为浅灰色,并由Xcode自动填充。虽然我可以在Clear之前或之后添加文字,但我无法将其删除。 “信息”标签下的名称为com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}
  • 在项目和目标的代码签名构建设置中,Debug和Release都设置为自动配置文件选择器下的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>

看看这个,几乎所有东西都与我之前设定的一致。唯一的想法是AppIDNameProject Clear,而不是Clear。这是问题的根源吗?或者keychain-access-groups可能是app-id.com.bubblefoundry.Clear,而不是app-id.*

1 个答案:

答案 0 :(得分:1)

在这种情况下,您的应用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