夜雨聆风学习资料网

ARTICLE · 1341584

不交年费,我把 iOS App 做成了全自动

不交年费,我把 iOS App 做成了全自动

周五晚上十一点,我改完最后一行代码,合上电脑。

周一早上拿起 iPhone,屏幕上弹着一条提示:有新版本,是否更新。

中间这两天,我没打包、没传文件、没连数据线,甚至没打开过 Xcode。更离谱的是:这个 App 没进 App Store,我也没交那笔每年 99 美元的开发者年费。😅

听起来像在吹牛。但这条链路现在每天替我跑三件事:AI 自己复现 bug,GitHub 自己打包发版,手机自己提示更新。

我把它写成这篇指南。不讲某个 App 的代码,只讲从头到尾到底发生了什么:一行代码敲下去之后,它要过哪三关,才能变成你手机上的那个新版本。看完你会知道,独立开发者真正缺的不是证书,是一条能自己转起来的流水线。

先把全景摆出来,后面每一节都是这张图里的一段:

改完代码 → AI 自己验 → 打一个 tag → GitHub 自己编包、发版、改清单 → 手机读到新版本 → 后台自动签名、装好。

三个断点,正好对应三关。

01 第一关:AI 看不见,就只能靠猜 👀

这一关很容易被跳过,也更要命。

你让 AI 改一个 bug,它能一口气写完整个函数。但你在手机上点出问题的那个界面,它看不见。于是对话通常是这样:

「这里不对。」「哪一页?」「就刚才那一页。」「屏幕上显示的是什么?」

然后你开始截图、圈红框、打字解释。三轮下来,改 bug 的时间还没描述问题长。😮‍💨

我做的第一件事不是换模型,是给 AI 装一双眼睛:让开发中的页面,自动把「你此刻看到的」写成本机几个文件——当前那份输入、页面状态、屏幕上正在显示的结果。

只在开发时开着,正式装到手机上的包里一行都不留。

于是测试时,我只要停在出问题的那一页,说一句「我停在这页,看一下」。AI 读文件、跑一条离线复现命令,把中间过程和结果画成图,逐项对给我看。不用截图,不用复述,不用猜。

改之前还有一道护栏:候选修复先在临时目录里跟原版跑个 A/B,看清影响范围再动源码;落地时顺手把数据版本号 +1,否则用户装了新版还读旧缓存。再补一组能报错到「哪份输入、第几项不对」的测试,AI 才敢放手改。

一句经验分享:AI 的能力上限,往往卡在你给它的现场,而不是它写代码的水平。

这一关过了,AI 才从「会写代码」变成「看得见问题」。

02 第二关:打一个 tag,剩下的别自己动手 ⚙️

第二关是发版。以前的流程长这样:开电脑 → 打开 Xcode → 点 archive → 等 → 导出安装包 → 传到某个地方 → 在手机上装 → 想起来还有个清单忘了改 → 重来一遍。

漏一步,手机上就还是旧版。更气人的是,你根本不知道漏的是哪一步。

关键决定只有一个:打包的时候不签名。

签名是免费账号麻烦的部分,那就把它从打包环节里摘出去,留给手机侧的工具用你自己的 Apple ID 做。电脑这一端只负责编出一个「未签名的安装包」——一行命令行就够,不用登录账号,也不用 Xcode 的图形界面。

然后把这串动作交给 GitHub:

  • • 平时提交代码,自动跑测试和构建
  • • 我打一个 v1.4.0 这样的标签,自动在 macOS 机器上编包、建 Release、算校验值
  • • 自动把新版本写进一份公开的清单文件,推回仓库,网页顺手更新

我要做的只有一件事:打标签。剩下都是机器在重放同一份脚本。

这里有个反直觉的点:发版不是一次操作,是一份能被机器重放的描述。人手会漏,脚本不会。

几个坑替你踩过了:仓库要公开,私有仓库的下载链接手机拿不到;网页部署选 GitHub Actions,别用老构建方式,否则清单会悄悄停在旧版;下载链接走 github.io 域名,国内网络下比直连 github.com 稳得多。还有一条,CI 是干净环境,凡是被忽略掉的生成文件都要在流程里显式补一次,不然编到一半才报「找不到配置」。

这一关过了,从代码改完到安装包准备好,中间不需要人。

03 第三关:手机怎么知道有新版 📱

这一关特别容易误解,先把免费账号的边界说清楚,免得期待错位。

免费 Apple ID 可以给自己的设备签名装 App:证书 7 天有效、同时最多 3 个(工具自己占一个)、每周大约能注册 10 个 App ID。电脑上一个叫 AltServer 的小程序在后台跑着,手机和电脑同 Wi-Fi 时会自动续签。用的是 Apple 明确留给开发者的自测通道,代价也很实在:每周让电脑在线一次。

手机端只做一次:在 AltStore 里加一个源地址,就是那份公开的清单文件。之后每次发版,刷新一下源,就会看到升级提示。

清单里要紧的只有一个字段:版本号。它比上一版大,商店才认为有新东西。另外三件事对齐就行:安装包的校验值要对得上、时间要带时区、商店页显示的字段要跟清单里的最新一条同步。

特别容易搞混的一点:刷新(Refresh)只续那 7 天签名,不会更新代码。 代码要变,靠的是清单里版本号涨了。我第一次就栽在这儿,盯着「已刷新」看了半天,手机上还是旧界面。😅

还有一条对本地优先的 App 特别重要:包名别改。原地覆盖升级,用户存下来的东西才不会丢。

这一关过了,手机会自己告诉你:有新版了。

把三关串起来,一次发版长这样

上午改完代码,停在出问题的页面上让 AI 验一遍;测试过了,打一个 v1.4.1;几分钟后 Release 出现、清单更新、网页部署完;拿起手机,刷新源,点更新,新版本装好,之前的记录还在。

全程我敲的只有两条命令:一条让 AI 复现,一条打标签。

回头看,没有一步是黑科技:免费签名资格是 Apple 给的,AltStore 是开源的,CI 有免费额度。真正花时间的,是把「AI 看不见」「手机不会自己变」「手工上传会漏」这三个断点一个个接上。

结尾

如果你也想给自己的 App 搭一条,别从签名开始,按这个顺序来:

  1. 1. 先补一组能报错到具体位置的测试
  2. 2. 再加一个只在开发时生效的状态导出,让 AI 拿到现场
  3. 3. 然后把打包发布写成一条命令、一个标签
  4. 4. 最后才接源清单和签名

顺序反了会很难受:签名做得再顺,AI 看不见 bug,你也只是在更快地发错版本。

这份教程里,你特别想先看哪一关?我猜不少人会卡在第一关——「到底该把哪些状态导出去」。评论区聊聊 👇

#iOS开发 #独立开发者 #AltStore #AI编程 #GitHubActions #侧载 #Capacitor #效率工具

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料