自动上传 App 与 CI/CD 集成指南
按使用场景选择快速上传 API、CLI、CI/CD 插件、MCP 或 Agent Skill,将蒲公英接入构建脚本、发布系统和 AI 助手。
您可以在构建完成后自动将安装包上传到蒲公英,获取下载链接和二维码,再交给测试人员安装。本文汇总常见接入方式,帮助您选择工具并完成基本集成;完整参数和平台配置可继续查看对应专题文档。
自动上传的完整流程
构建、签名并生成安装包 → 上传到蒲公英 → 等待发布处理完成 → 获取下载链接或二维码 → 分发给测试人员。
您的开发工具或 CI/CD 系统负责构建和签名,蒲公英负责接收安装包、处理发布并提供下载分发。请先确保构建步骤已经生成可用的安装包,再执行上传步骤。
选择适合您的接入方式
| 您的使用场景 | 建议方式 | 接入说明 |
|---|---|---|
| 希望通过几条命令上传,或在通用流水线中增加上传步骤 | 蒲公英 CLI | 安装命令行工具,通过环境变量认证后执行上传 |
| 已有 Shell 脚本,或不方便安装 Node.js | Shell 上传示例 | 将现成脚本加入构建后的步骤 |
| 自研发布平台、后台服务或业务系统 | 快速上传 API | 自行调用接口,或参考多语言代码示例 |
| 使用 Jenkins | Jenkins 插件 | 配置构建后上传,也可在 Pipeline 中运行 CLI 或脚本 |
| 使用 Fastlane | Fastlane 插件 | 在现有 lane 的打包步骤之后加入上传 |
| 使用 GitHub Actions | 蒲公英上传 Action 或 CLI | 在生成安装包后增加上传 step |
| 使用 GitLab CI 或其他 CI/CD 平台 | CLI、Shell 或快速上传 API | 使用平台的命令执行能力,并传入构建产物和密钥 |
| 希望通过对话让 AI 助手上传安装包、查询应用 | 蒲公英 MCP | 为兼容 MCP 的 AI 客户端提供上传和查询工具 |
| 希望 AI 协助上传、整理结果或编写 CI/CD 配置 | 蒲公英 Agent Skill | 为 AI 提供操作流程、示例和排错指引,可与 MCP 配合 |
| 希望在 Android Studio 内手动上传 APK | Android Studio 插件 | 在 IDE 中选择安装包并上传 |
如果您还没有确定工具,可以从 CLI 开始;需要将上传深度集成到自己的系统时,选择快速上传 API。多语言示例是快速上传 API 的实现参考,Shell 示例也是其中一种。
接入前的准备
- 准备已经构建并签名的安装包。快速上传 API 和 CLI 支持
.ipa、.apk、.hap;各插件支持的类型以对应工具说明为准。HarmonyOS 的证书及依赖文件要求见 HarmonyOS 内测分发。 - 登录蒲公英,在 API 信息页面 获取 API Key。
- 在 CI/CD 的密钥或凭据管理中保存 API Key,并注入上传步骤。CLI、Shell 示例和 MCP 可以使用环境变量
PGYER_API_KEY;插件请按其参数要求配置。 - 确认上传步骤能读取安装包并访问蒲公英 API 及接口返回的上传地址。构建和上传分属不同 Job 时,需要先传递或下载构建产物。
请勿将真实 API Key 写入 Git 仓库或输出到构建日志。日常自动上传使用流水线提供的密钥,无需每次交互式登录。
快速开始:通过 CLI 上传
在满足 CLI 环境要求 的机器上安装工具:
npm install -g @pgyer/cli在 CI/CD 中配置好 PGYER_API_KEY 后,执行:
pgyer upload ./app-release.apk将路径替换为您的实际安装包路径;路径包含空格时请加引号。CLI 默认等待蒲公英处理完成;需要供后续程序读取结果时,可添加 --json。本地开发也可以先运行 pgyer auth login 完成认证,再执行上传。
例如,在已有构建步骤之后添加以下 Shell 命令:
set -eu
: "${PGYER_API_KEY:?请先在 CI/CD 中配置 PGYER_API_KEY}"
test -f ./app-release.apk
pgyer upload ./app-release.apk该片段假设 CLI 已安装,且安装包已放入当前工作目录。正式流水线中建议固定经过验证的 CLI 版本。更多参数请运行 pgyer upload --help,或查看 CLI 文档。
如果您使用现有 Shell 环境,可将 Shell 示例 下载并纳入自己的脚本目录。按照示例说明准备依赖、配置 PGYER_API_KEY 后执行:
bash ./shell-demo/pgyer_upload.sh ./app-release.apk通过快速上传 API 接入自己的系统
新接入建议使用 快速上传 API,核心流程包含三个步骤:
- 获取上传凭证:调用
getCOSToken,取得上传地址endpoint、文件标识key和签名参数。 - 上传安装包:按接口说明,将文件和签名参数以
multipart/form-data提交到返回的endpoint。请使用响应中的地址和参数。 - 查询发布结果:使用第一步返回的
key作为查询参数buildKey,调用buildInfo,等待发布完成并取得应用信息。
文件上传成功后,蒲公英还需要处理安装包。上传请求返回成功并不代表发布完成;请以 buildInfo 的最终业务结果判断成功或失败,并为轮询设置间隔和超时。
代码示例仓库 提供可运行的实现参考:
| 语言 | 示例入口 |
|---|---|
| Shell | shell-demo |
| Java | java-demo |
| Node.js | nodejs-demo |
| PHP | php-demo |
| Python | python-demo |
| C# | csharp-demo |
具体依赖、调用参数和错误处理见各目录说明;完整接口字段见 上传与发布 API。
接入现有 CI/CD 工具
Jenkins
使用 Jenkins 插件,可在 Job 的构建后操作中配置 API Key、安装包所在目录及匹配规则。上传后,可将插件返回的变量用于后续步骤。
如果您使用 Jenkins Pipeline,也可以在已有构建步骤后运行前面的 CLI 或 Shell 命令,并通过 Jenkins 凭据管理注入 API Key。
Fastlane
在项目中安装蒲公英插件:
fastlane add_plugin pgyer在已经完成打包配置的 lane 中,紧接打包步骤加入:
pgyer(api_key: ENV.fetch("PGYER_API_KEY"))安装包路径、更新说明和安装方式等配置见 Fastlane 文档 及 插件仓库。
GitHub Actions
您可以使用 蒲公英上传 Action,按所选版本的 action.yml 配置参数并确认运行时兼容性;也可以在已有工作流中调用 CLI。
以下片段放在同一个 Job 的构建步骤之后,假设已准备好 CLI 所需的 Node.js 环境,并在仓库 Secrets 中保存了 PGYER_API_KEY:
- name: Install Pgyer CLI
run: npm install -g @pgyer/cli
- name: Upload to Pgyer
env:
PGYER_API_KEY: ${{ secrets.PGYER_API_KEY }}
run: pgyer upload ./app-release.apk请替换实际安装包路径,并选择可以访问该 Secret 的发布触发条件。CLI 安装版本可按团队验证结果固定。
GitLab CI 与其他平台
在构建完成后的 Job 或步骤中安装 CLI、注入 PGYER_API_KEY 并执行上传命令即可。GitLab CI 中可以通过 CI/CD Variables 保存密钥,通过 artifacts 将安装包传递给上传 Job。
接入其他系统时也遵循相同流程:准备运行环境、取得构建产物、配置认证、执行上传、检查结果。支持执行脚本或发出 HTTP 请求的平台都可以按此方式集成。
通过 AI 助手上传:MCP 与 Agent Skill
MCP:让 AI 调用上传和查询工具
蒲公英 MCP 将上传安装包、查询应用列表、按短链接查询应用信息等能力提供给兼容的 AI 客户端。
按照 MCP 文档完成客户端配置,并确保工具运行环境能读取安装包后,您可以向 AI 助手提出这样的请求:
示例请求
将 build/release/app.apk 上传到蒲公英,并返回下载链接和二维码。
Agent Skill:指导 AI 完成接入流程
蒲公英 Agent Skill 提供上传方式选择、结果整理、CI/CD 示例和排错指引。可通过以下命令安装,再按专题文档配置认证:
npx skills add PGYER/pgyer-skill您既可以让 AI 上传已有安装包,也可以让它协助配置流水线:
示例请求
为这个 Android 项目配置 GitLab CI,在构建成功后自动上传到蒲公英,通过 CI/CD Variables 读取 API Key。
MCP 提供可调用的工具,Skill 指导 AI 如何选择和组合操作,两者可以配合使用。当前 Skill 优先使用可用的 MCP,也提供 Shell 脚本和 API 接入路径,具体行为见 Skill 仓库。
AI 生成的流水线配置需要结合项目的构建命令、产物路径和触发条件检查并运行验证。配置完成后,后续自动上传由流水线执行。
上传结果与常用发布设置
快速上传 API 发布成功时,可从 buildInfo 的 data 中取得以下信息;CLI 和各插件的输出形式以各自文档为准。
| 信息 | API 字段或用法 |
|---|---|
| 构建标识 | buildKey,可在您的发布记录中保存 |
| 应用名称、版本 | buildName、buildVersion |
| 下载页面 | 将 buildShortcutUrl 拼接为 https://www.pgyer.com/<buildShortcutUrl> |
| 二维码 | buildQRCodeURL 返回的地址 |
拿到结果后,可将下载地址写入构建摘要,或交给现有通知步骤发送给测试人员。更多通知配置见 外部集成与通知相关文档。
常用发布设置包括更新说明、公开或密码安装、邀请安装,以及指定已创建的渠道。快速上传 API 对应参数为 buildUpdateDescription、buildInstallType、buildPassword、buildChannelShortcut;各工具的参数名称可能不同,请查看专题说明。
常见问题
没有对应平台的专用插件,能否接入?
可以。只要系统能执行命令或调用 HTTP 接口,就可以使用 CLI、Shell 或快速上传 API。上传步骤需要能够读取安装包并访问相关服务。
上传失败或超时应该如何处理?
先检查安装包路径、读取权限、API Key 和网络,再查看工具或 API 返回的错误说明。查询发布结果时,只对文档说明的处理中状态继续轮询;遇到明确失败应停止并处理原因。超时后先核实发布结果,再决定是否重新上传,避免重复提交。
上传成功后,安装包是否可以一直保留?
自动上传同样适用 版本保留与自动清理规则。请在 CI/CD 产物库或归档系统中保存仍需长期使用的安装包。
更多开发工具
- Android Studio 插件:在 IDE 内手动选择并上传 APK。
- Travis CI(Android) 与 Travis CI(iOS):已有集成教程,其中历史演示环境需按当前平台配置调整。
- 第三方插件汇总:涵盖 Gradle、TeamCity 等工具,使用前请核对具体项目的维护状态和兼容性。
各专题文档继续提供完整安装步骤、参数和示例,您可以根据选型表进入对应页面。