React-native-onesignal: Symbol(e) für Architektur x86_64 nicht gefunden

Erstellt am 14. Apr. 2016  ·  25Kommentare  ·  Quelle: OneSignal/react-native-onesignal

Hey,

Beim Importieren in ein RN-Projekt (Migration von Parse!) tritt ein Problem auf.

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Es sieht https://github.com/geektimecoil/react-native-onesignal/issues/5 sehr ähnlich, obwohl es eine andere Architektur hat.

Ich bin mit ObjectiveC ziemlich unbekannt, helfe aber gerne, wo ich kann und werde PR veröffentlichen, wenn ich bei Bedarf angeleitet werden kann. Hoffentlich kann mir jemand weiterhelfen!

Vielen Dank
Ollie

Hilfreichster Kommentar

Ich hatte genau das gleiche Problem wie @olliebrennan , gelöst durch:

  1. Ziehen Sie den Ordner node_modules/react-native-onesignal/ios/Frameworks in RCTOneSignal.xcodeproj unter dem linken Bedienfeld von XCode
  2. Ziehen Sie im linken Bereich das OneSignal.framework in Link Binary with Libraries

Alle 25 Kommentare

@olliebrennan hast du es geschafft, dieses Problem zu lösen? Ich durchsuche das Commit für #5, um herauszufinden, was zu tun ist. Ich bin ein JS-Entwickler, kein iOS-Entwickler, daher bin ich mit den verschiedenen Einstellungen nicht vertraut.

Vielleicht kann @jkasten2 hier helfen?

@jamiemchale habe ich nicht. Hatte das gleiche Problem, wie Sie meine App mit Parse verlassen haben, bis ein Fix kommt. Ich helfe gerne, wenn ich kann, aber wie Sie sagten, bin ich auch mit der iOS-Sprache / -Einstellungen nicht vertraut.

@olliebrennan @avishayil
Wenn Sie das OneSignal-Plugin mit Cocoa-Pods installiert haben, verweist es möglicherweise nicht auf das native OneSignal-Framework auf das Hauptprojekt. Sie können OneSignal.framework ablegen und vom Finder zu XCode ziehen, was den Linker-Fehler beheben sollte. Möglicherweise müssen Sie "Bei Bedarf kopieren" auswählen, wenn es ohne nicht funktioniert.

image

image

Stellen Sie abschließend sicher, dass Sie Xcode 7.0 oder höher verwenden, da ältere Versionen von Xcode hier zu genau demselben Fehler führen.

Danke @jkasten2
Ich habe in den nächsten Tagen eine Veröffentlichung, werde es dann versuchen und berichten.

Danke schön

+1 mit einem ähnlichen Problem unter OSX

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Mir fehlte OneSignal.framework . Habe versucht, appname/node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework in die Bibliotheken von XCode zu ziehen. Funktioniert immer noch nicht.

Habe es auch mit appname/ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework versucht, hat auch nicht funktioniert.

@olliebrennan Hast du es geschafft, das Problem zu lösen?

Ich hatte genau das gleiche Problem wie @olliebrennan , gelöst durch:

  1. Ziehen Sie den Ordner node_modules/react-native-onesignal/ios/Frameworks in RCTOneSignal.xcodeproj unter dem linken Bedienfeld von XCode
  2. Ziehen Sie im linken Bereich das OneSignal.framework in Link Binary with Libraries

Hey @hyperh @olliebrennan hast du das gelöst?

@avishayil Ich konnte das nicht lösen. Ich beschloss, mit apnagent zu gehen, um meine APN-Sachen zu verwalten.

Wenn jemand auf den gleichen Fehler stößt, bitte melden. Ich schließe dieses Thema vorerst.

@avishayil Ich habe dieses Problem. Ich habe versucht, den Anweisungen von @whollacsek zu folgen , aber ich

screenshot 2016-06-03 15 40 31

Gleiches Problem wie @chrissm79 und andere

Ich bin gerade angekommen und ja, das gleiche Problem.

+1

Etwas nachgehen. Irgendwelche Reproduktionsschritte?

Ich habe dieses Problem festgestellt und konnte es beheben, indem ich auf ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework aus dem Finder geklickt und in den Frameworks-Ordner meines XCode-Projekts gezogen habe.

Genau dasselbe Problem wie

Bearbeiten: Gelöst, indem das Framework heruntergeladen und über den dokumentierten Link verknüpft wird, anstatt das Framework im Ordner node_modules zu verwenden.

Sie haben das Beispielprojekt zum Referenzieren und Spielen. Bitte stellen Sie sicher
Sie befolgen alle Bestellungen, es sollten keine Fehler auftreten.
Am 2. Juli 2016 um 00:37 Uhr schrieb "Charles Hulcher" [email protected] :

Genau dasselbe Problem wie https://github.com/chrissm79


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/geektimecoil/react-native-onesignal/issues/18#issuecomment -230052711,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe/AAyekNTkU15t6IP4zvQzg06yXzUf0akHks5qRYiBgaJpZM4IHVBS
.

Ich habe das Problem auch, weiß aber nicht wie ich es lösen soll

ld: Warnung: Ignorieren der Datei /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd, fehlende erforderliche Architektur x86_64 in der Datei /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd (3 Slices)
Undefinierte Symbole für Architektur x86_64:
"_OBJC_CLASS_$_XCTestCase", referenziert von:
_OBJC_CLASS_$__TtC6Camera11toucanTests in toucanTests.o
"_OBJC_METACLASS_$_XCTestCase", referenziert von:
_OBJC_METACLASS_$__TtC6Camera11toucanTests in toucanTests.o
ld: Symbol(e) für Architektur x86_64 nicht gefunden
clang: error: Linker-Befehl mit Exitcode 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf anzuzeigen)

Ich bin auf React-Native 0.37 und so konnte ich dies zum Laufen bringen (ich denke, die Readmes / Dokumentation sind etwas hinter React Native).

  1. auf einem sauberen Ast ohne die Onesignal-Arbeit...
  2. npm install react-native-onesignal --save ausführen
  3. react-native link ausführen
  4. für iOS befolgen Sie die Podfile-Anweisungen (achten Sie darauf, dass Sie den Hinweis zur nativen Reaktionsversion sorgfältig befolgen)
  5. für iOS folgen Sie den Code-Ergänzungen in der Anleitung
  6. für Android folgen Sie den Android-Anweisungen (der größte Teil des Codes sollte aus dem Link-Befehl vorhanden sein, aber überprüfen Sie alles noch einmal)
  7. für Android verwenden Sie unbedingt import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage; und NICHT import com.geektime.rnonesignal.ReactNativeOneSignalPackage; (einige alte Dokumentationen hatten das rnonesignal und das wurde inzwischen aktualisiert)
  8. dann vervollständigen Sie die Konfiguration und das Setup und alle Dateien
  9. Hoffentlich ist das der Trick für Sie ... Bitte antworten Sie, wenn Sie irgendwelche Probleme haben, da ich einige Zeit sowohl auf Android als auch auf iOS über ein paar Zweige verbracht habe, damit dies funktioniert.

YMMV, wenn Sie etwas niedriger als v0.37 von RN verwenden. viel Glück.

Problem gelöst!!

Gehen Sie einfach im Projektnavigator zum Abschnitt Pods, suchen Sie das oneSignal.framework und ziehen Sie es in die "Binärdatei mit Bibliotheken verknüpfen" unter Ihrem Ziel und das war's!. Grundsätzlich ist es also besser, nur das Framework und nicht die Pod-Datei zu verwenden.

In meinem Fall musste ich die folgende Zeile in podfile hinzufügen und pod install erneut ausführen. Führen Sie dann Clean und erstellen Sie erneut.
pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'

In meinem Fall, als ich ein älteres React Native 0.39.0-Projekt ausführte, musste ich react-native link , Clean erstellen und dann Build das Projekt erneut erstellen.

In meinem Fall fehlte libRCTOneSignal.a in der Link-Bibliothek mit Binärdatei, die ich gerade hinzugefügt habe, und das Problem wurde behoben

Sie können den zweiten Schritt hier verfolgen https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual -linking

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen