CocoaPods arm64 Problem

72

Bei der Verwendung von Podfile für die Entwicklung einer iOS 7-App mit Xcode5 trat dieses Problem immer auf.

Scheint nach einigem Suchen keine endgültige Lösung von CocoaPods zu sein? Vielleicht in diesem Moment gelöst, wenn Sie dies sehen.

Wie können solche Probleme jetzt behoben werden?

Das Problem war: Pods wurden als implizite Abhängigkeit für 'libPods.a' abgelehnt, da die Architekturen 'armv7 armv7s' nicht alle erforderlichen Architekturen 'armv7 armv7s arm64' enthielten.

Wald
quelle
Worin besteht das Problem? Sie können Architekturen im Pods-Projekt manuell auswählen.
Shmidt

Antworten:

199
  1. Wählen Sie das PodsProjekt aus
  2. Wechseln Sie Build Active Architecture Onlyvon Yeszu No.

Das hat bei mir funktioniert.

Hinweis: Im CocoaPods-Handbuch zur Fehlerbehebung wird empfohlen, die Debug-Einstellung in Ihrem Xcode-Projekt anzupassen , anstatt die Pods zu ändern Build Active Architecture Only. Solange sie übereinstimmen, scheint es das Problem zu beheben.

Geben Sie hier die Bildbeschreibung ein

Funroll
quelle
1
Hat für mich gearbeitet !! Danke bro
cesarferreira
7
In diesem Handbuch wird empfohlen, die Build Active Architecture Ihres Projekts für Debug nur von NEIN auf JA festzulegen. Das entspricht der CocoaPods-Einstellung. Ich vermute, das soll dazu führen, dass Debug-Builds schneller erstellt werden. Ich bin mir nicht sicher, warum sie es erzwingen. guides.cocoapods.org/using/…
Paul Solt
5
Ich habe einen guten Weg gefunden, dies zu automatisieren. Fügen Sie einfach ein Snippet am Ende Ihrer Poddatei hinzu.
Funroll
3
Leg dich nicht mit der aktiven Architektur auf den Pods an ... Als ich das tat, bekam ich ungefähr 30 Fehler um verschiedene Pods. Ich habe stattdessen die aktive Debug-Architektur meines Projekts an das Pods-Projekt angepasst.
LightningStryk
Nachdem ich auf Ja gesetzt hatte, bemerkte ich, dass ich mein Projekt bereinigt und erstellt hatte. Dann ging ich zurück und setzte es auf Nein zurück und mein Projekt wird immer noch korrekt erstellt.
Kramer
26

Versuchen Sie zunächst, die Cocoapods in Ihrem Terminal zu aktualisieren: gem update cocoapods

Wenn es danach nicht funktioniert, gehen Sie in Ihren Arbeitsbereich, klicken Sie auf das Pod-Projekt, wählen Sie alle Pod-Ziele aus und setzen Sie Architecturesauf (armv7 armv7s arm64).

Immer noch nichts? Versuchen Sie, alles wieder auf zu schalten (armv7 armv7s).

xcode Screenshot

Kirualex
quelle
Ich hatte ähnliche Probleme und habe ein Upgrade von 0.25.0 auf 0.26.2 durchgeführt, wodurch das Problem behoben wurde.
Pshah
Dies wirkte wie ein Zauber bei einigen Problemen, die ich mit einzelnen Pods hatte.
Ray Hunter
'gem update cocoapods' hat bei mir funktioniert. Ich habe stundenlang versucht, ein Problem zu beheben ... Danke!
ScottyB
10

Ich hatte ähnliche Probleme, bei XCode 6.1denen pod installVerknüpfungsfehler häufig wieder eingeführt wurden. Das Hinzufügen $(OTHER_LDFLAGS)zu meinem Ziel "Other Linker Flags"hat mich durchgebracht. Bitte sehen Sie, ob dies hilft.

danfelabs
quelle
Du bist der richtige Mann! Vielen Dank für Ihre Hilfe. Dies ist der genaue Fehler, wenn Sie in Xcode 6.1 sind und die Pod-Installation ausgeführt haben! Vielen Dank Alter.
Salman Hasrat Khan
Danke Mann, das hat auch mein Problem gelöst. In der Tat pod installwarnte mich davor, aber die Unwissenden, dass ich es ignoriert werde!
M. Porooshani
4

Nur um in den "möglichen Lösungs" -Pool einzusteigen und weil viele Leute mit CocoaPods-Problemen diese Seite von Google finden:

Ich habe so ziemlich alle Lösungsvorschläge ausprobiert, aber das, was ich für mich getan habe, war: Gehen Sie im Pods-Projekt in Ihrem Arbeitsbereich zu Build Settings-> Base-SDK. Dies sollte in Fettdruck angegeben werden. Drücken Sie die Rücktaste, um die Standardeinstellung festzulegen, und setzen Sie sie wieder auf Ihre Einstellungen zurück (in meinem Fall Latest iOS(iOSx.x)).

Dies löste seltsamerweise alle meine ungültigen Architekturfehler. Könnte anderen helfen.

Elechtron
quelle
Ich habe nicht erwartet, dass die letzte Lösung in der Liste funktioniert ... aber es hat funktioniert. Danke vielmals!
kkazakov