JaneaSystems / nodejs-mobile

Full-fledged Node.js on Android and iOS
https://code.janeasystems.com/nodejs-mobile
Other
2.55k stars 183 forks source link

Launch build failed with nodes-mobile-react-native 0.50.0/RN 0.61.5 on iOS 13.2 #242

Open emclab opened 4 years ago

emclab commented 4 years ago

Project: nodejs-mobile-react-native Version: 0.50.0 Mobile device: iPhone simulator on Mac OS Catinlina Mobile OS and version: iOS version 13.2 Development Node.js: 10.13.0/10.16.0/10.17.0 React Native version: 0.61.5 Development platform: Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 subsystem: ipfs 0.40.0

Launch the app with command npx react-native run-ios and encountered the error:

gc-stats@1.4.0 install /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats node-pre-gyp install --fallback-to-build

node-pre-gyp info it worked if it ends with ok node-pre-gyp verb cli [ '/usr/local/bin/node', node-pre-gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin/node-pre-gyp', node-pre-gyp verb cli 'install', node-pre-gyp verb cli '--fallback-to-build' ] node-pre-gyp info using node-pre-gyp@0.13.0 node-pre-gyp info using node@10.13.0 | darwin | x64 node-pre-gyp verb command install [] node-pre-gyp WARN Using request for node-pre-gyp https download node-pre-gyp info build requesting source compile node-pre-gyp verb command build [ 'rebuild' ] gyp info it worked if it ends with ok gyp verb cli [ '/usr/local/bin/node', gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js', gyp verb cli 'clean' ] gyp info using node-gyp@0.3.1 gyp info using node@10.13.0 | darwin | x64 gyp verb command clean [] gyp verb clean removing "build" directory gyp info ok gyp info it worked if it ends with ok gyp verb cli [ '/usr/local/bin/node', gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js', gyp verb cli 'configure', gyp verb cli '--fallback-to-build', gyp verb cli '--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node', gyp verb cli '--module_name=gcstats', gyp verb cli '--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch', gyp verb cli '--napi_version=3', gyp verb cli '--node_abi_napi=napi', gyp verb cli '--napi_build_version=0', gyp verb cli '--node_napi_label=node-v64', gyp verb cli '--nodedir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode' ] gyp info using node-gyp@0.3.1 gyp info using node@10.13.0 | darwin | x64 gyp verb command configure [] gyp verb check python checking for Python executable "python2" in the PATH gyp verb which succeeded python2 /usr/bin/python2 gyp verb check python version /usr/bin/python2 -c "import sys; print "2.7.16 gyp verb check python version .%s.%s" % sys.version_info[:3];" returned: %j gyp verb get node dir compiling against specified --nodedir dev files: /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode gyp verb build dir attempting to create "build" dir: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build gyp verb build dir "build" dir needed to be created? /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build gyp verb build/config.gypi creating config file gyp verb build/config.gypi writing out config file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/config.gypi gyp verb config.gypi checking for gypi file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/config.gypi gyp verb common.gypi checking for gypi file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/common.gypi gyp verb gyp gyp format was not specified; forcing "make" gyp info spawn /usr/bin/python2 gyp info spawn args [ '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/gyp/gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'make-ios', gyp info spawn args '-I', gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/config.gypi', gyp info spawn args '-I', gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/addon.gypi', gyp info spawn args '-I', gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node/common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode', gyp info spawn args '-Dnode_gyp_dir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp', gyp info spawn args '-Dnode_lib_file=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/$(Configuration)/node.lib', gyp info spawn args '-Dmodule_root_dir=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats', gyp info spawn args '-Dnode_engine=chakracore', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'build', gyp info spawn args '-Goutput_dir=.' ] gyp info ok gyp info it worked if it ends with ok gyp verb cli [ '/usr/local/bin/node', gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js', gyp verb cli 'build', gyp verb cli '--fallback-to-build', gyp verb cli '--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node', gyp verb cli '--module_name=gcstats', gyp verb cli '--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch', gyp verb cli '--napi_version=3', gyp verb cli '--node_abi_napi=napi', gyp verb cli '--napi_build_version=0', gyp verb cli '--node_napi_label=node-v64' ] gyp info using node-gyp@0.3.1 gyp info using node@10.13.0 | darwin | x64 gyp verb command build [] gyp verb build type Release gyp verb architecture x64 gyp verb node dev dir /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode gyp verb which succeeded for make /Applications/Xcode.app/Contents/Developer/usr/bin/make gyp info spawn make gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ] c++ '-DNODE_GYP_MODULE_NAME=gcstats' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DNODE_ENGINE="chakracore"' '-DNODE_ENGINE_CHAKRACORE' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/src -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/openssl/config -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/openssl/openssl/include -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/uv/include -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/zlib -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/chakrashim/include -I../src -I../../nan -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.2.sdk -Os -gdwarf-2 -mios-simulator-version-min=9.0 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-threadsafe-statics -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/gcstats/src/gcstats.o.d.raw -c -o Release/obj.target/gcstats/src/gcstats.o ../src/gcstats.cc In file included from ../src/gcstats.cc:1: ../../nan/nan.h:141:9: warning: 'TYPE_CHECK' macro redefined [-Wmacro-redefined]

define TYPE_CHECK(T, S) \

    ^

/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node/v8.h:85:9: note: previous definition is here

define TYPE_CHECK(T, S) \

    ^

../src/gcstats.cc:71:40: error: no member named 'number_of_native_contexts' in 'v8::HeapStatistics' info->numberOfNativeContexts = stats->number_of_native_contexts();


../src/gcstats.cc:72:42: error: no member named 'number_of_detached_contexts' in 'v8::HeapStatistics'
        info->numberOfDetachedContexts = stats->number_of_detached_contexts();
                                         ~~~~~  ^
1 warning and 2 errors generated.
make: *** [Release/obj.target/gcstats/src/gcstats.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/lib/build.js:248:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/bin/node" "/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node" "--module_name=gcstats" "--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v64"
gyp ERR! cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
gyp ERR! node -v v10.13.0
gyp ERR! node-gyp -v v0.3.1
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node --module_name=gcstats --module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:962:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
node-pre-gyp ERR! System Darwin 19.0.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
node-pre-gyp ERR! node -v v10.13.0
node-pre-gyp ERR! node-pre-gyp -v v0.13.0
node-pre-gyp ERR! not ok 
Failed to execute '/usr/local/bin/node /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node --module_name=gcstats --module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
npm verb lifecycle gc-stats@1.4.0~install: unsafe-perm in lifecycle true
npm verb lifecycle gc-stats@1.4.0~install: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin:/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/.bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/Users/zhouyiyun/Documents/js/ipat_test/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
npm verb lifecycle gc-stats@1.4.0~install: CWD: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
npm info lifecycle gc-stats@1.4.0~install: Failed to exec install script
npm verb stack Error: gc-stats@1.4.0 install: `node-pre-gyp install --fallback-to-build`
npm verb stack Exit status 1
npm verb stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
npm verb stack     at EventEmitter.emit (events.js:182:13)
npm verb stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
npm verb stack     at ChildProcess.emit (events.js:182:13)
npm verb stack     at maybeClose (internal/child_process.js:962:16)
npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
npm verb pkgid gc-stats@1.4.0
npm verb cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project
npm verb Darwin 19.0.0
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "--verbose" "rebuild" "--build-from-source"
npm verb node v10.13.0
npm verb npm  v6.4.1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! gc-stats@1.4.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the gc-stats@1.4.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm verb exit [ 1, true ]
npm timing npm Completed in 97179ms

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/zhouyiyun/.npm/_logs/2020-02-05T01_34_10_279Z-debug.log

** BUILD FAILED **

The following build commands failed:
    PhaseScriptExecution [CP-User]\ [NODEJS\ MOBILE]\ Build\ Native\ Modules /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Intermediates.noindex/ipat_test.build/Debug-iphonesimulator/ipat_test.build/Script-77380222FF7E45F7AE8D39BE.sh
(1 failure)

`yarn add nodejs-mobile-react-native` and `pod install` under iOS were complete without error.
emclab commented 4 years ago

Here is the interesting error:

In file included from ../src/gcstats.cc:1: ../../nan/nan.h:141:9: warning: 'TYPE_CHECK' macro redefined [-Wmacro-redefined]

define TYPE_CHECK(T, S)

^
/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode         /include/node/v8.h:85:9: note: previous definition is here
#define TYPE_CHECK(T, S)

^ ../src/gcstats.cc:71:40: error: no member named 'number_of_native_contexts' in 'v8::HeapStatistics' info->numberOfNativeContexts = stats->number_of_native_contexts();


  ../src/gcstats.cc:72:42: error: no member named 'number_of_detached_contexts' in 'v8::HeapStatistics'
  info->numberOfDetachedContexts = stats->number_of_detached_contexts();
  ~~~~~ ^
  1 warning and 2 errors generated.
jaimecbernardo commented 4 years ago

Hi @emclab , Looks like some symbols are missing from the V8 headers, most likely due to ChakraCore replacement of those headers on iOS. Since nodejs-mobile-react-native 0.6.0, iOS now also runs V8, so it may be worth a try retrying.