Mac开发-公证流程记录Notarization-附带脚本

CSDN 的强制 VIP 越来越恶心了,强制文章开起 VIP,本来写文章就是分享技术,后续不再在此平台更新了

公证

macOS 中包含一项名为“门禁”的技术,旨在确保只有受信任的软件才能在 Mac 上运行,对于mac应用,我们需要进行公证才能避免App无法打开,或者是来自身份不明的开发者等等提示。
关于门禁技术 https://support.apple.com/zh-cn/HT202491


打开App的几种提示

如果您的 Mac 设置为允许安装来自 App Store 和被认可开发者的应用,则第一次启动来自被认可开发者的应用时,Mac 会询问您是否确定要打开这个应用。

经过 Apple 公证的应用表示已经通过了安全检查:
在这里插入图片描述
没有经过公证的应用会显示一个黄色警告图标:
在这里插入图片描述
或者没有签名时(例如Archive时选择Development)直接提示
在这里插入图片描述


App的配置

对于苹果官方 对您的 Mac 软件进行公证以在 macOS Catalina 中运行
的说明
在这里插入图片描述

Xcode公证流程

Xcode操作

使用Xcode 10以上版本可以公证,如果同时安装了多个Xcode,则需要切换命令行为Xcode10
sudo xcode-select -s /path/xcode10.app

使用Archive即可进行公证 选中xcode上方菜单->Product->Archive
然后弹出Organizer窗口,如果不小心关掉了,这个窗口可以通过 选中xcode上方菜单->Window->Organizer来进行打开,里面有所有的Archive记录。
在这里插入图片描述
选中你的macOS Apps

关于多 target 应用 archive 除开,可能不属于 iOS App, 也不属于 macOS App,变成了Other Items。
此时,设置主target 外其他target 的 Skip Install 为 YES 即可。

选择Distribute App,选择Developer ID方式
在这里插入图片描述
然后选择Upload,即发送给苹果进行公证,而Export则是直接导出,命令行进行公证时可以选择Export
在这里插入图片描述
这里如果需要选择自己的证书则使用手动Manually,多个证书的时候但求准确
在这里插入图片描述
选择Upload即可
在这里插入图片描述
随后弹出的界面就是让你等待公证结束,一般都很快,我几分钟就完了,公证完成后xcode会给你提示。
完成后,右下角会出现StatusReadv to distribute,即表示完成
在这里插入图片描述
点击Export Notarized App即可以导出公证后的App


确保你的App公证成功

  1. 确保你的安全性隐私设置如下
    在这里插入图片描述
    且是10.14以上的系统。
  2. 命令行输入 spctl -a -v xxxx.app
  3. 如果App被正确签名和公证,输出为:
./TrackMix.app: accepted
source=Notarized Developer ID
  1. 如果App被正确签名但未被公证,输出为:
./TrackMix.app: accepted
source=Developer ID

这里在我的10.13.6系统中无法验证是否Notarized,无论怎么验证都是步骤4,而在最新10.15的系统中验证为步骤3,所以使用低版本mac os 验证的小伙伴不要惊慌。

  1. 对于pkg包的公证权限验证要使用
    spctl -v -a --type install xxx.pkg

观看上传日志

在这里插入图片描述
选择右侧的Show status log即可查看你的上传日志,如果有必要,点击“上传失败”旁边的“感叹号三角”,查看发生的错误。

这里贴出官方文档,很详细!权威嘛!
https://help.apple.com/xcode/mac/current/#/dev88332a81e


脚本公证

关于脚本流程官网有说明 Customizing the Notarization Workflow
但由于我使用场景的差异,在Acrhive中的配置写脚本并不符合我的使用场景,虽然很方便,如下图,值得借鉴吧,不说我还不知道有这玩意,哈哈
在这里插入图片描述


打包并导出

#! /bin/bash
# Type a script or drag a script file from your workspace to insert its path.

echo "####### Webcast Archive and Notarization Script / Webcast打包公证脚本 #######"
#Webcast打包公证脚本
PRODUCT_NAME="Webcast"
#进入当前文件路径 - 请放置在Webcast工程文件路径下
CURRENT_DIR=<
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值