1、安装环境
electron环境搭建:参考
mac开始第一个electron项目_青春没饭吃的博客-CSDN博客
安装node-gyp:npm install node-gyp -g
安装bindings:npm install bindings -g
node-gyp依赖python,所以还要安装python
2、架构搭建
新建sdk/mac目录

- test.mm是TestSDK.framework和test_bridge.cc的桥接文件
- test_bridge.cc是test.mm和nodejs的桥接文件
-
- framework下放你要用到的SDK
-
- include下放相关头文件
新建binding.gyp
- // 修改module_name
- // 修改link_settings下添加你的framework
- //
-
-
- {
- 'variables':{
- 'module_name': "test",
- 'module_mac': "./sdk/mac",
- },
- "targets": [
- {
- 'target_name':"<(module_name)",
- "sources": [
- "./sdk/mac/addon/test_bridge.cc",
- "./sdk/mac/addon/test.mm",
- ],
- "include_dirs": [
- "<!@(node -p \"require('node-addon-api').include\")",
- ],
- 'mac_framework_dirs':[
- "./sdk/mac/framework",
- ],
- 'link_settings':{
- 'libraries':[
- "TestSDK.framework",
- ],
- },
- 'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
- "cflags!": ["-fno-exceptions"],
- "cflags_cc!": ["-fno-exceptions"],
- "conditions":[
- [
- 'OS=="mac"',
- {
- "xcode_settings":{
- "DEBUG_INFORMATION_FORMAT": "dwarf-with-dsym",
- "BUILD_DIR":"<(module_mac)",
- "OTHER_CPLUSPLUSFLAGS" : [ '-ObjC++', "-std=c++11", "-stdlib=libc++", '-fvisibility=hidden','-frtti'],
- "OTHER_LDFLAGS": [ "-stdlib=libc++"],
- "DEPLOYMENT_POSTPROCESSING": "YES",
- },
- }
- ]
- ]
-
- }
- ]
- }
package.json下添加下面指令,将用到的库拷贝到electron app中去
"postinstall-mac": "rsync -a ./sdk/mac/framework/ ./node_modules/electron/dist/Electron.app/Contents/Frameworks"
新建编译脚本build_addon.sh
- npm run postinstall-mac
-
- node-gyp rebuild
- cp -Rf ./build/Release/test.node ./sdk/mac && cp -Rf ./build/Release/test.node.dSYM ./sdk/mac
最后项目结构如下:

3、运行命令
sh build_addon.sh
有问题的同学可以留言哦