在 2026 年 9 月的第一个周日中午,一个关于 Mac 应用的想法诞生;一周后的 9 月 27 日,完整的申请提交至 Apple。四天后,该应用通过审核并上线 App Store。这一过程由 ZDNET 编辑 David Gewirtz 完成,全程未编写一行代码,而是依靠 AI 工具 Claude Code 执行了 502 个指令。

ZDNET 关键要点
- 开发者在未手写任何代码的情况下发布了 Mac 应用程序。
- 成功的关键在于向 AI 发送 502 条具体指令,而非依赖单一“神奇提示”。
- 制作应用商店宣传图所耗费的时间几乎与应用开发本身相当。
从复古图标库到现代应用
项目的起源可追溯至 30 年前。David Gewirtz 曾创办软件公司,其早期产品包括为 HyperCard 设计的黑白图标工厂,以及 1997 年推出的《Icon Gallery》。后者是一套包含超过 2,000 个 32×32 像素彩色图标的盒装产品,曾通过零售和邮购渠道销售。随着互联网兴起及盒装软件市场的萎缩,该产品停止销售。
近期,Gewirtz 在整理旧物时发现了《Icon Gallery》的包装及一个 Macromedia Director 文件。该文件保存了 30 年前的全部 2,338 个图标资产。Director 曾是 CD-ROM 时代的流行工具,如今已随 HyperCard 等经典应用淡出历史舞台。
Claude 处理遗留数据
Gewirtz 将旧的 Director 文件交给 Claude,请求将其中的图标提取为独立文件。AI 并未因文件格式过时而产生障碍,仅询问输出格式及白色边缘是否需透明处理。根据日志,整个过程耗时 4 分钟,共执行 30 个步骤。不到煮一杯咖啡的时间,2,000 多张 PNG 图片被提取并按主题分类整理完毕。
这一操作发生在 9 月 2 日。随后,这些复古素材被暂存于桌面文件夹中,直至新的需求出现。
应用构思与功能扩展
十八天后的一个周日下午,Gewirtz 需要一个图形浏览工具来处理这些图标,由此诞生了名为“Icon Gallery 97: 30 周年纪念版”的应用概念。利用 Claude Desktop 进行策略讨论,配合 Claude Code 构建应用,他在数小时内开发出原型。该应用能浏览原始库,并生成从 32×32 像素到 1,024×1,024 像素的完美缩放硬边位图图标。
Claude 建议增加重新染色功能,允许设计师匹配品牌颜色,以及创建收藏和最爱列表。此外,朋友和家人建议添加“导出至 Slack”作为表情符号的功能,以及导入文字图像的能力。为解决跨设备使用问题,iCloud 同步功能也被纳入开发计划。
整个开发过程并非全职投入。Gewirtz 在四天积极互动期间,仍兼顾体检、房屋维修等其他事务。他向 Claude Code 发出了 502 条指令,指导其完成开发工作。
人机协作开发细节
Gewirtz 将 AI 编码代理视为聊天记录的最终合作伙伴。这种协作模式类似于管理人类程序员团队:提出需求、审查结果、调整方向。
例如,在建立应用内购买机制后,Gewirtz 担心用户可能购买应用、导出全部图标后申请退款。Claude 建议不反对退款,这符合 Gewirtz 长期的出版理念。然而,这一决策引发了安全漏洞发现:所有 2,146 个图标原本以松散 PNG 文件形式存在于应用中,免费用户可通过右键查看包内容获取资源。解决方案是添加加密,将应用打包为单一加密文件,并在请求时动态解密图标。
测试阶段,双方故意破坏副本以验证检查机制,并运行解密引擎确保输出与原始文件一致。另一处优化涉及窗口滚动性能。初始代码在每次预览时压缩全尺寸图像,并在放大请求时重建整个窗口 482 次,导致滚动缓慢。经过测试与调整,性能得到改善。
在交互体验上,Gewirtz 要求实现类似 1997 年之前 Mac 系统的拖动选择矩形功能。尽管 Claude 最初认为此方法不必要,但在解释历史背景后,AI 成功实现了该功能。值得注意的是,Claude 对知识产权来源表现出谨慎态度,反复确认图标归属权,并指出部分枪械类图标可能在 2026 年的 App Store 审核中被拒,最终这些敏感图标被移除。
Git 分支技术与 AI 的结合带来了快速试错的可能。当尝试一种全新视觉设计时,Claude 在一小时内完成构建,但 Gewirtz 在 30 秒内判定效果不佳,随即恢复至先前版本。
App Store 上架挑战
虽然 Gewirtz 有软件开发经验,但其上一次向 App Store 提交应用是在 2008 年,最后一次收到付款则是 2012 年。面对变化巨大的生态系统,他利用 Claude 逐步指导填写每个屏幕和提交选项,并通过截图反馈确认每一步操作。
在账户设置方面,Claude 提供了关键建议:销售额低于 100 万美元的新 App Store 企业可申请小企业资格,从而将佣金比例从 30% 降至 15%。
提交前,Gewirtz 指示 Claude 启动一系列对抗性代理(adversarial agents)对应用进行端到端审查。尽管此前已做过大量测试,这些代理仍发现了一些需要修复的问题。
最大的意外来自宣传材料制作。Apple 允许最多展示十张 2880×1800 分辨率的宣传图。制作这些图形花费了约三天时间,几乎与应用开发时长相当。原因在于,尽管 Claude、Gemini 和 ChatGPT 在通用图像生成上表现良好,但在生成符合 App Store 营销需求的精准宣传图方面完全失效。最终,Gewirtz 不得不像传统方式一样,手动使用 Photoshop 完成这项工作。
另一个技术陷阱出现在 TestFlight 测试阶段。在周三,Gewirtz 在早上 6:49 至晚上 9:20 之间上传了 21 个构建版本以微调最终外观。Apple 拒绝了第 22 次提交,并要求等待整整一天才能重试。这次停顿导致整个项目推迟了一天。
开发经验总结
Gewirtz 总结了以下使用 AI 辅助开发的实用技巧:
- 要求 AI 将所有决策记录在 .MD 文件中。
- 让 AI 基于测量数据而非猜测行事,避免陷入无效的逻辑黑洞。
- 结合确定性分析工具,例如让 AI 编写 Python 脚本获取结果,而非仅提供印象式回答。
- 每次会话结束后启动子代理(subagents)审查该会话的工作成果。
- 监控上下文使用情况。当上下文占用达到约 75% 时,保存进度并重启会话,因为 AI 在此阈值以上性能会显著下降。
- 引入外部测试人员,因为开发者和 AI 均无法捕捉所有错误。
成为 Apple 开发者需支付每年 99 美元的费用,这是上传软件和使用 TestFlight 的前提条件。
对于财务预期,Gewirtz 表示并不指望该应用资助退休生活,但他享受将个人需求转化为产品的乐趣,并为过去的创意艺术赋予新生感到满足。该项目也让他安全地学习了应用内购买编码,并验证了在极短时间内借助 AI 完成从开发到上架全流程的可行性。
正如标题所述,在整个过程中,他没有编写一行实际代码。





