故障排除
复制一个包含安装步骤和本插件完整Markdown指南的设置提示。
解决使用 Capgo Cloud Build 构建原生应用时的常见问题。
构建失败
标题:构建失败“上传失败”或“连接超时”
标题:或超时
- 症状:
- 项目上传过程中发生错误
60 秒后出现超时错误
-
解决方案:
检查您的网络连接 # Test connection to Capgocurl -I https://api.capgo.app -
减少项目大小
- 确保
node_modules/不被上传(应该自动排除) - 检查项目中的大文件:
终端窗口 find . -type f -size +10M - 确保
-
检查上传 URL 过期
- 上传 URL 将在 1 小时后过期
- 如果您收到过期 URL 错误,请重新运行构建命令
“构建超时后 10 分钟”
标题:““构建超时后 10 分钟””症状:
- 构建超时
- 状态显示
timeout
解决方案:
-
优化依赖项
- 移除未使用的npm包
- 使用
npm prune --production在构建之前
-
检查构建过程中的网络问题
- 在构建过程中,某些依赖项可能会下载较大的文件
- 考虑使用锁文件进行预缓存
-
检查本机依赖项
终端窗口 # iOS - check Podfile for heavy dependenciescat ios/App/Podfile# Android - check build.gradlecat android/app/build.gradle -
联系支持
- 如果您的应用程序合法地需要更多时间
- 我们可以根据特定场景调整限制
身份验证问题
身份验证问题“API key 无效” 或 “未授权”
API key 无效或未授权症状:
- 构建立即失败,出现认证错误
- 401 或 403 错误
解决方案:
-
验证API key 是否正确
终端窗口 # Test with a simple commandbunx @capgo/cli@latest app list -
检查API key 权限
- Key 必须具有
write或all权限 - 在Capgo控制台中检查API密钥
- Key 必须具有
-
确保API密钥正在被读取
终端窗口 # Check environment variableecho $CAPGO_TOKEN# Or check your saved credentials filecat ~/.capgo-credentials/credentials.json # globalcat .capgo-credentials.json # local (--local) -
重新认证
终端窗口 bunx @capgo/cli@latest login
“应用程序未找到”或“无此应用程序的权限”
应用程序未找到或无此应用程序的权限症状:
- 认证正常但应用程序特定错误
解决方案:
-
验证应用程序已注册
终端窗口 bunx @capgo/cli@latest app list -
验证应用程序 ID 匹配
- 验证
capacitor.config.jsonappId - 确保命令使用正确的应用程序 ID
- 验证
-
验证组织访问权限
- 检查您是否在正确的组织中
- API 键必须具有对应用程序组织的访问权限
iOS 构建问题
iOS 构建问题Code 签名失败
Code 签名失败症状:
- 构建过程中发生 code 签名失败
- Xcode 错误提示证书或配置文件问题
解决方案:
-
确认证书类型与构建类型匹配
- 开发构建需要开发证书
- App Store 构建需要发布证书
-
检查证书和配置文件是否匹配
终端窗口 # Decode and inspect your certificateecho $BUILD_CERTIFICATE_BASE64 | base64 -d > cert.p12openssl pkcs12 -in cert.p12 -nokeys -passin pass:$P12_PASSWORD | openssl x509 -noout -subject -
确保配置文件有效
- 检查过期日期
- 验证它包含您的 App ID
- 确认它包含证书
-
重新生成凭据
- 删除旧证书/配置文件
- 在 Apple Developer 门户中创建新凭据
- 重新编码并更新环境变量
“配置文件中未包含签名证书”
标题:“配置文件中未包含签名证书”症状:
- Xcode无法在配置文件中找到证书
Solutions:
-
下载最新的 Apple 配置文件
- 前往Apple Developer → 证书、ID和配置文件
- 下载配置文件
- 确保配置文件包含您的证书
-
在终端窗口
复制到剪贴板 # Extract profileecho $BUILD_PROVISION_PROFILE_BASE64 | base64 -d > profile.mobileprovision# View profile contentssecurity cms -D -i profile.mobileprovision -
在Apple Developer门户中编辑配置文件
- 确保已选择您的发布证书
- 复制到剪贴板
- 下载并重新编码
“App Store Connect认证失败”
“App Store Connect认证失败””症状:
- 向TestFlight上传失败
- API密钥错误
解决方案:
-
验证API密钥凭证
- 检查APPLE_KEY_ID(应为10个字符)
- 检查APPLE_ISSUER_ID(应为UUID格式)
- 验证APPLE_KEY_CONTENT是否正确base64编码
-
同步计算机时钟
- App Store Connect认证使用短期 JWT,源自您的本地系统时间
- Apple拒绝那些在未来超过20分钟过期的令牌,因此即使是微小的时钟漂移也会使一个原本有效的密钥失败
- 在Windows上,打开 设置>时间和语言>日期和时间 并点击 同步现在
- 在macOS上,打开 系统设置>常规>日期和时间 并启用自动时间
- 在Linux上,检查
timedatectl status并启用NTP,如果需要 - 同步后,重新运行Capgo构建或凭据命令
查看 Apple 的 为 API 请求生成令牌 查看 App Store Connect 令牌有效期规则的文档。
-
测试 API 密钥
终端窗口 # Decode keyecho $APPLE_KEY_CONTENT | base64 -d > AuthKey.p8# Test with fastlane (if installed)fastlane pilot list -
查看 API 密钥权限
- 密钥需要 '开发者' 角色或更高
- 在 App Store Connect -> 用户和访问 -> 密钥中验证
-
确保密钥未被撤销
- 在 App Store Connect 中检查
- 如果需要则生成新密钥
iOS 27 上的应用程序在启动时会崩溃
iOS 27 上应用程序启动时会崩溃的部分症状:
- 使用 Xcode 27 构建的 iOS 27 应用程序(TestFlight 或设备)会立即关闭
- 崩溃报告显示
_UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption
解决方案: apps built with the iOS 27 SDK must adopt the UIScene lifecycle. Add a SceneDelegate 和一个 UIApplicationSceneManifest 到 ios/App/App/Info.plist或使用 --xcode-version 26。 Capgo 现在在构建开始之前会阻止这些构建(预检查) ios/plist-scene-lifecycle-xcode27).
“Pod 安装失败”
Section titled ““Pod 安装失败””症状:
- CocoaPods 安装过程中构建失败
- Podfile 错误
解决方案:
-
验证 Podfile.lock 已提交
终端窗口 git status ios/App/Podfile.lock -
测试 pod 安装本地
终端窗口 cd ios/Apppod install -
检查不兼容的 pod
- 检查 Podfile 版本冲突
- 确保所有 pod 支持您的 iOS 部署目标
-
清除 pod 缓存
终端窗口 cd ios/Apprm -rf Podsrm Podfile.lockpod install# Then commit new Podfile.lock
Android 构建问题
Android 构建问题密钥库密码错误
Section titled ““密钥库密码错误”””症状:
- 签名过程中构建失败
- Gradle关于密钥库的错误
解决方案:
-
验证密钥库密码
终端窗口 # Test keystore locallykeytool -list -keystore my-release-key.keystore# Enter password when prompted -
环境变量检查
终端窗口 # Ensure no extra spaces or special charactersecho "$KEYSTORE_STORE_PASSWORD" | cat -Aecho "$KEYSTORE_KEY_PASSWORD" | cat -A -
验证base64编码
终端窗口 # Decode and testecho $ANDROID_KEYSTORE_FILE | base64 -d > test.keystorekeytool -list -keystore test.keystore
“找不到密钥别名”
找不到密钥别名症状:
- 签名失败,出现别名错误
解决方案:
-
列出密钥库别名
终端窗口 keytool -list -keystore my-release-key.keystore -
验证别名完全匹配
- 别名区分大小写
- 检查KEYSTORE_KEY_ALIAS中的拼写错误
-
从keystore中使用正确的别名
终端窗口 # Update environment variable to matchexport KEYSTORE_KEY_ALIAS="the-exact-alias-name"
“Gradle构建失败”
“Gradle构建失败””症状:
- 常见Gradle错误
- 编译或依赖问题
解决方案:
-
先在本地测试构建
终端窗口 cd android./gradlew clean./gradlew assembleRelease -
检查缺失的依赖项
- 查看build.gradle文件
- 确保所有插件都列在依赖项中
-
验证Gradle版本兼容性
终端窗口 # Check gradle versioncat android/gradle/wrapper/gradle-wrapper.properties -
清除Gradle缓存
终端窗口 cd android./gradlew cleanrm -rf .gradle build
“Play Store上传失败”
“Play Store上传失败”标题问题:
- 构建成功但上传失败
- 服务账户错误
解决方案:
-
验证服务账户JSON
终端窗口 # Decode and check formatecho $PLAY_CONFIG_JSON | base64 -d | jq . -
检查服务账户权限
- 前往Play Console → 设置 → API访问
- 确保服务账户有权访问您的应用
- 授予“发布到测试轨道”权限
-
验证应用已在Play Console中设置
- 必须在Play Console中首先创建应用
- 必须手动上传至少一个APK
-
检查API是否已启用
- Google Play DeveloperAPI必须已启用
- 检查Google Cloud Console
常见问题
标题:常见问题“任务未找到”或“构建状态不可用”
标题:“任务未找到”或“构建状态不可用”症状:
- 无法检查构建状态
- 任务ID错误
解决方案:
-
请稍等再试
- 构建作业可能需要几秒钟来初始化
-
检查作业 ID 是否正确
- 从初始构建响应中验证作业 ID
-
检查构建是否过期
- 构建数据在 24 小时内可用
“项目同步失败”
标题:“项目同步失败”症状:
- 构建在编译开始之前失败
- 缺失文件错误
Solutions:
-
在本地运行Capacitor
终端窗口 bunx cap sync -
确保所有本地文件已提交
终端窗口 git status ios/ android/ -
检查被git忽略的本地文件
- 查看.gitignore
- 确保重要的配置文件未被忽略
“构建成功但我看不到输出”
构建成功但我看不到输出问题:
- 构建显示成功但没有下载链接
解决方案:
-
检查构建配置
- 可能未配置存储构建产物
- 如果构建产物无法访问,请联系支持
-
context:页面/区域:集成营销部分。角色:短UI标签或导航项。见于:集成页面。astro。消息键`integrations_partners_freelance_contact`(集成合作伙伴自由职业者联系)
- 对于iOS TestFlight提交
- 检查App Store Connect
-
上传后处理可能需要5-30分钟
- 对于Android Play Store
- 检查Play Console → Testing → Internal testing
环境切换后,构建成功但 artifact 错误
环境切换后构建成功但 artifact 错误症状:
- 构建状态是
success但 IPA/AAB/APK 与您刚刚构建的 branch 或 flavor 不匹配 - Android AAB 缺失或错误,可能是由于切换 RC 与生产凭证或
--android-flavor - 构建完成后,似乎在切换签名配置或产品风味后异常快速
原因: Capgo 默认恢复 每个应用的构建缓存 (省略 cache_key 共享的通用缓存)。如果 RC 和生产共享相同的应用 ID,但没有单独的密钥,恢复可以重用之前环境的编译输出
Solutions:
-
环境使用缓存键 (推荐用于持续的RC/PROD管道):
终端窗口 # Productionbunx @capgo/cli@latest build request com.example.app --platform android \--cache-key=prod \--android-flavor production# Staging / RCbunx @capgo/cli@latest build request com.example.app --platform android \--cache-key=staging \--android-flavor staging -
强制进行一次干净的构建 当调试时:
终端窗口 bunx @capgo/cli@latest build request com.example.app --platform android --no-cache -
在API或 webhook 集成中, 传递
cache_key(例如"prod") 或设置cache_enabled: false一次干净的构建
查看 构建缓存 查看完整选项参考
CI/CD 特定问题
CI/CD 特定问题GitHub 动作:“命令未找到”
GitHub 动作:“命令未找到”症状:
bunx @capgo/cli@latest …CI 构建失败,提示“命令未找到”
解决方案:
-
首先设置Bun 所以
bunx可用:- uses: oven-sh/setup-bun@v2 -
然后运行CLI —
bunx然后运行__CAPGO_KEEP_0__- run: bunx @capgo/cli@latest build request com.example.app --platform android
GitHub 动作: “找不到密钥”
GitHub Actions:“找不到密钥”Symptoms:
- 症状:
构建环境变量为空
-
验证密钥已设置
- 前往仓库设置 → 秘密和变量 → 动作
- 添加所有必需的密钥
-
使用正确的语法
env:CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} -
查看密钥名称是否匹配
- 名称区分大小写
- 密钥引用中无错误
获取更多帮助
启用详细日志获取更多帮助
启用详细日志# Add debug flag (when available)bunx @capgo/cli@latest build request com.example.app --verbose收集构建信息
收集构建信息与支持人员联系时,请包含以下信息:
-
构建命令
终端窗口 bunx @capgo/cli@latest build request com.example.app --platform ios -
错误信息 (完整输出)
-
任务 ID (从构建输出)
-
构建日志 (复制全屏幕输出)
-
环境信息
终端窗口 node --versionnpm --versionbunx @capgo/cli@latest --version
联系支持
联系支持- Discord: 加入我们的社区
- 电子邮件: support@capgo.app
- 文档: Capgo 文档
已知限制
标题:已知限制当前限制:
- 最大构建时间:10分钟
- 最大上传大小:约500MB
- iOS构建需要24小时Mac租用,构建在Mac上将排队以确保最佳使用
- 构建工件下载可用性取决于构建目的地和工件存储配置
这些限制可能根据反馈进行调整
预扫描阻止了我的构建
标题:预扫描阻止了我的构建Capgo 运行一个本地 预扫 上传之前修复报告的发现,或者忽略该检查ID:
npx @capgo/cli@latest build request <appId> --platform ios \ --prescan-skip ios/capacitor-server-url-shipped查看完整目录: 预扫检查.