web-dev-qa-db-fra.com

Que signifie l'avertissement "Mapping architecture arm64 to x86_64"?

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

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

... et:

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

En dépit de ces avertissements, la construction et les tests unitaires sont satisfaisants. J'utilise Swift 4.2.

Pourtant, de quoi parlent ces avertissements?

40
courteouselk

Allez à Build Settings et faites comme indiqué ci-dessous

 enter image description here

46
Hassan Taleb

J'ai pu désactiver les avertissements en modifiant le paramètre "Architectures valides" en $(ARCHS_STANDARD), qui correspond à mon paramètre "Architectures".

Curieusement, cela s’affichait comme "armv7 arm64" (par rapport au réglage par défaut de "armv7 armv7s arm64"), mais le réglage manuel sur cette valeur entraînait toujours les avertissements. Je ne sais pas quelle est la signification de cela, mais je n’ai encore remarqué aucun problème lors de mes tests.

25
John Montgomery

Le paramètre de construction VALID_ARCHS ("Architectures valides") est probablement remplacé, que ce soit pour la cible ou pour son projet. Il s'agit d'un paramètre de construction dont la valeur doit automatiquement correspondre à la destination d'exécution pour laquelle vous créez. Lorsque vous déterminez l'origine de 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.

15
Rick Ballard

Pour la cible qui rapporte des avertissements, définissez le paramètre "Architecture valide" sur:

$(VALID_ARCHS)
x86_64

 enter image description here 

4
Quanhua Guan

À l'instar 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 l'avertissement disparaître complètement. Tout supprimer des architectures valides vient de faire apparaître un avertissement différent ("Aucune architecture trouvée n'a été trouvée").

3
jldailey

La solution est plus simple: dans Valid Architectures remplacez simplement arm64 par x86_64 .

Avait problème similaire et les trois avertissements suivants dans mon projet:  Had similar issue and the following warning in my project 

Mon Archtectures valides étaient à l'origine  My **Valid Archtectures** originally were 

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:

 Replacing armv7 with i386, armv7s with i386, and, arm64 with x86_64 as mentioned in the Warnings was my 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.

J'espère que cela t'aides

0
CGN

Je voyais cet avertissement lorsque je tentais de compiler du code pour iOS et Mac OS ..__ Je pouvais le contourner en commençant par faire ce que Hassan Taleb avait suggéré dans sa réponse: effacer les architectures de manière à ne conserver que les architectures iPhone valides. dedans là. Et enfin, pour que vous puissiez continuer à créer pour Mac OS, passez votre souris sur les architectures valides de manière à ce qu'un bouton Plus apparaisse. Cliquez dessus et vous pouvez ensuite ajouter des paramètres distincts pour différentes plates-formes, y compris différentes architectures de CPU. Pour macOS SDK, je peux définir uniquement les architectures valides sur x86_64 si je le souhaite.  For macOS SDK, I can set my Valid Architectures to just x86_64 if I want

0
joelliusp