Electron 的程序有办法打 universal 包吗(就是 Intel/ARM 都能直接运行)很多用户搞不清楚他们机器的 CPU 是不是 ARM 的,有的又不懂得怎么装 Rosetta(点一下都不会,直接说你的程序有问题) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX    macOS

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

  •  
  •   drymonfidelia 2024 年 8 月 17 日 3111 次点击
    这是一个创建于 573 天前的主题,其中的信息可能已经有所发展或是发生改变。
    浏览器 JS 无法准确检测 ARM
    有些极品用户点两下提示要安装东西才能运行,特别是 Rosetta 安装还慢,会说你的程序有捆绑、有病毒
    公司的产品,又不能放弃这些用户
    15 条回复    2024-08-20 23:09:38 +08:00
    KMpAn8Obw1QhPoEP
        1
    KMpAn8Obw1QhPoEP  
       2024 年 8 月 17 日 via Android
    既然已经是 Electron 了 用 Node 判断不行吗? process.arch 或 require('node:os').arch()
    WildCat
        2
    WildCat  
       2024 年 8 月 17 日
    用 SwiftUI 写个 installer
    KMpAn8Obw1QhPoEP
        3
    KMpAn8Obw1QhPoEP  
       2024 年 8 月 17 日 via Android
    @enchilada2020 噢…懂了 是要在用户下载之前检测 那就用这个 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA-Arch
    drymonfidelia
        4
    drymonfidelia  
    OP
       2024 年 8 月 17 日
    @echilada2020 这个好像很多浏览器不会发送
    DIMOJANG
        5
    DIMOJANG  
       2024 年 8 月 17 日
    看了一下 vs code 是有 universal 包的,那应该是有办法
    KMpAn8Obw1QhPoEP
        6
    KMpAn8Obw1QhPoEP  
       2024 年 8 月 17 日
    又看了下,可以用 electron-forge ,有 universal 的选项:
    https://www.electronforge.io/cli#make
    holulu
        7
    holulu  
       2024 年 8 月 17 日
    @drymonfidelia 很多是获取 GPU 信息来判断的,之前测试过,除了 safari 其他浏览器都能检测到
    bclerdx
        8
    bclerdx  
       2024 年 8 月 17 日 via Android
    没吃过猪肉还没见过猪跑么?
    653513754
        9
    653513754  
       2024 年 8 月 17 日
    实在没办法就写个脚本手动合并
    nowtg
        10
    nowtg  
       2024 年 8 月 17 日 via iPhone
    是指这个吗?打包后体积翻倍。electron-builder 配置: "mac": {"target": [{target: "dmg", arch: ['universal'], // ['universal', 'x64', 'arm64']}]},
    sloknyyz
        11
    sloknyyz  
       2024 年 8 月 17 日
    @drymonfidelia #4 你这是想在用户下载的时候判断吧,估计不行。我看别的软件都是直接提供多平台的软件在官网上,让用户选择下载,用户下载下来不能用就让他下另外一个版本。
    duan602728596
        12
    duan602728596  
       2024 年 8 月 17 日
    firechat
        13
    firechat  
       2024 年 8 月 18 日
    可以打包为 universal 的,在 x86 和 arm64 上都能原生运行,就是包大一些,不过反正已经这么大了,也不用在乎再多大一些了。方法就是 10 楼的方法,arch 选 universal 就打包出来了
    jqtmviyu
        14
    jqtmviyu  
       2024 年 8 月 20 日
    ua 不是能获取型号吗? 获取不了默认下载 arm 版
    打开失败了自然会下载另一个
    drymonfidelia
        15
    drymonfidelia  
    OP
       2024 年 8 月 20 日
    @jqtmviyu 打开失败了自然会下载另一个 你太高估用户的水平了,他们只会觉得你们的软件做的太烂了下载完打都打不开直接放弃
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5756 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 03:06 PVG 11:06 LAX 20:06 JFK 23:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86