Nach dem Update auf Xcode 5.1 kann ich mein Projekt für den 64-Bit-Simulator nicht mehr erstellen und erhalte folgende Fehlermeldung:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
Dies sind meine Ziel-Build-Einstellungen:
Ich habe versucht, "Build Active Architecture" in "No" zu ändern und "i386" zu "Valid Architectures" hinzuzufügen. Leider hat beides nicht funktioniert. Vielen Dank für alle Vorschläge!
Antworten:
Ich hatte die gleiche Fehlermeldung nach dem Upgrade auf XCode 5.1. Verwenden Sie CocoaPods? Wenn ja, sollte dies das Problem beheben:
quelle
Was Sie tun müssen, ist nur das auf
ONLY_ACTIVE_ARCH
zu setzenNO
(funktioniert zumindest für mich). Unten ist ein Screenshot dafür:BEARBEITEN:
Soweit ich weiß ( bitte darauf hinweisen, wenn es etwas falsch ist, Dank ), wenn Sie setzen
ONLY_ACTIVE_ARCH
aufYES
, bedeutet dies , das Xcode wird nur für die aktive Architektur bauen (was auf das Gerät bezieht , die in Xcode gerade aktiv ist). Die Standardeinstellung von Xcode scheint Debug zu seinYES
, sodass keine Binärdateien für andere Architekturen erstellt werden, wenn Sie nur für ein spezielles Gerät erstellen möchten, das mit Ihrem Mac verbunden ist.Der Grund für die fehlgeschlagene Erstellung könnte sein, dass das Projekt die Architektur des von Ihnen verbundenen Geräts nicht unterstützt. Die beste Lösung besteht also darin, die richtige Architektur für Ihr Gerät hinzuzufügen. Unten finden Sie eine Liste der Architekturen und der Geräte, die Folgendes unterstützen:
iPhone 6
,iPhone 5s
,iPad Air
,Retina iPad Mini
iPhone 5
,iPhone 5c
,iPad 4
iPhone 3GS
,iPhone 4
,iPhone 4S
,iPod 3G/4G/5G
,iPad
,iPad 2
,iPad 3
,iPad Mini
iPhone
,iPhone 3G
,iPod 1G/2G
Warum funktioniert "set the
ONLY_ACTIVE_ARCH
toNO
" ? Da das Gerät weiterhin die Binärdatei ausführen kann, die für alle von Ihnen hinzugefügten Architekturen erstellt wurde (übergeben Sie den Build), jedoch an Leistung verliert. Dies ist nur eine schnelle Lösung, aber nicht die beste.Hinweis : Je mehr Architekturen Sie hinzugefügt haben, desto größer wird die Binärdatei. Es ist also gut, die richtigen Architekturen für Ihr Projekt auszuwählen. ;)
quelle
In
arm64
an das Ziel istvalid architectures
. Sieht so aus, als würde es auchx86-64
simulatorgültigen Architekturen Architektur hinzufügen .quelle
Wenn Sie CocoaPods verwenden, besteht das wahrscheinlichste Problem darin, dass in Ihrem Pods-Projekt Build-Einstellungen nur für Build Active Architecture für Debug auf Ja festgelegt ist .
Die Lösung ist einfach. Ändern Sie es in Nein .
Wechseln Sie in ähnlicher Weise für Ihr Anwendungsprojekt zu Nein .
quelle
Ich hatte ein ähnliches Problem. Wurde gelöst, indem "Architektur " in den Build-Einstellungen für das Projekt in " $ (ARCHS_STANDARD_32_BIT) " geändert wurde .
Jetzt müssen Sie Standardarchitekturen (armv7, arm64) - $ (ARCHS_STANDARD) auswählen, da Apple Apps empfiehlt, die auf einer 64-Bit-Architektur basieren . Klicken Sie auf: Apple-Dokument
quelle
$(ARCHS_STANDARD_INCLUDING_64_BIT)
?$(ARCHS_STANDARD_32_BIT)
oder$(ARCHS_STANDARD_INCLUDING_64_BIT)
?Hinzufügen: Architekturen: $ (ARCHS_STANDARD_INCLUDING_64_BIT)
Gültige Architekturen: arm64 armv7 armv7s
quelle
Nur für den Fall, dass für alle, die trotz der oben genannten Schritte immer noch auf das Problem stoßen, überprüfen Sie, ob der von Ihnen ausgeführte Simulator auch der unterstützte ist. Ich hatte meine für arm7 und arm7s angegeben, versuchte aber, die App auf einem 64-Bit-Simulator auszuführen.
quelle
Um zu vermeiden, dass "pod install" bei jeder Ausführung nur_active_arch zum Debuggen zurücksetzt, können Sie Ihrer Pod-Datei Folgendes hinzufügen
quelle
Fügen Sie einfach arm64 in eine gültige Architektur ein. Ich hoffe, es wird für Sie funktionieren.
quelle
Mein Problem war, dass das Pods-Projekt trotz meiner Podfile auf OS X abzielte
platform :ios
. Ich benutze Cocoapods 0.35.0.rc2.Um dies zu beheben, wählen Sie das Pods-Projekt im Projektnavigator aus und überprüfen Sie, ob der Pods PROJECT-Knoten (wohlgemerkt nicht das Pods-Ziel) auf iOS abzielt. Das heißt, die Einstellungen für die Architekturerstellung sollten wie folgt sein:
$(ARCHS_STANDARD)
iOS 8.1
iOS
$(ARCHS_STANDARD)
Ich wollte auch alle Architekturen erstellen und habe dem Podfile Folgendes hinzugefügt:
quelle
Ich musste folgendes hinzufügen
i386
undx86_64
dazuValid Architectures
. Ich verwende Xcode 7.2 und ziele auf iOS 8+ ab. Hatte ich schonarmv7
,armv7s
undarm64
da drin und die in Xcode 6.4 arbeitete.quelle
Ich hatte das gleiche Problem, als ich meine App mit xcode 5.1 auf dem iPad ausführte. Es wurde behoben, indem armv7s aus 'gültigen Architekturen' entfernt und der Wert 'Nur aktive Architekturen erstellen' auf Nein gesetzt wurde. Beide Felder finden Sie in Ihrer App-> Ziele-> Build-Einstellungen-> Architekturen.
quelle
Ich bin zu dieser Frage aufgrund eines Problems mit der Befehlszeilenerstellung für den Simulator in Xcode 7.2 gekommen. Falls jemand mit demselben Problem hierher kommt, werde ich die gefundene Lösung teilen:
Anscheinend gibt es einen Fehler in Xcode 7.2 ,
xcodebuild
der beim Versuch, einen Simulator zu erstellen , zum Scheitern führt. Die Lösung besteht darin, die Option "-destination" anzugeben, z.Aktualisieren
Mit dem obigen Beispielbefehl wird eine Binärdatei erstellt, die nur die Grafiken für das iPhone 6 enthält. Wenn die Binärdatei auf anderen Simulatoren ausgeführt wird, wird die iPhone 6-Grafik auf die Plattform skaliert. Eine bessere Problemumgehung, die alle Grafiken für alle Plattformen enthält, besteht darin, den Parameter anzugeben
PLATFORM_NAME=iphonesimulator
, zum Beispiel:quelle
Versuchen Sie, alle vorherigen Architekturen zu entfernen (dh die Einstellung ARCHS_STANDARD zu entfernen), während Sie i386 zu den Architekturen hinzufügen. Dies sollte die aktive Architektur in i386 ändern. Ich habe ein ähnliches Problem festgestellt, als ich versucht habe, standardmäßig für armv7 zu erstellen, aber es wurde weiterhin versucht, für arm64 zu erstellen. Ich habe ARCHS_STANDARD in ARCHS_STANDARD_32_BIT geändert, und dies hat die ausgewählte aktive Architektur geändert.
quelle
In der Akrhiektur - manchmal zur Unterstützung von 6.0 und 7.0 - schließen wir arm64 aus
Wählen Sie unter Architekturen -> Architektur - Standardarchitektur arm64 armv7 armv7s aus. Gleich unten in Valid acrchitecture make user arm64 armv7 armv7s ist enthalten. Das hat bei mir funktioniert.
quelle
Ich habe dieses Problem mit der Antwort von @ Kjuly und der spezifischen Zeile gelöst:
"Der Grund für die fehlgeschlagene Erstellung könnte sein, dass das Projekt die Architektur des von Ihnen angeschlossenen Geräts nicht unterstützt."
Wenn Xcode geladen ist, wird meine iPad-App automatisch auf iPad Air eingestellt
Dies verursachte den Fehler bei der Abhängigkeitsanalyse.
Durch Ändern des Gerätetyps wurde das Problem sofort behoben:
Ich weiß nicht, warum das funktioniert, aber dies ist eine sehr schnelle Antwort, die mir viel Fummeln im Hintergrund erspart hat und die App sofort zum Testen gebracht hat. Ich hätte nie gedacht, dass dies eine Sache sein könnte und etwas so Einfaches würde es beheben, aber in diesem Fall tat es.
quelle
Ich fand, dass es notwendig war, die Architekturnamen von Hand einzugeben:
Ich weiß nicht, warum dies notwendig war, dh warum diese Werte nicht von Xcode selbst geerbt wurden. Aber sobald ich das tat, ging das Problem weg.
quelle
In Gültige Architekturen: Wählen Sie jeden Eintrag aus (Release, Debug) und erstellen und drücken Sie die Rücktaste. Es sollte funktionieren
quelle