nodejs-mobile / nodejs-mobile-react-native

Node.js for Mobile Apps React Native plugin
https://nodejs-mobile.github.io
MIT License
180 stars 42 forks source link

Error while building on iOS simulator - building for iOS Simulator-x86_64 but attempting to link with file built for iOS-arm64 Undefined symbols for architecture x86_64 #35

Closed simonecorsato closed 1 year ago

simonecorsato commented 1 year ago

I'm having an issue while building on a x64 macBook using "nodejs-mobile-react-native": "16.17.4" for an iPhone simulator (iOS target 15). I'm using node version v16.15.1 . So I can't run "nodejs-mobile-react-native" on an iOS simulator. I'm reporting the error below, thank you for your support.

ld: warning: ignoring file /Users/simone.corsato/git/SwingMobile/node_modules/nodejs-mobile-react-native/ios/NodeMobile.framework/NodeMobile, building for iOS Simulator-x86_64 but attempting to link with file built for iOS-arm64 Undefined symbols for architecture x86_64: "_napi_call_function", referenced from: Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_close_handle_scope", referenced from: Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_coerce_to_string", referenced from: Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_create_reference", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_create_string_utf8", referenced from: Method_GetDataDir(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_define_properties", referenced from: Init(napi_env__*, napi_value__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_get_cb_info", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_get_global", referenced from: Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_get_last_error_info", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_GetDataDir(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Init(napi_env__*, napi_value__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_get_reference_value", referenced from: Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_get_value_string_utf8", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_is_exception_pending", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_GetDataDir(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Init(napi_env__*, napi_value__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_module_register", referenced from: _register_rn_bridge() in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_open_handle_scope", referenced from: Channel::invokeNodeListener(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_throw_error", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Channel::setNapiRefs(napi_env__*&, napi_ref__*&) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_GetDataDir(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Init(napi_env__*, napi_value__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_napi_typeof", referenced from: Method_RegisterChannel(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) Method_SendMessage(napi_env__*, napi_callback_info__*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_node_start", referenced from: -[NodeRunner startEngineWithArguments::] in libnodejs-mobile-react-native.a(NodeRunner.o) "_uv_async_init", referenced from: Channel::setNapiRefs(napi_env__*&, napi_ref__*&) in libnodejs-mobile-react-native.a(rn-bridge.o) "_uv_async_send", referenced from: Channel::flushQueue() in libnodejs-mobile-react-native.a(rn-bridge.o) Channel::setNapiRefs(napi_env__*&, napi_ref__*&) in libnodejs-mobile-react-native.a(rn-bridge.o) Channel::queueMessage(char*) in libnodejs-mobile-react-native.a(rn-bridge.o) "_uv_default_loop", referenced from: Channel::setNapiRefs(napi_env__*&, napi_ref__*&) in libnodejs-mobile-react-native.a(rn-bridge.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

staltz commented 1 year ago

As mentioned in https://github.com/nodejs-mobile/nodejs-mobile/blob/main/doc_mobile/CHANGELOG.md#2023-01-26-version-16170-current the iOS Simulator is not supported anymore.

This may change in the near future and we're going to create a new release.

simonecorsato commented 1 year ago

Thank you for the quick response. Sorry I didn't notice, I saw in the main page "Universal binaries are included in the plugin, so you can run in both iOS simulators and devices." and I didn't go in detail on releases notes. I can't wait to see the new release. Thank you again

winionian commented 1 year ago

Solve as I have mention at https://github.com/nodejs-mobile/nodejs-mobile-react-native/issues/10#issuecomment-1728708885