J'essaie de télécharger une nouvelle version sur TestFlight, mais Application Loader me donne l'erreur suivante:
ERREUR ITMS-90502: "Ensemble non valide. Les applications ne contenant que la tranche arm64 Doivent également comporter" arm64 "dans la liste des UIRequiredDeviceCapabilities dans Info.plist."
Si j'ajoute arm64
à UIRequiredDeviceCapabilities
comme suggéré, j'obtiens une autre erreur:
ERREUR ITMS-90098: "Cet ensemble n'est pas valide. La clé UIRequiredDeviceCapabilities contient la valeur 'arm64' qui est Incompatible avec la valeur MinimumOSVersion de '8.0'."
Je ne suis pas sûr de ce qui cause ce problème et pourquoi le paquet ne contient que l'architecture arm64
. J'ai vérifié les paramètres du projet et ils semblent inclure d'autres architectures. ARCHS
(Architectures) est défini sur Standard architectures (armv7, arm64)
, VALID_ARCHS
(Architectures valides) est défini sur arm64 armv7 armv7s
.
Cela fait longtemps que je n'ai pas essayé de télécharger la dernière version (~ 1 mois). Est-ce que l'une des mises à jour d'Apple a cassé quelque chose? (Je n'ai définitivement pas touché aux paramètres d'architecture depuis lors, la seule chose ajoutée a été UIBackgroundModes = remote-notification
). Ou y a-t-il une autre raison pour cette erreur?
Qu'à cela ne tienne, a trouvé le problème. La configuration avec laquelle j'ai construit l'archive avait Build Active Architecture Only
défini sur Yes
. Que je suis bête.
J'ai rencontré la même erreur quelques mois après cette publication. J'ai trouvé cette publication sur Google et, au cas où d'autres personnes viendraient ici, par le même chemin, l'erreur ITMS 90502
aurait une autre raison (le consensus est qu'il s'agit d'une nouvelle exigence pour la période fin octobre/début novembre 2015).
Si vous incluez d'autres frameworks dans votre application, ils doivent ÉGALEMENT contenir la fonctionnalité de périphérique requise 'arm64'. C'est-à-dire que cela doit être dans le fichier Info.plist:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
Si vous utilisez des cocoapodes, vous devez ajouter la clé 'UIRequiredDeviceCapabilities' à chaque dépendance. Incluez cette publication sur votre fichier podfile.
post_install do |installer|
installer.pods_project.targets.each do |target|
plist_buddy = "/usr/libexec/PlistBuddy"
plist = "Pods/Target Support Files/#{target}/Info.plist"
puts "Add armv7 to #{target} to make it pass iTC verification."
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities array" "#{plist}"`
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities:0 string armv7" "#{plist}"`
end
end
J'ai résolu cette erreur ERROR-ITMS 90502
.
Si vous ne définissez que sur YES
, mais que la même erreur s’affiche.
Toutefois, si votre téléphone peut se connecter à mac, déconnectez-le et téléchargez-le.
Dans mon cas, résolu!
Si la cible de déploiement de votre cible est iOS 11.0 ou ultérieure, vous devez avoir arm64
dans votre info.plist
. Créer un nouveau projet dans Xcode 9.x ajoute seulement armv7
sous UIRequiredDeviceCapabilities
, semble être un bogue.
Mettez à jour votre clé UIRequiredDeviceCapabilities
de info.plist
en:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
J'ai eu ce problème en utilisant Xamarin et s'est retrouvé sur cette question.
Pour moi, la solution consistait à s'assurer qu'aucun symbole de débogage n'est inclus lors de la création de l'application.
Dans Xamarin Studio, cliquez avec le bouton droit sur le projet -> Options. Choisissez "Compilateur" sous "Construire" rubrique. Vérifiez la liste déroulante "Informations de débogage".
Nettoyer, reconstruire, reconditionner et télécharger à nouveau, et cela a fonctionné.
Autrement:
1 - Déconnectez tous les périphériques de test de votre mac
2 - Archive.
Le problème que vous avez mentionné n’est arrivé que lorsque j’ai essayé d’archiver alors que mon iPhone était connecté.
Si vous archivez en étant déconnecté, ce problème disparaîtra.
Juste s'il y a quelqu'un d'autre avec ce problème dernièrement lors de la construction pour iOS 11 et versions supérieures, cette clé est nécessaire pour l'application, ainsi que pour toutes les extensions que vous avez dans l'application. Cependant, il n'est pas nécessaire de l'avoir dans aucun cadre.
J'ai eu le même problème avec Xamarin
tout ce que j'ai fait pour corriger le type de génération de changement de problème à Release| iPhone
pendant que vous connectez un périphérique réel
espérons que cette aide
cela fonctionne pour moi ..
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
Dans mon cas, j'avais un: ERREUR ITMS-90503 Avec arm64 seul (sans "seulement") dans la clé UIRequiredDeviceCapabilities
Et: Archiver en mode "Debug" a fonctionné pour moi
Dans mon cas, Visual Studio pour Mac a résolu le problème en définissant ARMv7 + ARM64 dans le panneau d'options ios.