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:
com.bubblefoundry.Clear
. Naturally it's then prefixed with the numeric identifier Apple assigns. Clear
in Xcode. 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}
. 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.