Electron 的程序有办法打 universal 包吗(就是 Intel/ARM 都能直接运行)很多用户搞不清楚他们机器的 CPU 是不是 ARM 的,有的又不懂得怎么装 Rosetta(点一下都不会,直接说你的程序有问题)

132 天前
 drymonfidelia
浏览器 JS 无法准确检测 ARM
有些极品用户点两下提示要安装东西才能运行,特别是 Rosetta 安装还慢,会说你的程序有捆绑、有病毒
公司的产品,又不能放弃这些用户
2102 次点击
所在节点    macOS
15 条回复
enchilada2020
132 天前
既然已经是 Electron 了 用 Node 判断不行吗? process.arch 或 require('node:os').arch()
WildCat
132 天前
用 SwiftUI 写个 installer
enchilada2020
132 天前
@enchilada2020 噢…懂了 是要在用户下载之前检测 那就用这个 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA-Arch
drymonfidelia
132 天前
@enchilada2020 这个好像很多浏览器不会发送
DIMOJANG
131 天前
看了一下 vs code 是有 universal 包的,那应该是有办法
enchilada2020
131 天前
又看了下,可以用 electron-forge ,有 universal 的选项:
https://www.electronforge.io/cli#make
holulu
131 天前
@drymonfidelia 很多是获取 GPU 信息来判断的,之前测试过,除了 safari 其他浏览器都能检测到
bclerdx
131 天前
没吃过猪肉还没见过猪跑么?
653513754
131 天前
实在没办法就写个脚本手动合并
liuw666
131 天前
是指这个吗?打包后体积翻倍。electron-builder 配置: "mac": {"target": [{target: "dmg", arch: ['universal'], // ['universal', 'x64', 'arm64']}]},
sloknyyz
131 天前
@drymonfidelia #4 你这是想在用户下载的时候判断吧,估计不行。我看别的软件都是直接提供多平台的软件在官网上,让用户选择下载,用户下载下来不能用就让他下另外一个版本。
duan602728596
131 天前
firechat
130 天前
可以打包为 universal 的,在 x86 和 arm64 上都能原生运行,就是包大一些,不过反正已经这么大了,也不用在乎再多大一些了。方法就是 10 楼的方法,arch 选 universal 就打包出来了
jqtmviyu
128 天前
ua 不是能获取型号吗? 获取不了默认下载 arm 版
打开失败了自然会下载另一个
drymonfidelia
128 天前
@jqtmviyu 打开失败了自然会下载另一个 你太高估用户的水平了,他们只会觉得你们的软件做的太烂了下载完打都打不开直接放弃

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1065672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX