这套方法并不是“不安装 Xcode”,而是把 Xcode 当作工具链仓库:项目生成、构建、签名、公证和安装都从终端执行,日常开发不再依赖图形界面。

下面整理成一条可复用路径。证书、账户和密钥仍需按 Apple 官方要求配置,不能把示例脚本直接当成生产配置。
准备完整工具链
先安装 Xcode,并确认 xcode-select 指向 Xcode.app 内部的 Developer 目录;只有独立 Command Line Tools 不包含完整 iOS SDK、notarytool 和 devicectl。

用XcodeGen管理项目
把项目设置写进 project.yml,每次构建前重新生成 .xcodeproj。Git 只追踪可读的 YAML,减少工程文件被 GUI 反复改写造成的冲突。

一次性完成账户配置
登录开发者账户、创建 Developer ID Application 证书,并用 notarytool 把公证凭证保存进钥匙串。私钥和密码不要进入仓库。

把发布链写成脚本
release.sh 依次执行生成工程、archive、Developer ID 签名、提交公证、staple 票据、spctl 检查和安装。任何一步失败都应立即退出。

iOS设备部署
本地设备部署可以使用 xcodebuild 与 devicectl。仍要处理 provisioning、设备信任和 bundle identifier,脚本化并不会消除 Apple 平台规则。

验收不是看到App图标
至少验证签名身份、公证状态、Gatekeeper 检查、干净机器安装和失败日志。脚本能重复执行、失败可定位,才算真正减少人工操作。


参考来源:https://scottwillsey.com/building-and-shipping-mac-and-ios-apps-without-ever-opening-xcode/来源边界:本文基于单一公开来源整理与分析,项目方数据、研究者主张或作者提案不代表行业共识;关键决策请以官方文档、最新修复状态和实际测试为准。
夜雨聆风