简体   繁体   中英

What should my iOS app identifier be to work with my provisioning profile?

I'm trying to use Testflight to upload an IPA to my app testers, but it's failing with the following error:

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

I'm confused, because I think my settings are pretty standard and I have another app that I can build and distribute just fine (note: with a second developer account but in the same instance of Xcode).

Here are my settings:

  • My app id that I created in the Provisioning Portal is com.bubblefoundry.Clear . Naturally it's then prefixed with the numeric identifier Apple assigns.
  • I created an ad-hoc distribution provisioning profile with the app id and the desired devices. I downloaded it into Xcode.
  • The product name is Clear in Xcode.
  • The bundle name under the target's 'Summary' tab is com.bubblefoundry.Clear , where Clear is in light grey and filled-in automatically by Xcode. While I can add text before or after Clear , I can't delete it. The name under the 'Info' tab is com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier} .
  • In the code signing build settings for both the project and the target, both Debug and Release are set to the iPhone Developer under the Automatic Profile Selector. I thought I might need to set Release to my distribution profile, but I didn't do this in the other, working project.

I can Archive my app just fine. Then in the organizer I can tell it to distribute it for ad-hoc development and then choose to re-sign it with the distribution provisioning profile I created earlier. No errors are reported. Likewise I can connect my iPhone and Run the app on the phone without problems. It only when I try to upload the IPA using Testflight.app that I'm told that the file is invalid.

Because it mentions embedded.mobileprovision , I figured I'd poke into the IPA and examine the file. Here's the relevant data (minus unique info):

<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>

Looking at this, just about everything looks consistent with what I've set earlier. The only thought is that the AppIDName is Project Clear , not Clear . Is this the source of the problem? Or maybe keychain-access-groups should be app-id.com.bubblefoundry.Clear , not app-id.* ?

In this case your app id should be com.bubblefoundry.Clear .

If you created your provisioning profile like:

com.bubblefoundry.*

You can use this provisioning profile with various Id's like.

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

You can change the app Id in indo.plist

replace com.bubblefoundry.${PRODUCT_NAME:rfc1034identifier}. with required Id like: com.bubblefoundry.myTestApp .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM