React-native-onesignal: symbole(s) introuvables pour l'architecture x86_64

Créé le 14 avr. 2016  ·  25Commentaires  ·  Source: OneSignal/react-native-onesignal

Hey,

Je rencontre un problème lors de l'importation dans un projet RN (migration depuis Parse !).

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)

Il ressemble beaucoup à https://github.com/geektimecoil/react-native-onesignal/issues/5 bien que l'architecture soit différente.

Je ne connais pas assez ObjectiveC, mais je suis heureux d'aider là où je peux et je publierai des relations publiques si je peux être guidé selon les besoins. J'espère que quelqu'un pourra m'aider !

Merci
Ollie

Commentaire le plus utile

J'ai eu exactement le même problème que @olliebrennan , résolu par:

  1. faites glisser le dossier node_modules/react-native-onesignal/ios/Frameworks dans RCTOneSignal.xcodeproj sous le panneau de gauche de XCode
  2. une fois dans le panneau de gauche, faites glisser le OneSignal.framework dans Link Binary with Libraries

Tous les 25 commentaires

@olliebrennan as -tu réussi à résoudre ce problème ? Je regarde à travers le commit pour #5 pour savoir quoi faire. Je suis un développeur JS, pas un développeur iOS, donc je ne connais pas les différents paramètres.

Peut-être que @jkasten2 peut vous aider ici ?

@jamiemchale Je ne l'ai pas fait. J'ai eu le même problème que vous avez laissé mon application en utilisant Parse jusqu'à ce qu'un correctif arrive. Heureux de vous aider si je peux, mais comme vous l'avez dit, je ne connais pas non plus la langue / les paramètres iOS.

@olliebrennan @avishayil
Si vous avez installé le plugin OneSignal avec des pods Cocoa, il peut ne pas référencer le framework natif OneSignal au projet principal. Vous pouvez déposer et faire glisser OneSignal.framework du Finder vers XCode, ce qui devrait corriger l'erreur de l'éditeur de liens. Vous devrez peut-être sélectionner « Copier les éléments si nécessaire » si cela ne fonctionne pas sans.

image

image

Enfin, assurez-vous que vous utilisez Xcode 7.0 ou une version ultérieure, car les anciennes versions de Xcode entraîneront exactement la même erreur ici.

Merci @jkasten2
J'ai une version qui sortira dans les prochains jours, alors je vais essayer cela et faire rapport.

À votre santé

+1 ayant un problème similaire sur 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)

Il me manquait OneSignal.framework . J'ai essayé de faire glisser appname/node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework dans les bibliothèques de XCode. Ne fonctionne toujours pas.

J'ai essayé appname/ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework aussi, ça n'a pas fonctionné non plus.

@olliebrennan Avez-vous réussi à résoudre le problème ?

J'ai eu exactement le même problème que @olliebrennan , résolu par:

  1. faites glisser le dossier node_modules/react-native-onesignal/ios/Frameworks dans RCTOneSignal.xcodeproj sous le panneau de gauche de XCode
  2. une fois dans le panneau de gauche, faites glisser le OneSignal.framework dans Link Binary with Libraries

@hyperh @olliebrennan as -tu réussi à résoudre ça ?

@avishayil, je n'ai pas pu résoudre ce problème. J'ai décidé d'aller avec apnagent pour gérer mes affaires APN.

Si quelqu'un rencontre la même erreur, veuillez le signaler. Je clos ce sujet pour le moment.

@avishayil J'ai ce problème. J'ai essayé de suivre les instructions de j'obtiens toujours la même erreur dans XCode.

screenshot 2016-06-03 15 40 31

Même problème que @chrissm79 et autres

Je viens d'arriver et oui, même problème.

+1

En y regardant. Des étapes de reproduction ?

J'ai rencontré ce problème et j'ai pu le résoudre en cliquant et en faisant glisser ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework du Finder dans le dossier Frameworks de mon projet XCode.

Même problème que @chrissm79

Modifier : résolu en téléchargeant le framework et en le liant à partir du lien documenté plutôt que d'utiliser le framework dans le dossier node_modules.

Vous avez l'exemple de projet pour référencer et jouer avec, s'il vous plaît assurez-vous
vous suivez toutes les commandes, aucune erreur ne devrait se produire.
Le 2 juillet 2016 à 00h37, "Charles Hulcher" [email protected] a écrit :

Même problème que @chrissm79 https://github.com/chrissm79

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/geektimecoil/react-native-onesignal/issues/18#issuecomment -230052711,
ou couper le fil
https://github.com/notifications/unsubscribe/AAyekNTkU15t6IP4zvQzg06yXzUf0akHks5qRYiBgaJpZM4IHVBS
.

J'ai aussi ce problème mais je ne sais pas comment le résoudre

ld : avertissement : ignorer le fichier /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd, architecture requise manquante x86_64 dans le fichier /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd (3 tranches)
Symboles non définis pour l'architecture x86_64 :
"_OBJC_CLASS_$_XCTestCase", référencé à partir de :
_OBJC_CLASS_$__TtC6Camera11toucanTests dans toucanTests.o
"_OBJC_METACLASS_$_XCTestCase", référencé à partir de :
_OBJC_METACLASS_$__TtC6Camera11toucanTests dans toucanTests.o
ld : symbole(s) introuvables pour l'architecture x86_64
clang : erreur : la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'appel)

je suis sur react-native 0.37 et voici comment j'ai pu faire fonctionner cela (je pense que les readmes/documentation sont légèrement en retard sur react native).

  1. sur une branche propre sans aucun travail de signal...
  2. courir npm install react-native-onesignal --save
  3. courir react-native link
  4. pour iOS, suivez les instructions du fichier pod (assurez-vous de suivre attentivement la note de la version native de réagir)
  5. pour iOS, suivez les ajouts de code dans les instructions
  6. pour Android, suivez les instructions Android (la plupart du code devrait être là à partir de la commande de lien, mais vérifiez tout)
  7. pour Android, assurez-vous d'utiliser import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage; et NON import com.geektime.rnonesignal.ReactNativeOneSignalPackage; (certaines anciennes documentations avaient le rnonesignal et qui a depuis été mis à jour)
  8. puis terminer la configuration et l'installation et tous les fichiers
  9. J'espère que cela fera l'affaire pour vous... veuillez répondre si vous avez des problèmes car j'ai passé du temps sur Android et iOS sur quelques branches pour que cela fonctionne.

YMMV si vous utilisez quelque chose d'inférieur à la v0.37 de RN. Bonne chance.

Problème résolu!!

À partir du navigateur de projet, accédez à la section Pods, recherchez le oneSignal.framework et faites-le glisser dans le « Lien binaire avec les bibliothèques » situé sous votre cible et c'est tout !. Donc, fondamentalement, il est préférable d'utiliser simplement le framework plutôt que le fichier pod.

Dans mon cas, j'ai dû ajouter la ligne suivante dans podfile et exécuter à nouveau pod install . Ensuite, exécutez Clean et reconstruisez à nouveau.
pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'

Dans mon cas, en exécutant un ancien projet React Native 0.39.0, je devais react-native link , Clean construire puis Build le projet à nouveau.

dans mon cas, libRCTOneSignal.a manquait dans la bibliothèque Link avec le binaire que je viens d'ajouter et le problème est résolu

vous pouvez suivre la deuxième étape ici https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual -linking

Cette page vous a été utile?
0 / 5 - 0 notes