1、安装环境
electron环境搭建:参考
mac开始第一个electron项目_青春没饭吃的博客-优快云博客
安装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
有问题的同学可以留言哦