推荐:xcnotary——自动化的macOS应用公证助手(已弃用)
虽然xcnotary项目已经不再维护,但它的理念和工作方式仍然值得我们借鉴,特别是在理解苹果的公证流程上。对于那些曾因手动处理macOS应用程序的公证过程而感到困扰的开发者来说,xcnotary曾经是一个极具价值的工具。
项目介绍
xcnotary是一款由Rust语言构建的工具,其目标是自动化macOS应用程序的公证流程。它旨在简化从代码检查、打包到上传并等待公证结果的每一步,使开发者可以更专注于核心业务逻辑,而不必花费过多时间在这些琐碎步骤上。
项目技术分析
xcnotary的工作原理主要包括:
- 预检:对输入文件进行一系列检查,确保符合公证要求。
- 打包:如果输入是.app捆绑包,会将其压缩为.zip文件以便上传。
- 提交与监控:将文件提交给苹果公证服务,并持续轮询直到公证完成。
- 结果处理:成功后将公证票证附加到目标文件,失败则拉取并显示错误日志。
通过使用xcnotary,开发者可以轻松地将公证集成到持续集成(CI)流程中,这主要归功于其返回零/非零退出码的设计。
应用场景
xcnotary适用于以下场景:
- 当你需要频繁且批量地对macOS应用程序进行公证时。
- 在持续集成环境中,自动化公证以确保每个构建都经过验证。
- 对于不熟悉或不愿意手动处理公证步骤的新手开发者。
项目特点
- 易于使用:提供简洁的命令行接口,易于集成到现有脚本或CI流程中。
- 安全性:不存储你的Apple Developer密码,而是依赖Xcode的
altool
从钥匙串读取。 - 智能预检:在上传前进行代码签名检查,帮助发现并修复可能的问题。
- 全面支持:接受.app捆绑包、.dmg磁盘映像和.pkg安装包作为输入。
尽管xcnotary已被废弃,但它仍能启发我们如何构建类似工具来优化开发流程。现在,你可以直接使用xcrun notarytool --wait
命令代替,如苹果文档所示,但xcnotary的故事提醒我们在寻找解决方案时要发挥创造性,尤其是在面对繁琐的任务时。
最后的话
虽然xcnotary不再活跃,但它留下的经验和思路依然有价值。开发者们可以通过理解它的功能和设计思路,自己创建或改进现有的自动化工具,提高工作效率。如果你有任何想法或者问题,欢迎联系原作者David(david@akeru.com)。