Apple Pre-Release app submission "Missing beta entitlement" - ios

I was trying a long to give pre-release thru itunes connect, I have created the new Certificate for production / App Id / Adhoc provisional profile against newly created certificate. I was always met with missing beta entitlement during export build thru organizer.
I had tried with Application Loader to send the build to itunes but received warning as below.
"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."
Adding Entitlement.plist file was not worked out,
This issue swallowed my whole day, If anyone produce right solution here would be really appreciated.

Try using 'App Store Distribution Profile' instead of Ad-hoc. It will be still in pre-release state. You can add internal testers etc. This worked in my case.

You have 2 known options :
1 - edit your .plist file and add "beta-reports-active" line like below (Value must be true) :
<?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>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>beta-reports-active</key>
<true/>
<key>application-identifer</key>
<string>youridentifierhere</string>
</dict>
</plist>
2 - If didn't work, for some cases "create brand new provision profile" could work.

This got screwed up by Apple when they merged TestFlight into iTunes Connect. I'm assuming that you have an old certificate still. You need to regenerate your certificates and provisioning profiles and go through the signing process from the beginning.

Related

how can i resolve keychain access group issue without removing entitlements.plist file?

Here is the screenshot of the error
I have enabled keychain access group in capabilities and its added in Entitlements.plist
<?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>keychain-access-groups</key>
<array>
<string>L23874DF.com.your.appid</string>
</array>
</dict>
</plist>
I signed the archive with development provisioning profile and certificate and given it to the team that pushes it for appstore.
But I got the above error and I don't understand it has right appid prefix and bundle identifier and member center has no options to enable Keychain access group then in my eyes there should not be a problem.
the appstore certificate that they're using is from same appstore account so there shouldn't be a problem with app id.
App id is same for whole account irrespective of whether its development build or adhoc build or release build or appstore build
P.S
I had to remove my entitlements.plist and resign the app with same dev cert and provision to make archive and send to them and it got published to appstore without any problem
somebody explain me whats wrong with this behaviour ? I am still confused

Xcode 8.1 "No matching provisioning profiles found" after updating MacOS and Xcode

I'm testing my app with TestFlight but I can't upload my archives after updating to MacOS 10.12 and Xcode 8.1.
When I archive my app, click on "Upload to App Store...", select my Development, I get this error.
No matching provisioning profiles found for "Applications/app.app"
None of the valid provisioning profiles allowed the specified entitlements: application-identifier, beta-reports-active, keychain-access-groups.
What I've tried so far:
Reopening Xcode (Many times)
⌘+, > select team > remove every provisioning profile > re-download every provisioning profile (Reopening Xcode after each step)
Re-downloaded and installed my certificates and provisioning profiles
Removing every provisioning profile and building the app
I had this same error when my Xcode wildcard profile expired. Xcode didn't automatically renew it even though everything was set to automatic.
I logged in to the the portal, edited the XC: * profile, hit generate and then downloaded the resulting certificate. All good after that.
On Xcode's Capabilities screen, turning a capability On and then Off will fix the issue.
None of the other answers worked for me.
I had to delete all certificates from KeyChain, and also revoke them in Apple Developer portal. Then manually request a Distribution certificate in KeyChain. Upload it to the Developer portal.
XCode (8.3) must be stopped because it keeps creating certificates as they are being deleted from KeyChain.
Also, KeyChain burped and suddenly had a whole bunch of certificates and keys that it wasn't showing before. I don't know why that happened. Some were expired, which may have been causing the original problem. I deleted them all too.
Finally, XCode was happy to Archive, and Upload to iTunes. Only two hours wasted this time.
Use the automatic option provided in Xcode just add the relevant account team in the Xcode and let Xcode manage the signing process. Then go for Archive and select proper options while making archiving.
I was running into the same issue. As our project was automatically generated by Ionic and had to be build in a CI environment, opening the project and toggle automatic signing wasn't an option. I did a diff of the entitlements file before and after the toggle and found out that the dict value was sorted differently:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>aps-environment</key>
+ <string>production</string>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
</array>
- <key>aps-environment</key>
- <string>production</string>
</dict>
</plist>
Even though from my understanding it shouldn't make a difference, the build was successfull after this change.
For everyone running into this in an Ionic project, the solution was to add this key-value pair to the config edit in the config.xml:
<config-file parent="keychain-access-groups" target="*-Release.plist">
<key>aps-environment</key>
<string>production</string>
<array>
<string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
</array>
</config-file>

During ios app submission to appstore/itunesconnect, getting warning as "Build xxxx does not contain the correct beta entitlement"

I have uploaded my first ever ios app 1 week before and it is in "waiting for review" status. Today i came to notice that when i clicked on "Prerelease" it is giving warning as "Build 1.1 does not contain the correct beta entitlement. For more information, see the iTunes Connect Developer Guide."
Can anyone pls let me know what will happen to my app? it will be approved or get rejected? since it is a warinig not error and i successfully uploaded this with this...
I came to solution that i need to recreate distribution provisioning profile and rebuild my app and resubmit... but it will again take 1 week to "review" so i dont want to go for that.
Anyone have come accross this issue please let me know what will be best solution for me... I am very much worried as i have only this week for this app to make it live.
Thanks.
Apparently, Apple created a new entitlement that is added when you regenerate your distribution certificate.
If your app is already "Waiting for Review", it should be fine.
If you want this warning to go away:
Regenerate you Provisioning Profile, download it, rebuild your IPA and upload the new Archived Binary.
Please make the file Entitlements.plist in your project Bundle and then paste this source. And after that just make a fresh build and upload the binary once again by changing the build no. Its not necessary to change the Version No.
<?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>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>beta-reports-active</key>
<true/>
<key>application-identifer</key>
<string>bkahblahblah</string>
</dict>
</plist>

ERROR ITMS-9000 iTunes Connect

I am trying to upload a phonegap build iOS app to the app store and I keep getting this error
ERROR-ITMS-9000:: "Missing Code Signing Entitlements. No entitlements found in the bundle 'com.fitness.challenges' for executable 'Payload/30DayFitness.app/30DayFitness'." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
I have set up my development and distribution provisioning profiles and certificates, and uploaded the cerificate.12 and provision profile to build.phonegap.com
any help be great thanks!
i fixed this by adding -538h to the iphone5 splash screen png file name!
so it was - splash-iphone5-538h.png
that was all that was breaking the upload!
According to this topic on phonegap build support forum there's an error in documentation.
In config.xml as id you should put just your app name and not the reverse style domain id as used in provisioning profile.
EDIT: (16.10.2013, 17:33)
I just discovered that it is rather temporary workaround because to upload APK in play store you'd still need the reverse style domain id.
check your Bundle Identifier.
The bundle id supposed to same with App ID.
I had the same problem and fixed it by making sure all the required icons where there.
I had the same problem in a RE-SIGNED APP, using iResign as the re-signing tool.
Here's an example of an Entitlements.plist file that helped me get my build through to Apple.
<?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>application-identifier</key>
<string>B123RP1C12.com.startup.killerapp</string>
<key>keychain-access-groups</key>
<array>
<string>B123RP1C12.com.startup.killerapp </string>
</array>
<key>get-task-allow</key>
<true/>
</dict>
</plist>

How can I code sign an iOS .xarchive so a client can resign properly? (using push notifications)

I need to create an iOS .xarchive file using a developer profile, that a client can resign using their distribution profile(s).
(I have read this but it didn't have any real solutions: How can I send iOS app to client, for them to code-sign)
The client doesn't want to share their private keys, nor give me access above 'Developer' in the member center. And we don't want to share our source code.
We need to support push notifications, so this means we need a fully qualified app id.
I cannot figure out a way that allows me to build and export an .xarchive signed with 'aps production', 'get-task-allow' as false, BUT ALSO using the certificate that matches the clients distribution certificate.
This feels like a bug in Xcode, shouldn't the changes to 'aps production' and 'get-task-allow' be tied to the configuration, not the type of provisioning profile? I am using 'Release', but with my developer profile.
Am I missing something, or is this just not possible?
I figured out the answer to this question through trial and error. Even though tech notes and most web resources say you don't need an entitlements.plist if you are using XCode4+, there are certain cases where you do. Two cases are represented by my question above:
building Release configuration (i.e.: Archive), but signing with a Developer provisioning profile
using push notifications
My final custom entitlements.plist has 3 values:
<?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>aps-environment</key>
<string>production</string>
<key>keychain-access-groups</key>
<array>
<string>L23874DF.com.your.appid</string>
</array>
</dict>
</plist>
Once I had that in my entitlements.plist, I built with the developer provisioning profile for this app id. Then I archived it, and exported the archive from the organizer. Once exported, I sent it to my client. The client was able to resign the archive with an ad hoc profile, and send me back an IPA file, which I loaded onto my device. I also successfully received a push notification from Urban Airship to this IPA!

Resources