Since the initial TestFlight app will retire in a month, I'm trying to deal with iTunes Connect Beta, which looks like a major improvement. As stated, I updated the provisioning profiles and restarted them on my build server.
Then I completed the assembly 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 contains the active beta reporting key:
<?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>
Then I received a generated IPA that was signed with my distribution certificate. To verify that the correct right was applied, I ran this command to check the provisioning profile:
unzip -p MyApp.ipa Payload /MyApp.app/embedded.mobileprovision | security cms -D
Inside the XML fragment, I saw a rights dictionary that 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>
IPA also does not have an additional Entitlements.plist file that can drop this.
I downloaded IPA using Application Loader 3.0, but then received this error message:
WARNING: ITMS-90191: "No beta rights. The application does not include beta reports-active rights. If you plan to distribute this assembly through TestFlight for beta testing, please recreate this application using the new provisioning profile."
I found numerous hits while searching for this post, but none of them described the problem described above; all of these users found that restoring the profile and downloading it again was all that was required.
I was wondering if I might be experiencing a problem caused by an older version of Xcode or MonoTouch, but after I updated both options, I still had the same problem. I am going to assume that this problem is not caused by Xamarin, but is possibly caused by an installation that I missed in my build configuration, but I could be wrong there.