51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

编译monero For macOS ARM

前言 {#前言}

水?篇文章.

monero-gui 官方没给ARM版.要下个版本应该会给?急急急,转译的应用很不爽.直接上编译.

这个项目里面整的很清楚了,但我还是要水?.

前提: 你已安装了 brew

如果不是非要ARM版本(注:本文发布时是没有arm版的,以后可能直接就是arm版,不用编译),可以直接用 brew 安装.CLI版: brew install monero GUI版: brew install monero-wallet 后续更新方便.

安装依赖 {#安装依赖}

|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 | brew remove qt # 起手卸载,防止和qt@5冲突 brew install cmake pkg-config openssl boost unbound hidapi zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf libgcrypt qt@5 brew reinstall qt@5 # 可选 |

编译 {#编译}

找个地方放编译文件夹,建议编译完不用删,方便以后编译,如果硬要删又要编译.我建议看我后面关于签名部分.

|---------------|----------------------------------------------------------------------------------------------------------------------------| | 1 2 3 | git clone --recursive https://github.com/monero-project/monero-gui.git cd monero-gui make -j$( nproc ) || make -j1 |

编译没问题往后看,有问题自己解决吧(我不会).

如果编译文件夹不删除.那么请看本部分 {#如果编译文件夹不删除-那么请看本部分}

|-----------|----------------------------------------------------------------------------------------------| | 1 | cp -rf ./build/release/bin/monero-wallet-gui.app /Applications/monero-wallet-gui.app |

构建应用程序包 {#构建应用程序包}

用于要删文件夹情况.

|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default .. make -j$( nproc ) || make -j1 make deploy cd ./build/bin |

新建文件 entitlements.plist

|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 | cat << EOF > entitlements.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.cs.disable-executable-page-protection</key> <true/> </dict> </plist> EOF |

然后运行下面命令,如果你有苹果开发者证书应该知道 XXXXXXXXXX 填什么.如果没有,别运行下面命令.看后面.

|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 | sudo codesign --deep --force --verify --verbose --options runtime --timestamp --entitlements entitlements.plist --sign 'XXXXXXXXXX' monero-wallet-gui.app cp -rf ./monero-wallet-gui.app /Applications/monero-wallet-gui.app |

没有苹果开发者证书 {#没有苹果开发者证书}

将上面 <true/> 改为 <false/>

打开 钥匙串访问.app ,然后在 登录 我的证书 这个界面下.然后看图 image-20230827225123369 image-20230827225144374

名称可以自己改.然后运行下面命令.

|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 | sudo codesign --deep --force --verify --verbose --options runtime --timestamp --entitlements entitlements.plist --sign 'lanyun' monero-wallet-gui.app spctl -a -t exec -vv monero-wallet-gui.app # 看一下,是不是accepted,如果是,则继续 cp -rf ./monero-wallet-gui.app /Applications/monero-wallet-gui.app |

如果有问题,请自行参考 https://github.com/monero-project/monero-gui/blob/master/DEPLOY.md

如果你遇到 libboost_atomic-mt.dylib (no such file) 这个错误.

显然,出现了问题.有种错误修复方式,因为会导致显示异常.

cp -rf /opt/homebrew/lib/libboost_atomic-mt.dylib ./monero-wallet-gui.app/Contents/Frameworks

本人不会修,可能是macOS版本太高了吧,无所谓,我不用构建应用程序包.

赞(0)
未经允许不得转载:工具盒子 » 编译monero For macOS ARM