wake-up-neo.net

Was bedeutet die Warnung "Mapping architecture arm64 nach x86_64"?

Nach der Migration meines Frameworks auf Xcode 10 Beta (10L176w) erhielt ich Warnmeldungen wie:

Zuordnen der Architektur arm64 zu x86_64. Stellen Sie sicher, dass die Build-Einstellungen für Architekturen und gültige Architekturen dieses Ziels für die iOS Simulator-Plattform ordnungsgemäß konfiguriert sind.

... und:

Mapping von Architektur Armv7 auf i386. Stellen Sie sicher, dass die Build-Einstellungen für Architekturen und gültige Architekturen dieses Ziels für die iOS Simulator-Plattform ordnungsgemäß konfiguriert sind.

Trotz dieser Warnungen bestehen die Build- und Unit-Tests alle in Ordnung. Ich verwende Swift 4.2.

Worum geht es in diesen Warnungen?

40
courteouselk

Gehen Sie zu Build Settings und führen Sie die folgenden Schritte aus

 enter image description here

46
Hassan Taleb

Ich konnte die Warnungen stummschalten, indem ich meine Einstellung "Gültige Architekturen" in $(ARCHS_STANDARD) änderte, was meiner Einstellung "Architekturen" entspricht.

Seltsamerweise wurde dies als "armv7 arm64" angezeigt (im Vergleich zur Standardeinstellung von "armv7 armv7s arm64"), aber die manuelle Einstellung dieses Werts verursachte weiterhin Warnungen. Ich bin mir nicht sicher, welche Bedeutung das hat, aber ich habe noch keine Probleme bei meinen Tests festgestellt.

25
John Montgomery

Wahrscheinlich haben Sie die Build-Einstellung VALID_ARCHS ("Valid Architectures") entweder für das Ziel oder für das Projekt überschrieben. Dies ist eine Build-Einstellung, deren Wert automatisch basierend auf dem Laufziel ermittelt werden soll, für das Sie erstellen. Wenn Sie wissen, woher diese Überschreibung kommt (die Build-Einstellung wird beim Überschreiben fett dargestellt), wählen Sie sie aus und drücken Sie die Löschtaste, um den Standardwert wiederherzustellen.

15
Rick Ballard

Ändern Sie für das TARGET, das Warnungen meldet, die Einstellung "Gültige Architektur" in:

$(VALID_ARCHS)
x86_64

 enter image description here 

4
Quanhua Guan

Ähnlich wie bei anderen Antworten konnte ich die Warnung entfernen, indem $(VALID_ARCHS) (Valid Architectures) in $(ARCHS_STANDARD) geändert wurde. Von dort aus habe ich alle abgeleiteten Daten gelöscht und Xcode 10.0 neu gestartet. Dadurch war die Warnung vollständig verschwunden. Wenn Sie alles aus gültigen Architekturen löschen, wurde eine andere Warnung angezeigt ("Keine gültigen Architekturen gefunden").

3
jldailey

Die Lösung ist einfacher: In Valid Architectures ersetzen Sie einfach arm64 durch x86_64 .

Hatte ein ähnliches Problem und die folgenden drei Warnungen in meinem Projekt:  Had similar issue and the following warning in my project 

Meine gültigen Architekturen ursprünglich waren  My **Valid Archtectures** originally were 

Ersetzen:

  • armv7 mit i386,
  • armv7s mit i386,
  • und arm64 mit x86_64

(wie in den Warnungen erwähnt) war meine Lösung. Das Ergebnis in der Einstellung Valid Architecture war:

 Replacing armv7 with i386, armv7s with i386, and, arm64 with x86_64 as mentioned in the Warnings was my solution 

Nach den Ersetzungen sind meine drei Warnungen oben verschwunden.

Weitere Informationen zu den Architekturen finden Sie hier: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

Ich denke, die Formulierung dieser Warnung in Xcode ist etwas verwirrend.

Hoffe das hilft

0
CGN

Ich habe diese Warnung gesehen, als ich versuchte, Code sowohl für iOS als auch für Mac OS zu kompilieren. Ich konnte damit umgehen, indem ich zuerst tat, was Hassan Taleb in seiner Antwort vorschlug: Die Architekturen löschen, so dass nur gültige iPhone-Architekturen möglich sind da drin. Bewegen Sie den Mauszeiger dann über die gültigen Architekturen, um die Möglichkeit zu haben, für Mac OS bauen zu können. Klicken Sie darauf und Sie können nach Bedarf separate Einstellungen für verschiedene Plattformen, einschließlich unterschiedlicher CPU-Architekturen, hinzufügen. Für das macOS SDK kann ich meine gültigen Architekturen auf x86_64 setzen, wenn ich möchte.  For macOS SDK, I can set my Valid Architectures to just x86_64 if I want

0
joelliusp