如何让Electron应用在低于官方最低支持版本的MacOS系统上运行
为什么Slack、Canva可在macOS 10.10.5正常运行
- 采用了兼容旧系统的Electron版本:Electron v4.0 才正式将 macOS 最低支持版本提升至 10.11,v3.1.x 及更早版本原生支持 macOS 10.10。这类商业产品会针对旧系统用户维护专属的客户端分支,分发基于旧版 Electron 构建的安装包。
- 部分产品做了Electron源码定制改造:大厂会自行修改Electron源码,移除对10.11+系统API的依赖,重新编译适配旧系统的定制版Electron框架,即便用了更高版本的Electron核心特性,也能在旧系统上运行,该方案研发成本较高,一般仅中大型团队会采用。
适配macOS 10.10.5的具体配置方案
方案1:降级Electron及配套依赖(个人开发者优先选择)
该方案适配成本最低,操作步骤如下:
- 把项目依赖的Electron版本降级到v3.1.x及更早的稳定版,修改
package.json对应字段:
{ "dependencies": { "electron": "^3.1.13" } }
- 同步降级配套的打包工具,如electron-builder需降到v20.x版本,避免版本不兼容导致的打包错误。
- 在打包配置中显式指定最低支持系统版本,以electron-builder为例:
{ "mac": { "minimumSystemVersion": "10.10" } }
- 对前端代码做兼容性处理,补充旧版Chromium对应的API polyfill,避免使用高版本浏览器才支持的语法和接口。
方案2:自定义编译Electron源码
如果必须使用高版本Electron的特性,可自行编译适配旧系统的Electron版本:
- 拉取目标版本的Electron源码,修改编译配置中的
MACOSX_DEPLOYMENT_TARGET参数为10.10。 - 排查并替换所有源码中调用的macOS 10.11及以上版本专属的系统API。
- 完成全量编译后,替换项目中的官方Electron依赖即可。
该方案对底层技术能力要求高,全量编译耗时可达数小时,不推荐个人开发者尝试。
方案3:双版本分发
可针对不同系统版本提供对应的安装包:
- 面向10.11及以上系统的用户,分发基于高版本Electron的完整功能包。
- 面向10.10及以下系统的用户,分发基于旧版Electron的功能兼容包。
用户下载时可根据系统版本自动推送对应安装包。
内容的提问来源于stack exchange,提问作者Alok
相关产品推荐
相关产品推荐

