最近在做一款 macOS App,由于要求仅在公司官网发布,所以研究了一下非 App Store 发布流程,下面做个扼要记载。

前提条件,与在 App Store 发布使用一样,外部发布也需求请求证书,只是证书不同,如下所示,这是放在本地 keychain 中的两个证书,此处略去请求过程。

Mac App Store 外发布应用:签名、公证、打包 dmg

一、打包、签名、公证

1.打包

选用通常的打包方法 Product -> Archive

Mac App Store 外发布应用:签名、公证、打包 dmg

Mac App Store 外发布应用:签名、公证、打包 dmg

2.挑选发布方法及是否需求公证

非 App Store 发布需求挑选 Developer ID

Mac App Store 外发布应用:签名、公证、打包 dmg
能够直接上传 Apple notary service 进行公证或许导出后手动公证,此处挑选前者

Mac App Store 外发布应用:签名、公证、打包 dmg

3.重签名

Mac App Store 外发布应用:签名、公证、打包 dmg

4.上传公证

Mac App Store 外发布应用:签名、公证、打包 dmg

Mac App Store 外发布应用:签名、公证、打包 dmg

5.导出

公证通往后,会在窗口右侧提示用户,能够导出文件,终究导出的是 xxx.app 文件

Mac App Store 外发布应用:签名、公证、打包 dmg

Beginning in macOS 10.15, all software built after June 1, 2019, and distributed with Developer ID must be notarized.

macOS 10.15 开端,但凡2019年6月1日今后构建,且使用 Developer ID 发布的软件有必要经过公证。

二、打包 dmg

打包 dmg 有两种常见方法,一种是命令行,一种是经过三方东西,此处先介绍后者,待亲自实践了命令行的方法之后,再补上前者。

三方东西打包

本文选用的是一款 Mac App:DropDMG,只需求一些基础装备(背景图、图标和尺寸等),然后将 xxx.app 文件拖进去,稍等几秒钟就打包好了,终究作用与 Mac 版钉钉相似:

Mac App Store 外发布应用:签名、公证、打包 dmg

三、自动更新

为完成后期的迭代更新,需求增加一个检测更新的功用,能够手动完成相似 App Store 的更新功用,不过有一个挺好用的三方开源框架 Sparkle,只需求简略的装备就能够完成更新工功用,作用如下:

Mac App Store 外发布应用:签名、公证、打包 dmg

小结

以上简述了 App Store 外发布使用涉及到的一些点,由于时刻关系,对一些问题介绍的不行全面(主要是学艺不精~),后期会逐步补上。