在mac下,qt自动化打包、签名、dmg安装包生成、公证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mac下,qt自动化打包、签名、dmg安装包生成、公证相关的知识,希望对你有一定的参考价值。

参考技术A

查看appdmg具体安装方法及配置说明
公证需要 codesign 的时候加上 -o runtime 参数,加上了此参数,就需要给app赋予权限,否则会导致运行时的崩溃。 chai.entitlements 就是权限的描述文件

查看chai.entitlements权限说明
如果不清楚里面具体的含义,建议把上述的配置文件的权限如数加上,减少不必要的问题。其他权限可以根据需求来定

查看 dmg.json 参数说明

identityId 获取方法,执行 xcrun altool --list-providers -u "$notarizationUser" -p "$notarizationPasswd" 即可获取

electron mac签名 - 针对electron-builder的自动更新

针对electron-builder的自动更新

配合自动更新 - 安装包签名(mac)(待补充)

前提:实现自动更新需要签名

一、本地开发调试mac签名(无需具有权限的appple账号)

  1. 打开xcode,xcode -> preference -> add new acount 登录apple账号(系统会生成默认开发证书)
  2. command+空格开启钥匙串访问
  3. 选择登录 - 我的证书 - 选择当前账号下的证书
    技术图片
sudo vim ~/.bash_profile
// 添加
export CSC_LINK=~/work/ypshop.p12 // 你打算把p12签名文件存放的位置
export CSC_KEY_PASSWORD="12345" // p12密码
// 退出后刷新env
source ~/.bash_profile
// 启动新的终端窗口,准备打包
  1. 回到第4步,右键证书,导出到对应的p12文件
  2. 输入密码应该和CSC_KEY_PASSWORD一致
  3. 打包npm run package
  4. 提示
  ? Mac Developer is used to sign app — it is only for development and testing, not for production
  ? signing         file=build/mac/ypshop.app identityName=Mac Developer: 703390877@qq.com (AW2NUS55WJ) identityHash=56CF8E6D4AC72AA3FE4E4FD34AADB4F7AAE7051E provisioningProfile=none
  ? building        target=DMG arch=x64 file=build/ypshop-0.1.3.dmg
  ? building        target=macOS zip arch=x64 file=build/ypshop-0.1.3-mac.zip
  ? building block map  blockMapFile=build/ypshop-0.1.3.dmg.blockmap
  ? building embedded block map  file=build/ypshop-0.1.3-mac.zip

就可以了

  1. 接下来就可以走自动更新流程了

二、 生产环境mac签名(需要指定权限账号/可生成 Developer ID Application证书)

  1. 添加证书
    xcode -> preference -> acount
    登录账号,选择manage certificates,添加 developer id application
  2. 创建有效证书后,跟着开发调试步骤2继续往下

参考1

参考2

参考3

三、 本地服务器搭建:

mkdir -p update_server/download

全局安装http-server
npm i http-server -g

启动文件服务器http-server

cd update_server

http-server -p 4000

将打包好的新版本文件放入download目录

访问
http://127.0.0.1:4000/download

技术图片
技术图片
技术图片

以上是关于在mac下,qt自动化打包、签名、dmg安装包生成、公证的主要内容,如果未能解决你的问题,请参考以下文章

Mac下Qt的环境搭建

Eclipse下配置Ant脚本 自动打包带签名的Android apk

Mac下Unity使用Jenkins自动化打包

OBS MAC 系统开发(基于mac OS X 10.12)

mac 打包dmg

electron mac签名 - 针对electron-builder的自动更新