我有個一個小工具,之前一直是win 版本,現在要編譯成mac 可以用的,項目:
https://gitee.com/makalochen/cnblog-tool
首先我們肯定是看看官網怎麼說的
https://www.electron.build/configuration/mac
好吧 ,太多配置了,看花了眼
軟件圖標問題
我看着文檔,想這再怎麼樣先配個圖標
於是我在build
配置里加入這一行配置
"mac": {
"icon": "build/icon/icon.ico"
},
build 編譯之後,發現
大概意思就是圖標最小要,512 * 512,但是win 上是 256 * 256,好吧 圖標編譯不過
參考這個:
http://events.jianshu.io/p/cbbcad649e64
得出結論,win , mac 都支持png ,會自動幫你轉,這就簡單了,還好有圖標的svg ,轉一下就行
這裏提供一個免費的:
也可以參考這個:
https://blog.csdn.net/ypf1024/article/details/109892222
我是用的就是mac 命令方式
brew install librsvg
# 查看版本
rsvg-convert --version
# 可以查看幫助文檔
rsvg-convert --help
# 轉成 512 * 512的
rsvg-convert -w 512 -h 512 icon.svg > icon.png
至此,圖標問題解決了,再次嘗試編譯,結果還報錯
Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT
啥意思的?需要python?原來electron 打包底層是需要python環境的,但是mac新版刪掉了py2,只留下py3,所以導致找不到,升級下electron-builder就可以,這裏我選擇直接把依賴包刪掉升到
"electron-builder": "^23.6.0",
再次編譯
不報錯了,安裝包也出來了,一運行 出問題了
Error: Cannot find module '../lib/Util' Require
模塊引入錯誤
這啥意思,看情況是找不到某個模塊,看模塊名就是我們的
但是我們源碼上是可以跳過去的說明沒問題,這時候如果有問題就說明打包之後有問題,我們可以找到,打包之後的app.asar
文件,打開它看下,它其實就是我們打包之後的代碼
參考這裏打開:
https://blog.csdn.net/jerry_player/article/details/118763436
# 安裝 asar 包
npm install -g asar
# 解壓
asar extract app.asar ./ap
可是我打開看了也沒問題,也可以跳過去
等等好像哪裏不對,我寫的大寫的都可以跳過去,文件系統找的的時候,但是win 上沒啥問題,是因爲win上不嚴格區分大小寫,包括vscode 也智能的幫我們,不區分大小寫,但是在mac 是嚴格區分的,所以它找不到模塊是正常的
果然我改成,小寫就換了個報錯:
也就是說猜想正確,我們繼續將新生成的asar 文件打開看看,果然 一一解決之後,能正常打開