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会给你提示。
完成后,右下角会出现Status
为Readv to distribute
,即表示完成
点击Export Notarized App
即可以导出公证后的App
确保你的App公证成功
- 确保你的安全性隐私设置如下
且是10.14以上的系统。 - 命令行输入
spctl -a -v xxxx.app
- 如果App被正确签名和公证,输出为:
./TrackMix.app: accepted
source=Notarized Developer ID
- 如果App被正确签名但未被公证,输出为:
./TrackMix.app: accepted
source=Developer ID
这里在我的10.13.6系统中无法验证是否Notarized
,无论怎么验证都是步骤4
,而在最新10.15的系统中验证为步骤3
,所以使用低版本mac os 验证的小伙伴不要惊慌。
- 对于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=<