>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Go

停止打开 App Store Connect 网页,用终端自动化一切

任何曾经将应用发布到 App Store 的人都深知这种痛苦。App Store Connect 网页界面动不动就卡死,总在最不方便的时候要求重新认证,甚至为了像"将构建添加到 TestFlight"这样简单的事情也要你点鼠标。

最近我发现了 asc 工具(App Store Connect CLI)。这是一款基于 Go 的控制台工具,专门为 iOS 和 macOS 应用发布流程设计,目标是让你彻底摆脱浏览器。

asc 是什么

该项目采用 Go 语言编写,作为单一二进制文件分发,支持 macOS、Linux 和 Windows 系统。其主要优势在于工具从一开始就被设计为无交互式提示。除非你明确要求,否则它不需要按 Enter 键确认。这使得它非常适合脚本和 CI/CD 流水线。

输出格式会根据环境自动调整。如果你在终端中运行命令,工具会绘制表格。如果结果输出到管道或文件,它会输出干净的 JSON。

asc -- App Store Connect CLI

实际应用中的主要功能

该工具涵盖了几乎所有你以前必须访问 Apple 网站才能完成的任务。

上传构建和 TestFlight 操作

上传 .ipa 或 .pkg 文件只需一条命令即可完成:

asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"

之后,你可以立即将构建分配给测试人员。对于为 macOS 构建的团队,还支持上传 .pkg 并将版本添加到内部测试组的工作流程:

asc builds upload --app "123456789" --pkg "./build/MyMacApp.pkg" --version "1.2.3" --build-number "42" --wait --output json
asc builds add-groups --app "123456789" --build-number "42" --version "1.2.3" --platform MAC_OS --group "Internal Testers"

你可以直接从控制台读取 TestFlight 的崩溃日志和用户反馈。

管理元数据和 ASO

如果应用支持多种语言本地化,通过网页界面更新描述会变得繁琐。该工具可以将本地化内容导出到本地目录,允许你编辑后再应用更改:

asc metadata init --dir "./metadata" --version "1.2.3" --locale "en-US"
asc metadata apply --app "123456789" --version "1.2.3" --dir "./metadata" --dry-run

对于 ASO 优化,有 asc metadata keywords audit 命令可用。它可以检查重复关键词、跨语言重复、与应用名称的冲突以及字节超限等问题。

处理截图

截图可以从文件夹批量上传,并指定所需的设备类型:

asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace

CI/CD 中的无障碍授权

在本地环境中,该工具可以将密钥存储在系统 Keychain 中。但在 CI 服务器(GitHub Actions、GitLab CI、Bitrise)上,Keychain 通常不可用。开发者提供了 --bypass-keychain 标志,支持从文件或环境变量加载配置:

asc auth login \
  --bypass-keychain \
  --name "MyCIKey" \
  --key-id "ABC123" \
  --issuer-id "DEF456" \
  --private-key /path/to/AuthKey.p8

你可以在开始长时间构建之前,使用专门的验证命令检查密钥是否有效:

asc auth doctor

是否值得采用

如果你一年只发布一个应用,Apple 的网页面板可能就足够了。但对于定期发布、多语言本地化工作,或构建透明的 CI/CD,该工具可以节省大量时间。

该项目正在积极开发中,收到移动开发者的一致好评,并且可以轻松集成到现有的 shell 脚本中。

相关项目