最近在做一款 macOS App,因为要求仅在公司官网发布,所以研究了一下非 App Store 发布流程,下面做个简要记录。
前提条件,与在 App Store 发布应用一样,外部发布也需要申请证书,只是证书不同,如下所示,这是放在本地 keychain 中的两个证书,此处略去申请过程。
一、打包、签名、公证
1.打包
采用通常的打包方式 Product -> Archive
2.选择发布方式及是否需要公证
非 App Store 发布需要选择 Developer ID
可以直接上传 Apple notary service 进行公证或者导出后手动公证,此处选择前者。
3.重签名
4.上传公证
5.导出
公证通过后,会在窗口右侧提示用户,可以导出文件,最终导出的是 xxx.app 文件
Beginning in macOS 10.15, all software built after June 1, 2019, and distributed with Developer ID must be notarized.
二、打包 dmg
打包 dmg 有两种常见方式,一种是命令行,一种是通过三方工具,此处先介绍后者,待亲自实践了命令行的方式之后,再补上前者。
三方工具打包
本文采用的是一款 Mac App:DropDMG,只需要一些基础配置(背景图、图标和尺寸等),然后将 xxx.app 文件拖进去,稍等几秒钟就打包好了,最终效果与 Mac 版钉钉类似:
三、自动更新
为实现后期的迭代更新,需要增加一个检测更新的功能,可以手动实现类似 App Store 的更新功能,不过有一个挺好用的三方开源框架 Sparkle,只需要简单的配置就可以实现更新工功能,效果如下:
小结
以上简述了 App Store 外发布应用涉及到的一些点,由于时间关系,对一些问题介绍的不够全面,后期会陆续补上。