背景
在 MacOS 上的 MTP 工具选择很少,大多太复杂需要付费,OpenMTP 是唯一满足基础且好用的软件,甚至可以用来和 Switch 大气层 DBI 进行交互。
同时作者的更新频次已经放慢,似乎没有维护需求,个人使用下来也没什么问题,这里选择将其汉化养老,更新后的源码在此:https://github.com/Anr-C/openmtp,同时分享汉化打包方法。
编译无 Apple 公证版
环境准备
该项目对于 npm 有要求,同时需要保证 node 不低于 16 :
This project requires npm version >=6.x <=8.16.0. You have version 10.9.2.
于是先安装 nvm 进行 node 版本管理,nvm 可自行了解,好用方便的多版本管理:
brew install nvm
如果之前有其他 node 环境变量请移除,并按 brew 要求在 .zshrc 文件添加:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
随后安装作者指定的 node 16 版本:
nvm install 16.20.2
安装特定版本 npm 8.16.0 :
npm install -g npm@8.16.0
编译链准备
环境安装完成后继续安装 yarn:
npm install -g yarn
随后在项目根目录进行依赖初始化,因为要安装 electron 于是需要更改为国内镜像(阿里云):
yarn config set electron_mirror https://npmmirror.com/mirrors/electron/
# 执行 yarn 进行项目依赖初始化
yarn
打包前的修改
禁用 electron-builder-config.js 中的 forceCodeSigning:
return {
productName: 'OpenMTP',
appId: 'io.ganeshrvel.openmtp',
forceCodeSigning: false,
// eslint-disable-next-line no-template-curly-in-string
artifactName: '${name}-${version}-${os}-${arch}.${ext}',
copyright: '© Ganesh Rathinavel',同时这里也需要注释掉哨兵模式插件,项目中有两处 config.renderer.prod.babel.js 与 config.main.prod.babel.js :
// new SentryWebpackPlugin({
// include: 'app/dist',
// ignore: ['node_modules', 'webpack'],
// urlPrefix: '~/app/dist',
// configFile: 'sentry.properties',
// rewrite: false,
// release: pkginfo.version,
// }),在 Apple 的限制下,非 Apple 开发者无法进行应用公证,从而无法编译打包正常版本,只能跳过应用公证。
修改 package.json 文件中的打包命令,追加 -c.mac.identity=null 表示不进行签名,不追加也可打包但默认会以个人 Apple 信息作为签名。
"package-mac-without-notarize-no-verify": "yarn build-no-verify && cross-env ELECTRON_NOTARIZE=NO electron-builder --config electron-builder-config.js -c.mac.identity=null build --mac --publish never",
如果需要调整其他配置,自行修改 package.json 文件,打包:
yarn package-mac-without-notarize-no-verify
随后 dist 目录下可见成果,如需查看生成的应用签名信息可执行:
codesign -dv --verbose=4 /Applications/OpenMTP.app
注意事项
打包要求不同 CPU 架构在对应架构机器打包,生成的包才能正常运行,即 x64 需要 Intel 机器,arm 需要 M 系列芯片,这点确实麻烦作者也有提及。这次勉强打出 x64 后面我就没什么兴趣了,如果有需要自行打包吧。
其他
经过安装测试,汉化目前已覆盖绝大多数场景,有兴趣的可以提汉化 PR 。
公证签名貌似 MacOS 不像 iOS 那么严格,除了初次启动并不影响什么,大多数开源软件也是没公证签名的状态,如果有为爱发电勇士可以提供公证签名那便更好了。


下载地址:
通过网盘分享的文件:OpenMTP
链接: https://pan.baidu.com/s/11OgCzzv1qQs52yDBFWGPgA 提取码: fq69
以上。
本站广告由 Google AdSense 提供
0条评论