Lorsque je télécharge une version sur TestFlight, le nouvel appareil appartenant à Apple et intégré à iTunes Connect, le journal suivant s'affiche:
AVERTISSEMENT ITMS-90191: "Le droit d'accès à la bêta est manquant. Votre application n'inclut pas le droit aux rapports bêta-actifs-actifs. Si vous avez l'intention de distribuer cette version via TestFlight pour les tests bêta, veuillez recréer cette application avec un profil de provisionnement nouvellement généré."
Lorsque je regarde la construction sur iTunes Connect, je vois également l'avertissement suivant:
Pour utiliser les tests bêta de TestFlight, la construction X.Y.Z doit contenir le droit d'accès bêta correct. Pour plus d'informations, consultez la FAQ.
Le lien FAQ indique:
Que dois-je faire si ma version de pré-version ne contient pas le droit bêta correct?
Pour utiliser l'application TestFlight afin de tester votre version préliminaire, celle-ci doit être signée avec un profil d'approvisionnement de la distribution App Store incluant le droit à la bêta. Les nouveaux profils de provisioning de distribution générés dans le centre de développement iOS contiennent automatiquement le droit bêta.
Si un profil d'approvisionnement de distribution existant a été généré avant le lancement de TestFlight Beta Testing, vous devez régénérer le profil.
Le problème est que je suis en utilisant un nouveau profil de provisioning de distribution App Store. Je l'ai créé comme ça:
Lorsque j'inspecte la source du profil d'approvisionnement téléchargé, je vois:
<key>Entitlements</key>
<dict>
// ...
<key>aps-environment</key>
<string>production</string>
<key>beta-reports-active</key>
<true/>
// ...
Le profil d'approvisionnement est donc défini sur production
et ne} _ contient le droit beta-reports-active
.
Cependant, iTunes Connect continue de se plaindre lorsque cette version est téléchargée sur TestFlight.
Des idées sur la façon de résoudre ce problème? Est-ce un bug d'Apple?
rdar: // 20128048
Commencez par vous assurer que vous utilisez un profil d'approvisionnement de la distribution App Store. Il s'agit probablement d'un profil d'approvisionnement {différent) du profil d'approvisionnement de distribution ad hoc que vous utilisiez pour signer les versions antérieures à Apple TestFlight.
J'ai continué à frapper l'erreur ITMS-90191 après que je suis passé à un profil d'approvisionnement de la distribution App Store. J'ai résolu le problème en ajoutant en plus la clé beta-reports-active
au fichier Entitlements.plist
de ma cible dans le projet Xcode.
La clé beta-reports-active
doit être incluse dans le profil de provisionnement ET les droits de la cible.
TargetName.entitlements
:
<?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>beta-reports-active</key>
<true/>
// ...
</dict>
</plist>
Après avoir ajouté le droit à ma cible, je peux télécharger avec succès la version sur iTunes Connect TestFlight sans l'avertissement ITMS-90191
:
L'utilisation d'un profil d'approvisionnement AppStore a résolu ce problème pour moi. J'ai réussi à distribuer et installer avec succès sur les appareils. J'utilisais un profil d'approvisionnement AdHoc comme d'habitude et soudainement j'ai commencé à avoir cette erreur. Des choses frustrantes en effet.
Editer manuellement le fichier plist ne me l’a pas fait.
La modification d’un profil existant et la génération du fichier ne fonctionnaient PAS non plus cette fois-ci.
Mais, comme pour joehl, créer un tout nouveau profil de provision le corrigea pour moi. Créez donc un nouveau profil de provision et vous serez de retour dans les affaires. Cela ressemble à un problème dans TestFlight.
J'ai pu résoudre ce problème en l'ajoutant à mon script xcodebuild.
xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>
Il semblerait que définir Identités de signe de code dans Configurer les paramètres manuellement puisse résoudre ce problème également.
Une solution simple: supprimez votre profil de provisioning précédent et créez-en un nouveau. résout mon problème. :)
J'ai édité mon entitlements.plist
avec la commande suivante:
/usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist
Si vous utilisez Fastlane, assurez-vous de définir ad-hoc sur false pour l'étape sigh
. Sinon, un profil ad-hoc ne conviendra pas pour la distribution TestFlight. c'est à dire.:
sigh(
adhoc: false,
team_id: "XXXXXXXXX"
)