Que signifie l'avertissement «Mappage de l'architecture arm64 vers x86_64»?

95

Après avoir migré mon framework vers Xcode 10 beta (10L176w), j'ai commencé à recevoir des avertissements comme:

Mappage de l'architecture arm64 vers x86_64. Assurez-vous que les paramètres de construction des architectures et des architectures valides de cette cible sont correctement configurés pour la plate-forme iOS Simulator.

... et:

Mappage de l'architecture armv7 vers i386. Assurez-vous que les paramètres de construction des architectures et des architectures valides de cette cible sont correctement configurés pour la plate-forme iOS Simulator.

Malgré ces avertissements, la construction et les tests unitaires réussissent tous correctement. J'utilise Swift 4.2.

Pourtant, sur quoi portent ces avertissements?

courtoiselk
la source
Je vois cela lors du réglage en essayant de construire 64 bits uniquement en utilisant ARCHS = $(ARCHS_STANDARD_64_BIT)etVALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk

Réponses:

101

Accédez aux paramètres de construction et procédez comme indiqué ci-dessous

entrez la description de l'image ici

Hassan Taleb
la source
5
Je confirme, cela a fonctionné pour moi - je ne sais pas pourquoi, mais ces paramètres ont été mis en évidence en gras à la fois sur les paramètres de construction du projet et de la cible. Ensuite, j'ai supprimé comme mentionné ci-dessus (aux deux endroits!), Et cela vient de supprimer le surlignage gras (rétabli par défaut, évidemment), et les avertissements ont disparu
Nick Entin
23
Juste pour clarifier, cela doit être fait à la fois sur le projet et sur la cible.
palmi
2
Belle réponse, je propose que ce soit la solution.
Heider Sati
8
Quand je l'ai supprimé, rien ne s'affiche dans Résolu et j'obtiensThere are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
Crystal
2
semble ne plus fonctionner. Je reçois le même problème que Crystal rapporte avec Xcode 11 beta 6. La réponse de @ John fonctionne plutôt pour moi
Fabian Streitel
70

J'ai pu désactiver ces avertissements en modifiant mon paramètre Architectures valides pour $(ARCHS_STANDARD)lequel correspond également à mon paramètre Architectures .

Curieusement, cela s'affichait comme armv7 arm64(par rapport au paramètre par défaut de armv7 armv7s arm64), mais le définir manuellement sur cette valeur provoquait toujours les avertissements. Je ne sais pas quelle est la signification de cela, mais je n'ai pas encore remarqué de problèmes lors de mes tests.

John Montgomery
la source
2
Ce paramètre a fonctionné pour moi pour un cadre "universel" ciblant à la fois iOS et macOS.
John
1
C'était ma solution. J'ai défini des architectures valides: $ (ARCHS_STANDARD) dans Project et dans Targets. Merci.
CGN
2
@CGN comment avez-vous défini dans Project? j'ai défini avec succès pour les cibles.
Erum
@Erum: voir 2 captures d'écran ci
CGN
27

Vous avez probablement remplacé le paramètre de construction VALID_ARCHS ("Architectures valides"), que ce soit pour la cible ou pour son projet. Il s'agit d'un paramètre de construction qui devrait obtenir sa valeur automatiquement en fonction de la destination d'exécution pour laquelle vous créez. Lorsque vous déterminez d'où provient ce remplacement (le paramètre de construction s'affiche en gras lorsqu'il est remplacé), sélectionnez-le et appuyez sur la touche Suppr pour le restaurer à la valeur par défaut.

Rick Ballard
la source
2
Je vois aussi cette erreur. Je n'ai pas remplacé les paramètres VALID_ARCHS. Il contient arm64à la fois pour le débogage et la publication.
funkenstrahlen
10
Cela semble être un bogue dans Xcode 10. Toujours avec les paramètres par défaut
Kdawgwilk
5
Ceci, mais semble toujours apparaître avec la version de sortie de Xcode 10. Quelqu'un a une mise à jour à ce sujet?
plivesey
1
me2, je cherchais juste sur Google à ce sujet, mais en vain
MegaManX
2
Je devais accéder à tous mes sous-projets et cibles et supprimer VALID_ARCHSpour le définir par défaut, puis nettoyer et fermer / ouvrir à nouveau Xcode pour qu'il fonctionne pleinement pour moi
manman
16

Pour la cible qui signale des avertissements, modifiez le paramètre «Architecture valide» en:

$(VALID_ARCHS)
x86_64

entrez la description de l'image ici

Quanhua Guan
la source
Meilleure réponse à coup sûr!
Supertecnoboff
8

Comme pour d'autres réponses, j'ai pu supprimer l'avertissement en remplaçant $(VALID_ARCHS)(Architectures valides) par $(ARCHS_STANDARD). À partir de là, j'ai effacé toutes les données dérivées et redémarré Xcode 10.0. Cela a fait disparaître complètement l'avertissement. Tout supprimer des architectures valides a fait apparaître un avertissement différent ("Aucune architecture valide trouvée").

Jldailey
la source
1

La solution est plus simple: dans les architectures valides, remplacez simplement arm64 par x86_64 .

J'ai eu un problème similaire et les trois avertissements suivants dans mon projet: J'ai eu un problème similaire et l'avertissement suivant dans mon projet

Mes Archtectures valides étaient à l' origine Mes ** Archtectures valides ** étaient à l'origine

Remplacement:

  • armv7 avec i386,
  • armv7s avec i386,
  • et, arm64 avec x86_64

(comme mentionné dans les avertissements) était ma solution. Le résultat dans le paramètre Architecture valide était:

Le remplacement d'armv7 par i386, d'armv7s par i386 et d'arm64 par x86_64 comme mentionné dans les avertissements était ma solution

Après les remplacements, mes trois avertissements ci-dessus ont disparu.

Des informations plus détaillées sur les architectures peuvent être trouvées ici: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

Je pense que la formulation de cet avertissement dans Xcode est un peu confuse.

CGN
la source
1

Si vous rencontrez un problème dans Flutter:

  1. Supprimez le Podfile, Podfile.lock, le dossier Pods, Runner.xcworkspace, Flutter.framework.

  2. Courez flutter clean.

  3. Courez flutter build ios.
Deepak Ror
la source
0

Je voyais cet avertissement lorsque j'ai essayé de compiler du code pour iOS et Mac OS. J'ai pu contourner le problème en faisant d'abord ce que Hassan Taleb a suggéré dans sa réponse: effacer les architectures afin que seules les architectures iPhone valides soient présentes. Et enfin, pour continuer à construire pour Mac OS, passez votre souris sur les architectures valides pour qu'un bouton plus apparaisse. Cliquez dessus et vous pourrez ensuite ajouter des paramètres distincts pour différentes plates-formes selon vos besoins, y compris différentes architectures de processeur. Pour le SDK macOS, je peux définir mes architectures valides sur uniquement x86_64 si je le souhaite.Pour le SDK macOS, je peux définir mes architectures valides sur uniquement x86_64 si je le souhaite

joelliusp
la source
sur le Xcode actuel, cette option n'existe plus.
JBarros35
@lambdapool quelle option ne voyez-vous pas? S'agit-il de "Architectures valides" / "VALID_ARCHS"?
joelliusp
0

J'ai trouvé que le moyen le plus simple de résoudre ce problème était d'ouvrir le projet dans mon éditeur de texte, puis de rechercher et de supprimer toutes les VALID_ARCHSlignes.

Jonathan
la source
0

Je suis également confronté au même problème. Pour la résolution, je viens de changer le système de construction de Standard à Legacy et cela a résolu le problème.

Gupta dur
la source
0

J'ai vu le même avertissement que je construis mon cadre. Après un certain temps, j'ai remarqué que ces valeurs d'architecture valides varient en fonction du type de périphérique, quelles que soient les valeurs des paramètres de construction.

Real devices-> arm64 
Simulator devices ->x86-64
simpleBuveur
la source
-2

si vos [paramètres de construction] sont armv7 armv7s arm64, veuillez supprimer armv7s. l'avertissement sera annulé.

Wilson Wang
la source
il ne s'agit pas seulement d'armv7, c'est un problème général et votre suggestion n'est pas prospective
amok