用途:在 App Store 之外分发 macOS 应用时,完成归档、以 Developer ID 导出、打包并提交 Apple 公证。
前置条件:已安装 Xcode 并配置命令行工具;已通过 asc auth login 或 ASC_* 环境变量配置认证;本地钥匙串中存在 Developer ID Application 证书;Xcode 工程可为 macOS 构建。
主要能力与步骤:先用 security find-identity -v -p codesigning | grep "Developer ID Application" 验证签名身份,如有自定义信任覆盖导致 "Invalid trust settings" 或 "errSecInternalComponent",可通过 security dump-trust-settings、导出证书后再 security remove-trusted-cert 移除,并用 codesign 校验证书链。随后 xcodebuild archive 归档,再用 method 为 developer-id 的 ExportOptions.plist 执行 xcodebuild -exportArchive 导出,并用 codesign 检查 Authority 与 Timestamp。用 ditto 打包 zip 后,使用 asc notarization submit 提交,可加 --wait 等待、--poll-interval 与 --timeout 自定义轮询;用 asc notarization status、log、list 查询状态、日志与历史提交。成功后可选 xcrun stapler staple 钉附票据,DMG 需先用 hdiutil 生成再钉附。
支持格式:zip、dmg、pkg;pkg 需额外的 Developer ID Installer 证书,并以 productsign 签名。
限制与排错:asc notarization 使用 Apple Notary API v2,认证密钥与其他 asc 命令相同,文件流式上传至 S3,超 5GB 自动分片;上传超时可设 ASC_UPLOAD_TIMEOUT。签名无效、缺少安全时间戳或嵌套二进制未签名等会致公证失败,需查看开发者日志。Developer ID 证书无法通过 App Store Connect API 创建。