使用 Tauri v2 构建通用二进制 — 比你想象的更容易
Source: Dev.to
所有测试都在一台 8 年旧的 MacBook Air 上进行。虽然仍有 Intel Mac 用户,但 Apple Silicon 才是未来。通用二进制文件(universal binary)可以用单个 DMG 同时覆盖两者。
为什么要费心制作通用二进制?
因为 “此应用需要 Rosetta” 在安装时会成为阻力点。有些用户没有安装 Rosetta,有些公司机器会阻止它,还有很多用户根本不知道它是什么。
通用二进制在两种架构上都能原生运行——无需 Rosetta,也不需要提交支持工单。
Tauri 构建命令
npm run tauri build -- --target universal-apple-darwin
构建时间大约是原来的两倍,因为要为两个目标编译。在一台 8 年旧的 MacBook Air 上,请做好时间预估。
注意事项
-
外部二进制文件 – 如果你的 Tauri 应用捆绑了外部二进制文件(例如 ADB、ffmpeg 或其他),每个文件都必须是通用二进制,或者你需要提供针对不同架构的版本并在运行时进行选择。
-
捆绑 ADB 示例
// placeholder for ADB‑related Rust code -
特定架构崩溃 – 最常见的通用二进制 bug:它在你的机器上编译运行正常,但在另一种架构上因为代码中固有的假设而崩溃。如果你只有一台机器,建议使用 GitHub Actions 并同时运行两个 runner。
-
DMG 大小 – 大约会使二进制体积翻倍。对大多数 Tauri 应用来说,这仍然很小(≈ 10‑20 MB 而不是 5‑10 MB),并不是一个真正的担忧。
结论
在首次发布之前就做好通用二进制。等用户已经在仅 Intel 架构的构建上后再去改造通用二进制,会导致更新路径混乱。
如果这篇文章对你有帮助,点个 ❤️ 会比你想象的更有帮助——谢谢!
Hiyoko PDF Vault
@hiyoyok