- SignalDesk2 hr ago
用过 App Store Connect CLI 之后,我开始希望:管理华为应用,也能有这样的命令行体验。 asc-cli 把 App Store Connect 的应用管理能力带进终端,让开发者能够用命令组织操作、接入脚本,并交给 AI 编程助手使用。这种体验吸引我的地方,是它让应用管理自然地进入了开发工作流。 当我把同样的工作方式带到鸿蒙开发中时,发现自己还需要逐个查找 AppGallery Connect 接口、处理鉴权、整理参数,再把请求拼接起来。代码可以版本控制,构建可以脚本化,应用管理也值得拥有同样清晰的操作入口。 所以,我做了 agc-cli :一个用 Go 编写、面向华为 AppGallery Connect 的开源命令行工具。 它希望让开发者少做重复配置,把常用的应用管理操作变成可以保存、复用和组合的命令。 项目地址: github.com/Createitv/agc-cli 官网与接口参考: agccli.app 开发效率,也取决于代码之外的工作 维护一个鸿蒙应用,工作并不会在构建完成时结束。 你还需要查看应用资料、核对多语言描述、管理测试用户、处理评论、请求报表。维护多个项目时,还要反复确认当前账号和应用 ID 。每一步都不复杂,但这些操作会随着版本迭代持续发生。 对单人开发者而言,它们打断写代码的节奏;对团队而言,它们往往成为需要口头交接的操作经验。 CLI 的价值,是让这些经验拥有明确的表达方式:一条命令说明做什么,参数说明操作哪个应用,输出提供可以继续处理的数据。整理好的操作可以留在项目脚本中,下次维护时继续使用。 一个入口,组织 AppGallery Connect 的常用能力 agc-cli 安装后的命令名是 agc ,按功能组织接口: 场景 命令入口 应用资料、多语言描述与发布请求 agc publishing 测试版本、测试用户与群组 agc testing 商品、订阅、价格与促销 agc pms 鸿蒙证书、Profile 、设备与指纹 agc provisioning 评论、评分与报表 agc comments / agc reports 项目、SDK 配置与域名 agc projects / agc domains 当前注册表包含 13 个 API 家族、156 个接口条目 ,提供接口发现、通用请求构建和调用能力。每个条目带有对应的官方参考链接,开发者可以从命令直接找到协议依据。 这里的接口数量代表注册范围,不代表所有接口都已经完成生产验证。具体字段、权限和业务前置条件仍以对应华为文档为准。 从安装到第一次查询 macOS 用户可以通过 Homebrew 安装: brew tap createitv/tap brew install agc-cli agc version Windows 用户可以使用 Scoop ,Linux 用户可以下载 Release 安装包。发布版二进制无需安装 Go ;各平台的安装说明见 项目文档 。 准备好 AppGallery Connect 应用 ID 和 Service Account JSON 后,保存凭据: agc auth login \ --service-account-file ~/.agc/service-account.json \ --name production 在应用项目目录绑定默认凭据: agc init --app-id YOUR_APP_ID --default-profile production 项目配置写入 .agc/project.json 。后续命令自动选择该项目的凭据 profile ;当前接口调用仍需显式填写应用 ID 等参数。 先预览一次应用信息查询: agc publishing app-info-query \ --invoke \ --query appId=YOUR_APP_ID \ --query lang=zh-CN \ --pretty 默认 dry-run:构建请求并显示 HTTP 方法和目标 URL ,不发送请求。确认后,在同一命令末尾增加 --dry-run=false ,即可执行真实查询。 如果接口要求 client_id 请求头,追加 --header client_id=YOUR_CLIENT_ID 。 实际例子:把多语言资料查询写进项目脚本 概念示意:整理凭据与常用命令,让查询结果进入可复用的脚本流程。 假设你正在维护一个同时提供中文和英文资料的鸿蒙应用,需要定期读取两种语言的应用信息。 可以把查询写成下面的脚本。先替换应用 ID ;如果接口要求 client_id ,在调用中补上对应请求头: mkdir -p agc-results for lang in zh-CN en-US; do agc publishing app-info-query \ --invoke \ --query appId=YOUR_APP_ID \ --query lang="$lang" \ --dry-run=false \ --out "agc-results/app-info.$lang.json" done --out 保存接口的原始响应体。你可以读取这些结果、检查返回内容,再用自己的脚本整理需要的信息。它们也可以作为进一步比较资料变更的输入。 这种工作方式的收益很直接:常用查询只需整理一次,后续通过参数复用;查询结果可以继续交给程序处理,减少手工复制与重复整理。 多账号场景则可以显式选择凭据: agc --profile staging publishing endpoints --output table 这让命令的执行上下文更清楚,也方便在不同项目中维护各自的配置。 为脚本与 AI Agent 提供清晰的接口 接口示意:CLI 、本地 REST 和 Agent 使用同一份接口定义;执行前先发现、配置与预览。 agc-cli 默认输出 JSON ,同时支持 table 和 markdown 。 对于脚本,结构化输出可以继续交给 jq 或其他程序处理;对于 AI Agent ,它提供了可发现的接口定义、官方文档地址,以及 affordances 中的后续命令模板。 开发者可以先查看能力,再决定执行哪一步: agc capabilities --output table agc publishing endpoints --output table agc publishing app-info-query --pretty 这些命令无需先登录即可查看定义。Agent 也能沿着同样的路径了解接口,补齐参数后构建请求。当前命令模板用于导航,不会替代业务状态检查或审核判断。 需要进一步集成时, agc web-server 提供本地 REST API , agc openapi 导出接口契约。终端操作、脚本和本地工具可以围绕同一份接口注册表协作。 开源,让工作流可以持续演进 agc-cli 使用 MIT 许可证,提供中英文文档、测试与 CI 检查。目前重点是应用管理接口的统一入口;完整二进制/multipart 上传编排和本地 Hvigor 构建执行器尚未
- 情报分类:技术学习与提效
- 分类依据:内容涉及技术、AI、软件工具或工程实践
- 信息来源:服务器 / V2EX
- 发布时间:2026/10/7 08:55:49
- No replies yet