Nicht definierte Symbole für Architektur arm64
Ich bin immer ein Apple Mach-O Linker Error jedes mal wenn ich eine Datei importieren, die von CocoaPods.
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FBSession", referenced from: someFile
ld: symbol(s) not found for architecture arm64
Bekomme ich etwa 12 von diesen, für die verschiedenen Pods, die ich benutze.
Ich versuche zu bauen, für das iPhone 5S mit XCode 5.
Ich habe versucht, verschiedene Lösungen, hier ALSO an, aber haben nicht alle von Ihnen arbeiten noch.
Wie behebe ich dieses Apple Mach-O Linker Error?
Fand gerade eine weitere Warnung, dass könnte interessant sein, ich hoffe, das führt mich zu der Lösung:
Ignoring file ~/Library/Developer/Xcode/DerivedData/SomeApp/Build/Products/Debug-iphoneos/libPods.a,
file was built for archive which is not the architecture being linked
(arm64):~/Library/Developer/Xcode/DerivedData/someApp/Build/Products/Debug-iphoneos/libPods.a
InformationsquelleAutor der Frage GangstaGraham | 2013-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Architekturen und Gültige Architekturen sind alle richtig, können Sie überprüfen, ob Sie Hinzugefügt haben
$(inherited)
, die linker-flags generiert in Hülsen, um Andere Linker Flags wie folgt:InformationsquelleAutor der Antwort chancyWu
Das Problem ist, dass die cocoapods nicht gebaut für die arm64-Architektur, doch damit Sie nicht verknüpft werden, wenn Sie Sie bauen. Wahrscheinlich können Sie nicht verwenden Sie diese Pakete, bis Sie aktualisiert werden, und verwenden Sie diese Architektur. Sie beheben können die linker-Fehler, indem Sie zu Projekt -> Ziel (der name Ihres Projekts) -> build-Einstellungen und ändern Architekturen-standard-Architektur (armv7, armv7s) und gültige Architekturen für armv7, armv7s.
Beachten Sie aber, dies bedeutet, dass Sie nicht bekommen, die volle Kraft der 64-bit-Prozessor. Sie sagten, Sie sind Gebäude für das 5s, so kann es einige Grund, warum Sie dies brauchen. Wenn Sie aus irgendeinem Grund unbedingt brauchen, dass macht (vielleicht bauen Sie ein Spiel) und brauche dringend diese Dateien, die Sie Einreichen könnte einen pull-request und dann das Projekt neu kompilieren zu arm64, indem Sie diese gleichen Felder zu arm64 in den Dateien, die Sie zog aus der open-source-Projekte. Aber, wenn Sie wirklich brauchen diese Dateien, um 64-bit-kompatibel, das scheint ein bisschen zu viel für jetzt.
EDIT: Einige Leute haben auch berichtet, dass die Einstellung Erstellen Für Aktiv-Architekturen, JA war auch notwendig, um dieses problem zu lösen.
Als der 2014-04-28, die Einstellung sollte wie folgt Aussehen:
InformationsquelleAutor der Antwort AdamG
Ich löste dieses problem, indem Sie festlegen, dass:
ARCHS = armv7 armv7s
VALID_ARCHS = armv6 armv7 armv7s arm64
InformationsquelleAutor der Antwort morisunshine
Ich lief in das gleiche/ähnliche Problem der Umsetzung
AVPictureInPictureController
und das Problem war, dass ich nicht die Verknüpfung der AVKit Rahmen in meinem Projekt.Die Fehlermeldung war:
Die Lösung:
Hoffentlich hilft jemand anderes mit einer ähnlichen Frage, die ich hatte.
InformationsquelleAutor der Antwort NorthBlast
Ich auch begegnet das gleiche problem , die oben genannten Methoden nicht funktionieren . Ich habe versehentlich gelöscht, die Dateien in das folgende Verzeichnis auf .
Ordner-Stellplatz:
~/Library/Developer/Xcode/DerivedData/
InformationsquelleAutor der Antwort ylgwhyh
Set Architekturen zu armv7 armv7sBuild-Active-Architektur Nur zu KEINEfür jedes Ziel in dem Projekt, einschließlich jeder in Hülsen
InformationsquelleAutor der Antwort BabyPanda
Ich fest mine durch die überprüfung der gewählten Umsetzung von Dateien in der Ziel-Mitgliedschaft auf der rechten Seite. Dies ist nützlich, vor allem im Umgang mit Erweiterungen, d.h. benutzerdefinierte keyboards.
InformationsquelleAutor der Antwort jaytrixz
einige Erklärung, warum build_active_architecture auf NEIN gesetzt ist.
Xcode erkennt jetzt, welche Geräte Sie angeschlossen haben und wird die active-Architektur entsprechend. Also, wenn Sie stecken Sie eine 2. generation iPod Touch in Ihren computer mit Xcode sollte die aktive Architektur armv6. Bauen Sie Ihr Ziel mit den oben genannten Debug-Konfiguration wird nun nur bauen die armv6 binary, um Zeit zu sparen (es sei denn, Sie haben ein riesiges Projekt, das Sie möglicherweise nicht den Unterschied bemerken, aber ich denke, die Sekunden summieren sich im Laufe der Zeit).
Wenn Sie eine Verteilung erstellen der Konfiguration für die Veröffentlichung im App Store sollten Sie sicherstellen, dass diese option nicht gesetzt, so dass Sie bauen das Fett universal binary
http://useyourloaf.com/blog/2010/04/21/xcode-build-active-architecture-only.html
InformationsquelleAutor der Antwort Moaz Saeed
Gelöst, nach dem löschen der Inhalte des DerivedData-->Bauen-->Produkte - >Debug-iphoneos
InformationsquelleAutor der Antwort Tamir Avrahamov
Ich löste es, indem Sie gültige Architekturen für armv7 und armv7s Einstellung bauen aktiv-Architekturen nur JA release und dann eine neue "pod install" von der Befehlszeile aus
InformationsquelleAutor der Antwort Fabio Russo
Gegeben, ein iPhone 5s und noch nicht erhalten haben, eine 64-bit-version von einem Drittanbieter-Bibliothek, die ich hatte, um zurück zu 32-bit-Modus mit der neuesten Xcode (vor 5.1 es trifft nicht beschweren).
Ich behoben durch löschen arm64 von den Gültigen Architekturen Liste festlegen und dann die Build-Active-Architektur Nur zu KEINE. Es scheint mir, das macht mehr Sinn, als andersrum, wie oben gezeigt. Ich bin Buchung bei anderen Menschen konnte Sie nicht bekommen jede der oben genannten Lösungen nicht für Sie arbeiten.
InformationsquelleAutor der Antwort user938797
Ich hatte das gleiche problem nach dem Update auf Xcode 5.1 und fixiert es, indem Sie Architekturen zu armv7 armv7s
InformationsquelleAutor der Antwort deko
Hatte, stecken geblieben in dieser Frage den ganzen Tag.
Ich hatte mehrere Systeme, es war die Zusammenstellung gut für Demo -, Interne -, Release - aber die Debug-Schema wäre einfach nicht kompilieren und beschwerte sich über die libPods.eine fehlende.
War die Lösung, gehen Sie auf die Projekt -> Ziel -> Build-Einstellungen und ändern Sie die "Build-Active-Architektur Nur" JA". Reinigen Sie und bauen! Endlich Stunden der Kopf Jucken gelöst!
InformationsquelleAutor der Antwort GameDev
Einstellung
-ObjC
zuOther Linker Flags
im Build-Einstellungen des Ziel-das problem gelöst.InformationsquelleAutor der Antwort Thomas G.
Dieser arbeitete für mich:
ios sdk 9.3
in Ihren build-Einstellung der app.xcodeproj
gültige Architektur: armv7 armv7s
Build-Active-Architektur : Nein
Reinigen und zu bauen , die für mich gearbeitet.
InformationsquelleAutor der Antwort Shashank Saxena
Dies könnte damit zusammenhängen
libz.dylib
oderlibz.tbd
einfach haben, fügen Sie es zu Ihren Zielen für die Verknüpfung von Binärdateien, und versuchen Sie erneut kompilieren.InformationsquelleAutor der Antwort TonyTony
Müssen Sie einfach entfernen Sie arm64 von Gültige Architektur und setzen KEINE zu Active-Architektur Nur . Jetzt einfach zu Reinigen, Aufzubauen und zu betreiben. Sehen Sie nicht diesen Fehler wieder.
🙂 KP
InformationsquelleAutor der Antwort Kalpesh Panchasara
Die folgenden arbeitete für mich, um GPUImage kompilieren ohne Fehler auf Xcode 5.1 für beide die 64-bit-simulator und retina iPad Mini, ohne benötigen, um zu entfernen arm64 von den Gültigen Architekturen Liste (die Niederlagen der Zweck der Besitz eines 64-bit-Gerät zum testen 64-bit-Leistung).
Herunterladen .zip-Ordner von der GitHub Seite: https://github.com/BradLarson/GPUImage
Entpacken, und navigieren Sie zu dem "Rahmen" - Ordner. Von hier aus, fügen und kopieren Sie den 'Source' Ordner in Ihrem Xcode-Projekt. Sicher 'Copy items into destination group' s folder " angekreuzt ist, und dass 'Create groups for any added folders" ist auch angehakt. Dies wird kopieren Sie das Allgemeine, iOS-und Mac-headers/Umsetzung Dateien in Ihr Projekt.
Wenn Sie nicht brauchen, die Mac-Dateien, weil Sie kompilieren für iOS können Sie löschen die Mac-Ordner vor dem kopieren der Dateien in Ihr Projekt, oder löschen Sie einfach die Gruppe von der innerhalb von Xcode.
Sobald Sie Hinzugefügt haben, wird der Quell-Ordner, um Ihr Projekt verwenden Sie einfach die folgende zu beginnen, GPUImage Klassen/Methoden:
Ein paar Dinge hinweisen:
Hoffe die oben hilft - es scheint, es gab keine klaren Anweisungen, überall trotz der Frage mehrere Male, aber keine Angst, GPUImage funktioniert auf jeden Fall für die arm64-Architektur!
InformationsquelleAutor der Antwort inaccessiblerail
Das Problem trat bei mir nach Installation eines pod über Podfile und
pod install
. Nach dem Versuch eine Reihe von verschiedenen Updates, die ich schließlich nur importiert Pod manuell (ziehen der notwendigen Dateien in mein Projekt) und das problem gelöst.InformationsquelleAutor der Antwort Will Dennis
Als morisunshine Antwort weist in richtige Richtung, ein wenig zwicken in seiner Antwort, die mein problem gelöst für iOS8.2 .Vielen Dank an ihn.
Ich löste dieses problem, indem Sie festlegen, dass:
InformationsquelleAutor der Antwort SandeepAggarwal
In meinem Fall, musste ich mich für
C++ Standard Library
und stellen Sie sicher, dass dielibc++
war die eines ausgewählten.InformationsquelleAutor der Antwort CoachNono
Für mich, verwende ich die opencv-2.4.9 in xcode 7.2 für iOS und die Fehler oben ist aufgetreten, und ich löse den Fehler mithilfe der opencv durch pod installieren statt offline opencv framework.
Können Sie einen Versuch haben, indem die opencv-pod-text unten und löschen Sie die offline-opencv framework, wenn Sie verwendet haben.
pod 'OpenCV', '2.4.9'
InformationsquelleAutor der Antwort Chuyang
Keine der Lösungen beheben dieser Fehler in meinem Fall(Xcode 9), mit
TesseractOCRiOS
. Nach Stunden von Versuch und Irrtum, kam ich mit einer guten Lösung. Ich einfach löschen'pod 'TesseractOCRiOS', '~> 4.0.0'
imPodfile
führenpod install
. Und dann, fügen Siepod 'TesseractOCRiOS', '~> 4.0.0'
zurückPodfile
und führenpod install
wieder.Bang! Es funktioniert!
InformationsquelleAutor der Antwort 0xa6a
Ich habe vor dem gleichen problem, nach der Installation des AWS-framework zu überwinden dieses Problem,ich habe update der POD config-Datei von Ihrem Projekt erstellt, nach der Installation von AWS-POD. Check config-Datei wie unten
wenn deine config-Datei nicht richtig funktioniert, dann Setzen Sie Ihre Andere Linker-flag $(inherited)
InformationsquelleAutor der Antwort Swapnil1156035
InformationsquelleAutor der Antwort Zia
Wenn die Architektur-und linker-Einstellungen sehen gut aus, überprüfen Sie Ihre h-Dateien. Mein Problem war der gleiche Fehler, aber ich hatte umstrukturiert, die h-Dateien und entfernt habe ich eine extern-Anweisung. Andere m-Dateien verwenden, die variable, wodurch die linker-Fehler.
InformationsquelleAutor der Antwort Nick
Hinzufügen "An Sicherheit.Rahmen" hat den trick für mich.
InformationsquelleAutor der Antwort Eran Talmor
Ich weiß, das ist ein Alter Zweig. Jedoch das gleiche problem gestartet, passiert mir nach der Migration auf die neueste CocoaPods version (1.0.0) und versucht neu zu installieren, alle Schoten. Ich traf die "Fehlende Symbole für armv64" linker-Fehler.
Seltsam genug, ich löste es, indem Sie die folgenden Schritte durchführen:
Entfernen Sie alle pods pod (init,
pod installieren)
Schreiben Sie die podfile in umgekehrter Reihenfolge (anstatt:
pod "Mixpanel",
pod "Intercom",
Verwendet habe ich:
pod "Intercom",
pod "Mixpanel"
)
Pod installieren
Umkehrung der Reihenfolge der Abhängigkeiten im podfile und den Wiederaufbau der "pods" hat das problem gelöst.
InformationsquelleAutor der Antwort Arik Segal
"Der OPN [Debug] Ziel überschreibt die OTHER_LDFLAGS build-Einstellung". Dieses war das Hauptproblem. Nach dem hinzufügen von $(inherited) in der neuen Zeile in anderer linker flags mein Problem gelöst.
InformationsquelleAutor der Antwort Mohsen mokhtari
in einigen Fällen, wenn Sie definieren eine weitere Schnittstelle in einem .h-Datei, aber nicht die Umsetzung all dieser Schnittstelle, dieser Fehler aufgetreten ist.
Der linker kann nicht gefunden der Umsetzung .m-Datei, so müssen Sie die Umsetzung in Ihre .m-Datei für jede Schnittstelle.
Diesen Fehler zu beheben:
1.in .m-Datei", geben Sie die Implementierung für jede Schnittstelle.
2.rebuild
InformationsquelleAutor der Antwort Michael Yang