SheepNav
精选1个月前552 投票

告别Xcode:如何在不打开IDE的情况下构建和发布Mac与iOS应用

近期不少Apple相关播客都在吐槽Xcode体验糟糕,呼吁苹果改进“氛围编码”流程。但问题是——为什么非要打开Xcode不可?通过少量前期准备,你完全可以抛开Xcode,用命令行和LLM工具高效构建、签名、公证并部署Mac和iOS应用。

核心思路:Xcode安装但永不打开

Xcode.app必须存在,因为它包含了 xcodebuildnotarytoolstaplerdevicectl 等关键命令行工具。但这些工具完全可以在Shell中运行,无需启动GUI。你只需要一次性通过图形界面(或交互式终端)完成Apple ID登录、创建Developer ID证书、存储公证密码等步骤,后续所有构建和部署都可以全自动化。

一次性准备:把最繁琐的部分搞定

  1. 安装Xcode并确认命令行工具链:确保 xcode-select -p 返回 /Applications/Xcode.app/Contents/Developer,而非独立的Command Line Tools路径。独立的CLT不包含iOS SDK、notarytool等完整开发所需组件。

  2. 使用XcodeGen生成项目文件:Xcode本身的项目格式(.xcodeproj)易冲突且难以版本控制。XcodeGen允许你用YAML描述项目结构,自动生成Xcode项目文件,避免手动编辑。

  3. 配置签名与公证凭证:在钥匙串中创建Developer ID证书,并通过 xcrun notarytool store-credentials 存储公证密码。签名密钥存在于登录钥匙串中,xcodebuild 会自动找到,无需将密钥存入仓库。

自动化脚本:一键走完完整流程

编写一个 scripts/release.sh 脚本,执行以下链条:

  • 使用 xcodebuild archive 归档项目
  • codesign 进行Developer ID签名
  • 通过 notarytool submit 提交公证
  • 使用 stapler staple 钉上公证票据
  • 最后安装到 /Applications 目录

整个过程无需打开Xcode,甚至可以在CI/CD流水线中运行。

调试与设备部署

日志查看:使用 log streamConsole.app 替代Xcode的调试控制台。
设备安装:通过 devicectl 命令将应用安装到连接的iPhone或iPad上,同样无需Xcode。

为什么这很重要?

这种“无Xcode”工作流特别适合:

  • 习惯使用终端和文本编辑器的开发者
  • 需要自动化构建和部署的团队
  • 希望利用LLM(如Claude Code)编写代码的“氛围编码”实践者

当你遇到具体实现问题时,只需将本博客文章作为上下文提供给LLM工具,它就能帮你解决细节。毕竟,这正是LLM最擅长的——替你搞清楚那些你不想深究的事情。

小结

告别Xcode并不意味着放弃苹果生态的开发能力,而是将工具链从IDE转移到命令行和自动化脚本。虽然前期需要一次性的配置投入,但换来的是更快速、更可控、更适合自动化的开发体验。苹果或许会改进Xcode,但在此之前,我们已经有了一条更轻盈的路径。

延伸阅读

  1. Murfy AI:让 arXiv 论文写作提速 10 倍的 AI 助手
  2. Sayscroll:随声而动的AI提词器,让演讲更自然流畅
  3. 告别你的弃坑项目:RIP MY BUILD 为它举行最后一次“发布”
查看原文