7

As the original TestFlight app will be retired in a month, I am trying to get to grips with the iTunes Connect Beta system, which looks like a significant improvement. As directed, I regenerated my provisioning profiles and redownloaded them on my build server.

I then performed the build with the "AppStore|Release" profile and I saw this message in the log:

codesign -v -f -s "XXXXXX" "--resource-rules=/.../MyApp.app/ResourceRules.plist" --entitlements "/../iSnagMobileiOS.xcent" "/../iSnagMobileiOS.app"

The file specified in the entitlements parameter contained the beta-reports-active key as expected:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <false/>
    <key>application-identifier</key>
    <string>XXXXXXX.com.mycompany.myapp</string>
    <key>com.apple.developer.team-identifier</key>
    <string>XXXXXXXX</string>
    <key>beta-reports-active</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXXX.com.mycompany.myapp</string>
    </array>
</dict>
</plist>

I then retrieved the generated IPA, which was signed with my distribution certificate. In order to check that the correct entitlement had been applied, I executed this command to check the provisioning profile:

unzip -p MyApp.ipa Payload/MyApp.app/embedded.mobileprovision | security cms -D

Within the XML fragment I could see the entitlements dictionary which contained the flag as expected:

<key>Entitlements</key>
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXXXXXX.*</string>
    </array>
    <key>get-task-allow</key>
    <false/>
    <key>application-identifier</key>
    <string>XXXXXXXX.com.mycompany.myapp</string>
    <key>com.apple.developer.team-identifier</key>
    <string>XXXXXXXXX</string>
    <key>beta-reports-active</key>
    <true/>
</dict>

There is also no extra Entitlements.plist file in the IPA that might be throwing this off.

I uploaded the IPA with Application Loader 3.0, but I then received this error message:

WARNING: ITMS-90191: "Missing beta entitlement. Your app does not include the beta-reports-active entitlement. If you intend to distribute this build via TestFlight for beta testing, please re-build this app with a newly generated provisioning profile."

I have found numerous hits while searching for this message but none seemed to describe the above the problem; all those users found that regenerating the profile and downloading it again was all that was required.

I wondered if I was perhaps experiencing an issue caused by an older version of XCode or MonoTouch but after I updated both, I still experienced the same problem. I'm going to guess that this issue is not caused by Xamarin but is perhaps caused by a setting I have overlooked in my build configuration, but I could be wrong there.

Steve Rukuts
  • 9,167
  • 3
  • 50
  • 72
  • i have been having similar problems with Xamarin. Try adding an entitlements.plist with the key 'beta-reports-active' type boolean value 'yes'. This may help hopefully. – Sudmanche Feb 02 '15 at 19:35
  • 1
    We had a similar issue just not with Xamarin but with a continuous integration system. It seems that unless you send the app from Xcode directly for beta testing your project **have to include** an entitlements file with content like this: http://stackoverflow.com/a/28999741/974381 . Without this, even if we used the latest Application Loader, the app on iTunes Connect could not be enabled for beta testing. Adding this entitlements.plist to the project solved the problem. – Viktor Benei Mar 15 '15 at 17:57

0 Answers0