禁止网站收录,时政热点新闻,购物网站服务器价格,wordpress 文章带字段打包
在package.json中#xff0c;dependencies会被打进 Electron 应用的包里#xff0c;而devDependencies则不会#xff0c;所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …打包
在package.json中dependencies会被打进 Electron 应用的包里而devDependencies则不会所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。
const base {appId: com.xxxx.xxxx, productName: Electron 打包模版, // 应用名称安装后的应用就是名称icon: ./media/images/icon.ico,files: [ // 除了package.json中dependencies外另外需要打包的文件添加到此处main.js,bundles,updater/win/index.html,updater/build/bootstrap.js,updater/mac/Updater.js,updater/mac/index.html],publish: { // 需要结合 const { autoUpdater } require(electron-updater); 使用provider: generic, // 指定服务器类型generic 通用服务器也可以是 github 等url: // 线上服务器地址},mac: {target: [ // 需要打包出的类型dmg,zip,pkg,mas],icon: media/images/icon.icns,hardenedRuntime: true,entitlements: electron-builder/entitlements.plist, // 申请可以操作系统权利entitlementsInherit: electron-builder/entitlements.plist,provisioningProfile: electron-builder/comalibabaslobs.provisionprofile},pkg: {isRelocatable: false,overwriteAction: upgrade,},mas: {icon: media/images/icon.icns,hardenedRuntime: true,entitlements: electron-builder/entitlements.mas.plist,entitlementsInherit: electron-builder/entitlements.mas.plist,},dmg: {background: media/images/dmg-bg.png,icon: media/images/icon.icns,iconSize: 100,sign: false,contents: [ // mac 会有拖动图标安装的过程这里配置图标的位置、大小、拖动的文件夹{x: 112,y: 165,},{type: link,path: /Applications,x: 396,y: 165,},],},extraMetadata: { // 打包线上应用控制变量为 production此设置会直接在打包的 package.json 中加入 env这个变量并且把值设置为 production。可以在文件中引用 const pjson require(./package.json); 此时 pjson.env 等于 productionenv: production,}
};module.exports base;签名
Electron 签名 认证 macOS 版本 官方文档苹果开发者申请证书地址 MacOS 10.15 之前应用如果没有进行签名首次打开的时候就会出现“恶意软件”提示。 1. 加入开发者
加入 Apple Developer Program(需要缴纳年费)
如果是管理员会看到可以申请 Developer ID Application如果不是管理员就会像我这种看到是灰色的。Electron 打包是需要用这个身份生成证书的。 2. 生成签名证书
如果有管理员权限点击生成新的证书。 Choose File 里面的文件从哪里来打开 mac 的钥匙串访问 - 证书助理 - 从证书颁发机构请求证书这里生成了 CertificateSigningRequest.certSigningRequest 的文件这个文件可以被多次用来生成 mac 证书。
填写必要信息用户邮箱填写你的 app开发者邮箱常用名称随便取一个然后选择保存到本地磁盘。 3. 安装签名证书
上次文件后就生成证书了下载证书安装。如果出现了次证书不受信任的情况在列表中双击证书将使用此证书时更改为始终信任。 如果安装的证书不对会出现 Command failed: codesign ...
4. 证书导出 p12 给其它人使用
在 mac 的钥匙串访问中找到证书然后 右键 - 导出证书一般导出 .p12 形式然后输入证书安装的密码。其它人拿着你的证书告诉他安装密码即可安装。
5. 不要 Developer ID Application 签名证书不影响 Electron 应用打包
在打包过程中找不到 Developer ID Application 签名证书的情况下会跳过处理。但是应用不签名和公证会影响electron-autoupdater 自动更新能下载无法打开用户首次打开会提示恶意软件应用无法上架到appStore。 公证 MacOS 10.14.5 之后应用如果没有进行公证将安装包上传到 Apple 审查首次打开的时候就会出现更严重的“恶意软件”提示。没有进行过公证也无法上传到 Apple Store 中提供给其他人下载。 代码公证
const { notarize } require(electron-notarize);
notarize({appPath: , // 应用的路径 xxx.app 结尾的 appBundleId: , // appidappleId: , // 苹果开发者 idappleIdPassword: , // 应用专用密码ascProvider: // 证书提供者
})appPath打包后应用的路径.app 或者 .dmg 结尾。 appBundleId 跟 Electron-builder 配置的 appId 一致这个 appId 要妥善命名。不要发布应用以后再修改不然会导致应用无法自动更新。比较好的命名一般都是 com.xxx公司名.xxx应用英文名
苹果开发者的账号 appleId填写自己的开发者id 就可以确保自己是属于开发者。应用专用密码 appleIdPassword登录 appleid.apple.com/account/man… 这个密码生成后只会出现一次之后再也没办法看到所有请保存下来。如果忘记了密码就重新创建一个为方便管理不用的密码进行删除后重新创建比较合适。 ascProvider 证书的提供者通过 mac 钥匙串访问查看。你所有使用的签名证书括号里面的就是证书提供者。公证会把程序压缩包上传到 apple 服务器保证网络通畅。公证成功后开发者邮箱会收到邮件。notarize {}后面是绝对的json结构不要出现这些是单引号的情况不然会报错。 appPathappBundleIdappleIdPasswordascProvider 命令行工具公证
需要下载 xcode。
一句话命令公证 xcrun altool --notarize-app --primary-bundle-id com.xxx.xxx --username your developer appleid --password appleId-password --asc-provider ProviderShortname -t osx --file xxx.dmg2.ascProvider 证书的提供者命令行查询
xcrun altool --list-providers -u apple id -p appleIdPassword(应用专用密码)”
3. 公证成功后
No errors uploading xxxxxxx-xxxx.dmg.
RequestUUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx上架 AppStore 商店
Electron 应用如果要能发到 appStore需要 electron-builder 构建 masMac应用商店经过签名公证后上传到 app store connect上传之前应用需要支持sandbox。
注册AppId
在 electron-builder 配置的 appId无论写什么我们都是可以打包配置成功的因为不涉及到发到 appStore。如果需要发到 appStore就需要到 apple 开发者官网中去申请一个正式的了。 https://juejin.cn/post/7009179524520738824