Cela fait un moment que je n'ai pas dû ajuster les paramètres de construction du projet. Après la mise à niveau vers un SDK récent, j'ai du mal à créer ma configuration de distribution ad hoc.
Build génère cet avertissement et cette erreur:
avertissement: les applications iPhone doivent inclure une architecture armv6 (ARCHS = "armv7" actuel)
iPhone / iPod Touch: il manque une architecture requise à l'exécutable de l'application. Au moins une des architectures suivantes doit être présente: armv6 (-19033)
Cependant, dans mon projet, je pensais que les choses étaient correctement réglées:
- Les architectures sont: Standard (armv6 armv7)
- SDK de base: dernier iOS (actuellement défini sur iOS 4.2)
- Architectures valides: armv6 armv7
J'ai nettoyé toutes les cibles.
J'apprécie tous les conseils.
Réponses:
Si vous utilisez Xcode 4.2 ou supérieur, essayez ce qui suit:
Cliquez sur le nom de votre projet (dans la colonne de gauche), puis sur la cible:
Cliquez sur l'onglet 'Build Settings' (dans la colonne de droite):
Cliquez sur la ligne 'Release' ou 'Distribution' sous 'Architectures', et choisissez 'Other ...':
Double-cliquez sur la ligne en surbrillance nommée '$ (ARCHS_STANDARD_32_BIT)' dans le popover qui apparaît et remplacez-la en tapant 'armv6'. Ajoutez ensuite une nouvelle ligne avec le bouton plus en bas à gauche de la fenêtre contextuelle, et tapez 'armv7', puis cliquez sur Terminé:
Mise à jour: vous devez également ajouter des armv7 pour cibler l'iPhone 5. (Et supprimez armv6 si vous construisez avec Xcode 4.5 ou supérieur, qui ne prend plus en charge armv6.)
C'est tout. Vous devriez maintenant pouvoir créer / archiver sans générer d'erreurs.
Si cela ne fonctionne toujours pas, consultez cette réponse de justinxreese , qui suggère d'ajouter des entrées pour armv6 et armv7 sous "Required Device Capabilities" dans votre fichier info.plist.
la source
Si vous décochez la case "Build Active Architecture Only", il construira toutes les architectures valides.
Mise à jour : cela n'est plus applicable à partir de Xcode 4 - suivez les instructions de Nick pour Xcode 4 et versions ultérieures.
la source
J'ai eu ce problème même après avoir suivi la réponse acceptée et j'ai trouvé ce qui suit fonctionner:
Dans votre Info.plist, ajoutez une entrée pour les capacités de périphérique requises. Ce doit être un tableau et aura deux entrées.
Il ressemblera à ceci:
la source
En plus de la réponse de Nick à propos de Xcode 4.2, vous devrez peut-être également revoir votre fichier info.plist. Il semble que de nouveaux projets démarrés dans Xcode 4.2 par défaut spécifient 'armv7' dans les 'Capacités de périphérique requises'. Vous devrez supprimer cela si vous souhaitez prendre en charge les appareils exécutant armv6 (par exemple l'iPhone 3G).
Supprimez armv7 des «capacités de périphérique requises» dans votreProjectName-Info.plist
la source
Une mise à jour iOS 6
Changements dans Xcode 4.5.x pour iOS 6
la source
J'ai eu ce problème également. Je viens de définir ma cible de déploiement sur 4.3 et de ne laisser que l'architecture armv7 et cela a fonctionné. Au point, presque tout le monde en a 5, donc 4,3 c'est bien.
la source
pour moi, cela ne fonctionne pas avec chaque réponse. mais j'essaye TARGETS> Architectures> Debug et ajoute une nouvelle ligne avec le bouton plus, et tape 'armv6' (with out '), puis cliquez sur Terminé.
et enfin CMD + B, puis cliquez avec le bouton droit sur PrjectName.app (dans le dossier Produits)> Ouvrir dans le Finder> Compressez "PROJECT_NAME.APP" (dans Debug-iphoneos)> Téléchargez sur AppStore
c'est mon réglage d'écran.
si vous avez inclus un projet, veuillez tout configurer. J'espère votre aide.
la source
Après avoir essayé un mélange de ces réponses, je suis finalement tombé sur le fait de le faire fonctionner. Je suis tellement énervé contre Apple en ce moment. Encore une heure, ils m'ont fait perdre. Voici ma config.
la source
J'ai essayé toutes les réponses ci-dessus, aucune n'a résolu ma question. Je crée donc un nouveau projet et diffère les paramètres de construction un par un. Seul "Fichiers d'autorisations alternatifs" est différent. La construction du projet a échoué a une valeur armv7. Supprimez-le puis nettoyez-> build-> archive. Réussir! L'espoir peut résoudre votre question
la source
Wow, je mets à jour / soumets des applications tous les 6 mois environ. Chaque fois que je fais cela, je dois apprendre la "nouvelle" façon de le faire ...
Mêmes problèmes que ceux décrits ci-dessus lors de l'exécution d'iOS 5.1 et de Xcode 4.3.2
Merci pour les messages! J'ai passé un peu de temps à mettre à jour tous les paramètres du projet en armv6, armv7, mais pas de joie. Lorsque j'ai défini «construire une architecture active uniquement» sur Non, j'ai eu une erreur de construction sur la mise des deux objets dans le même répertoire.
Heureusement, j'ai remarqué que vous modifiez plutôt les paramètres de build cibles. C'est ce qui a finalement fonctionné (armv6, armv7 et en définissant "construire une architecture active uniquement" sur Non dans les paramètres de construction cible). Comme avertissement, j'avais déjà défini toutes les architectures sur armv6, armv7 dans les paramètres du projet également.
Quoi qu'il en soit, merci pour l'aide, Brent
la source
Je devais être sûr de modifier ces paramètres dans les paramètres Cible et Projet sur xCode 4.3.2 après avoir fait cela et l'avoir configuré pour construire à la fois pour armv6 et armv7 partout où j'ai pu soumettre mon application.
Par mesure de sécurité, j'ai également quitté xCode entre les modifications et le nettoyage, la construction et le cycle d'archivage.
la source
Un problème assez douloureux pour moi aussi. Je viens de passer environ une heure à essayer de construire et de reconstruire - pas de joie. Au final, j'ai dû faire ceci:
Je suppose que c'est un tas de jargon sur arm6, arm7 car il semblait que mon projet était valide pour les deux, au moins les paramètres semblaient le dire), je suppose que c'est une façon cynique de nous embrouiller avec les détails techniques, que nous don ne comprends pas, donc nous prenons simplement l'option facile et ciblons le dernier iOS (bon pour Apple avec plus de gens étant à jour) ....
la source
Voici la documentation d'Apple:
Q&A technique QA1760
Il dit qu'il y a deux choses que vous devez corriger:
armv6
aux paramètres de construction de l'architectureNo
.Si cela ne vous aide toujours pas, vérifiez que vous modifiez vraiment les paramètres de construction de l'architecture pour la bonne configuration de construction - j'ai perdu une demi-heure à tripoter la mauvaise et à me demander pourquoi cela n'a pas fonctionné ...
Sélectionnez
Edit Scheme...
dans le menu Produit, cliquez sur le schéma "Archive" dans la liste de gauche et vérifiez la configuration de la construction. Modifiez la valeur si ce n'était pas ce que vous attendiez.la source
Remarque; J'ai dû effectuer ces étapes pour mon projet de base et le fichier PhoneGap .xcodeproj intégré dans mon application.
Oui, j'intègre PhoneGap; ils se mettent à jour de manière trop fréquente et j'ai moins de deux mois pour savoir qu'une fonctionnalité est dépréciée.
la source
Essayez de changer votre cible de déploiement pour quelque chose de plus élevé qu'un processeur armv6. Les paramètres de xCode font référence au niveau du système d'exploitation, par exemple: iOS version # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}
(i) Vous pouvez définir cela dans l'onglet des paramètres de construction ou l'onglet de résumé. Commencez en haut à gauche de la fenêtre dans le Navigateur du projet, avec tous les fichiers qui y sont répertoriés. Cliquez sur celui le plus haut qui a une icône bleue.
(ii) Si vous prévoyez d'utiliser les circuits de ligne de shader programmables, accessibles et contrôlés via l'API openGL ES 2.0, vous devez définir votre "version de déploiement" à environ 4,3, qui, je crois, n'est disponible que sur des appareils tels que le 3GS ou plus récent. xCode signale que iOS 4.2.5 ou supérieur est nécessaire pour exécuter le code armv7. Et encore une fois, ce processeur, je crois, a commencé avec le 3GS. * IOS 4.3 semble être le choix pour moi, pour l'instant.
http://theiphonewiki.com/wiki/index.php?title=Armv7
http://en.wikipedia.org/wiki/List_of_iOS_devices
la source
Si xCode continue de se plaindre d'armv7, assurez-vous de déconnecter tout périphérique de connexion (en particulier l'iPhone 5 !!) et réessayez. Ça m'a pris des heures pour trouver ce petit renseignement.
la source
En utilisant Xcode 4.2 sur Snow Leopard, j'ai utilisé les paramètres suivants pour créer une application qui fonctionnait à la fois sur armv6 (Iphone 3G et inférieur) ET armv7 (tout plus récent que 3G, y compris 3GS).
ne placez pas armv7 dans les capacités de l'appareil requises si vous souhaitez que l'application s'exécute également sur 3G et moins.
la source