I submitted a new version of my Mac OS App to the App Store. It was rejected because it crashed in review due to an iCloud exception. The problem: No matter what I try, I am not able to reproduce the problem locally.
Apple told me that I have to run my tests on the exact same version I submitted for review. That makes sense of course, but how can I do this?
Since the App uses iCloud the iCloud entitlement is included. Since I submitted this version to the App Store it is signed with a Distribution Profile. When I try to execute the app file I extracted from the submitted .xcarchive it is killed immediately. Console shows:
taskgated-helper[51673]: Starting taskgated-helper
taskgated-helper[51673]: embedded provisioning profile not valid: file:///Users/AUser/Library/Developer/Xcode/Archives/2014-02-07/MyApp.xcarchive/Products/Applications/MyApp.app/Contents/embedded.provisionprofile
taskgated-helper[51673]: returning 2 provisioning profiles
taskgated-helper[51673]: none of the 2 applicable provisioning profile(s) apply
taskgated-helper[51673]: CPValidateProvisioningDictionaries returning NO with error: (null)
taskgated[13]: killed com.example.MyApp[pid 51671] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed (error code -67050)
So, how can I test the exact version I submitted when I cannot run it? Running a version that was compile in Release mode using a Development Profile is not problem. Is there any way to resign the submitted version with a Development Profile?
However, even if I am able to resign and run the submitted version, would this still be the exact version I submitted?