macOS分发app打包+签名+公证+添加票据+生成dmg文件

35 篇文章 1 订阅
1 篇文章 0 订阅

1.打包

网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包.

首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive

这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功,暂时先忽略.

2.公正

上一步省去了签名过程,直接进入公正步骤,必须zip、pkg等文件才能进行公正,直接公正dmg是不支持的

(1)压缩成zip文件

cd到存储app文件目录执行:ditto -c -k --keepParent xxx.app xx.zip //注意看清楚app的文件名称在更改后实际名称跟文件名称是不一致的,需要右键查看简介

(2)上传公证

xcrun altool --notarize-app --primary-bundle-id "com.xxx.xxx" --username "开发者账户" --password "xxxx密码" --asc-provider "xxxxprovider" --file "xxx.zip"
 

执行命令后就是等待显示以下内容说明成功:

No errors uploading 'xxx.zip'.
RequestUUID = xxxxxxxxxRequestUUID 保存住

等两分钟后可以使用RequestUUID 查看公证结果,执行以下命令:

xcrun altool --notarization-info xxxxxxxxxRequestUUID --username "开发者账户" --password "xxxx密码"

显示以下内容说明成功:

 如果有错误可以查看LogFileURL后面的地址有错误描述或者到开发者账户的邮件查看

com.xxx.xxx替换成打包程序时的Bundle Identifier
xxxx密码:替换成app管理后台的专用密码
关于密码
注意,并非ApplelD账号密码。需要到https://appleid.apple.com重生
成,如下图所示:)


xxxxprovider:证书的名称

 3.添加票据
其他博客有的是直接给zip文件添加票据,但是我总是失败,之后尝试对app添加票据后显示成功.

(1)删除老的app文件,将公证后的zip解压

(2)执行以下命令:

xcrun stapler staple -v xxxx.app
显示一堆内容最后The staple and validate action worked! 表示成功

(3)查看app是否公正成功:

spctl -a -v xxxxx.app 
显示以下内容导表成功
xxxxx.app: accepted
source=Notarized Developer ID

4.生成dmg

(1)需要的文件:

(1)icon.icns  这个是icon生成的,可以让开发生成给你,也可以自己用工具生成,

(2) mg_bg@2x.png   这是背景图,可以参看下微信的dmg文件里面的图片

(3) appdmg.json  这个是生成dmg的json处理文件,其中需要关注的一点是如何把不需要的隐藏文件拿掉,详情参考文末“生成dmg时隐藏文件的处理”

先看看appdmg.json的内容

{

     "title": "标题必须含有英文否则背景图不显示,没有深入研究为什么",
      "icon-size": 48,
      "background": "dmg_bg@2x.png",
       "icon": "Icon.icns",
       "window": {
                         "position": { "x": 200, "y": 400 },
                          "size": { "width": 600, "height": 360 }
                      },
         "contents": [
                           { "x": 200, "y": 180, "type": "file", "path": "LBCast.app" },
                           { "x": 400, "y": 180, "type": "link", "path": "/Applications" },
                           { "x": 500, "y": 500, "type": "position", "path": "/.VolumeIcon.icns" },
                           { "x": 500, "y": 500, "type": "position", "path": "/.background" }
                       ]

}

json的文件属性都可以更改,主要是匹配背景图

(4)xxx.app

将四个文件同时放到一个目录

进入到文件夹执行:

appdmg appdmg.json xxxx.dmg //没有appdmg 需要安装 npm install -g appdmg

至此所有的操作过程都完成!

最主要的是证书问题基本都是在这个步骤出错可以谨慎一点

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠哉-辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值