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

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

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

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

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

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

© 2021 V2EX