React-native-onesignal: symbol(s) not found for architecture x86_64

Created on 14 Apr 2016  ·  25Comments  ·  Source: OneSignal/react-native-onesignal

Hey,

I am running into an issue when importing this into a RN project (migrating from 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)

It looks very similar to https://github.com/geektimecoil/react-native-onesignal/issues/5 although different architecture.

I am pretty unfamiliar with ObjectiveC but happy to help where I can and will issue PR if I can be guided as required. Hopefully someone can help me along!

Thanks
Ollie

Most helpful comment

I had the exact same issue as @olliebrennan, solved it by:

  1. drag the node_modules/react-native-onesignal/ios/Frameworks folder into RCTOneSignal.xcodeproj under XCode's left panel
  2. once in the left panel, drag the OneSignal.framework into Link Binary with Libraries

All 25 comments

@olliebrennan did you manage to resolve this issue? I am looking through the commit for #5 to figure out what to do. I'm a JS dev, not an iOS dev, so am unfamiliar with the various settings.

Maybe @jkasten2 can help here?

@jamiemchale I did not. Had the same issue as you so left my app using Parse until a fix comes along. Happy to help if I can but as you said, I am also unfamiliar with the iOS language / settings.

@olliebrennan @avishayil
If you installed the OneSignal plugin with Cocoa pods it may not reference the OneSignal native framework to the main project. You can drop and drag OneSignal.framework from Finder to XCode which should fix the linker error. You may have to select "Copy items if needed" if it does not work without.

image

image

Lastly make sure you are using Xcode 7.0 or higher as older versions of Xcode will result in the exact same error here.

Thanks @jkasten2
I have a release going out in the next couple of days then will try this and report back.

Cheers

+1 having a similar issue on 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)

I was missing OneSignal.framework. Tried dragging appname/node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework into XCode's Libraries. Still not working.

Tried appname/ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework as well, didn't work either.

@olliebrennan Did you manage to resolve the issue?

I had the exact same issue as @olliebrennan, solved it by:

  1. drag the node_modules/react-native-onesignal/ios/Frameworks folder into RCTOneSignal.xcodeproj under XCode's left panel
  2. once in the left panel, drag the OneSignal.framework into Link Binary with Libraries

Hey @hyperh @olliebrennan did you managed to solve this?

@avishayil I was unable to solve this. I decided to go with apnagent to handle my APN stuff.

If someone encounters the same error, please report. I'm closing this issue for now.

@avishayil I have this problem. Tried following @whollacsek's instructions but I am still getting the same error in XCode.

screenshot 2016-06-03 15 40 31

Same problem as @chrissm79 and others

I just got here and yes, same problem.

+1

Looking into it. Any reproduce steps?

I experienced this issue and was able to fix it by clicking and dragging ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework from Finder into the Frameworks folder of my XCode project.

Same exact issue as @chrissm79

Edit: Solved by downloading the framework and linking it from the documented link rather than using the framework in the node_modules folder.

You have the example project to reference and play with, please make sure
you're following all the orders, no errors should occur.
On Jul 2, 2016 12:37 AM, "Charles Hulcher" [email protected] wrote:

Same exact issue as @chrissm79 https://github.com/chrissm79


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/geektimecoil/react-native-onesignal/issues/18#issuecomment-230052711,
or mute the thread
https://github.com/notifications/unsubscribe/AAyekNTkU15t6IP4zvQzg06yXzUf0akHks5qRYiBgaJpZM4IHVBS
.

I also have this problem but don't know how to solve it

ld: warning: ignoring file /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd, missing required architecture x86_64 in file /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_XCTestCase", referenced from:
_OBJC_CLASS_$__TtC6Camera11toucanTests in toucanTests.o
"_OBJC_METACLASS_$_XCTestCase", referenced from:
_OBJC_METACLASS_$__TtC6Camera11toucanTests in toucanTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

i'm on react-native 0.37 and here's how i was able to get this to work (i think the readmes/documentation are slightly behind react native).

  1. on a clean branch with none of the onesignal work...
  2. run npm install react-native-onesignal --save
  3. run react-native link
  4. for iOS follow the podfile instructions (be sure to follow the react native version note carefully)
  5. for iOS follow the code additions in the instructions
  6. for android follow the android instructions (most of the code should be there from the link command, but double check everything)
  7. for android be sure to use import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage; and NOT import com.geektime.rnonesignal.ReactNativeOneSignalPackage; (some old documentation had the rnonesignal and that's since been updated)
  8. then complete config and setup and all files
  9. hopefully that does the trick for you...please reply if you have any issues as i spent some time on both android and iOS over a few branches to get this to work.

YMMV if you are using something lower than v0.37 of RN. good luck.

Problem solved!!

Just from the project navigator, go to the Pods section, find the oneSignal.framework and drag it into the 'Link Binary with libraries' located under your target and thats it!. So basically its better to just user the framework rather than the pod file.

In my case I had to add the following line in podfile and run pod install again. Then run Clean and build again.
pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'

In my case, running an older React Native 0.39.0 project, I had to react-native link, Clean build and then Build the project again.

in my case libRCTOneSignal.a was missing in Link library with binary i just added and issue resolved

you can follow the second step here https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking

Was this page helpful?
0 / 5 - 0 ratings