故障排除
复制一个包含安装步骤和此插件的完整Markdown指南的设置提示。
解决使用 Capgo Cloud Build 构建原生应用时的常见问题。
构建失败
标题:构建失败”Upload failed” or “Connection timeout”
或超时标题: 、“或超时”
- 症状:
- 项目上传过程中构建失败
60 秒后出现超时错误
-
解决方案:
终端窗口 # Test connection to Capgocurl -I https://api.capgo.app -
减少项目大小
- 确保
node_modules/正在上传(应自动排除) - 检查项目中大文件:
终端窗口 find . -type f -size +10M - 确保
-
检查上传 URL 过期
- 上传 URL 过期后 1 小时
- 如果出现过期 URL 错误,请重新运行构建命令
”Build timeout after 10 minutes”
Section titled “”Build timeout after 10 minutes””Symptoms:
- Build exceeds maximum allowed time
- Status shows
timeout
Solutions:
-
Optimize dependencies
- Remove unused npm packages
- 使用
npm prune --production在构建之前
-
在构建过程中检查网络问题
- 某些依赖项在构建过程中可能下载较大的文件
- 考虑使用锁文件进行预缓存
-
检查原生依赖项
终端窗口 # iOS - check Podfile for heavy dependenciescat ios/App/Podfile# Android - check build.gradlecat android/app/build.gradle -
联系支持
- 如果您的应用程序合法地需要更多时间
- 我们可以根据具体用例调整限制
身份验证问题
关于认证问题“API 键无效”或“未授权”
API 键无效或未授权症状:
- 在构建过程中立即出现了身份验证错误。
- 未授权访问或访问被拒绝
解决方案:
-
验证API密钥是否正确
终端窗口 # Test with a simple commandbunx @capgo/cli@latest app list -
检查API密钥权限
- 必须具有密钥
write或all权限 - 在Capgo控制台下API密钥
- 必须具有密钥
-
确保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 signing failed”
Section titled “”Code signing failed””症状:
- 构建过程中 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 portal 中创建新凭据
- 重新编码并更新环境变量
“配置文件中未包含签名证书”
标题:“配置文件中未包含签名证书”__CAPGO_KEEP_0__:
- Xcode无法在配置文件中找到证书
__CAPGO_KEEP_1__:
-
从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 authentication failed”
Section titled “”App Store Connect authentication failed””症状:
- 向 TestFlight 上传失败
- API key errors
验证__CAPGO_KEEP_0__密钥凭证
-
Verify API key credentials
- 检查 APPLE_ISSUER_ID(应为 UUID 格式)
- 验证 APPLE_KEY_CONTENT 是否正确 base64 编码
- __CAPGO_KEEP_0__ key 错误
-
同步电脑时钟
- App Store Connect 使用短期 JWT,生成自本地系统时间
- Apple 会拒绝那些将在 20 分钟后过期的令牌,因此即使是微小的时钟漂移也会使一个原本有效的密钥失效
- 在 Windows 上,打开 设置 > 时间和语言 > 日期和时间 并点击 立即同步
- 在 macOS 上,打开 系统设置 > 常规 > 日期和时间 并启用自动时间
- 在 Linux 上,检查
timedatectl status并启用 NTP 如果需要 - 重新同步后,请重新运行Capgo构建或凭据命令
参见苹果的 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中检查
- 如果需要则生成新密钥
”Pod install failed”
Section titled “”Pod install failed””症状:
- 在 CocoaPods 安装期间构建失败
- Podfile 错误
解决方案:
-
验证 Podfile.lock 已提交
终端窗口 git status ios/App/Podfile.lock -
测试本地 pod 安装
终端窗口 cd ios/Apppod install -
检查不兼容的 Pods
- 检查 Podfile 中的版本冲突
- 确保所有 Pods 支持您的 iOS 部署目标
-
清除 Pod 缓存
终端窗口 cd ios/Apprm -rf Podsrm Podfile.lockpod install# Then commit new Podfile.lock
Android 构建问题
Android 构建问题错误:密钥库密码错误
密钥库密码错误症状:
- 签名过程中构建失败
- Gradle关于keystore的错误
解决方案:
-
验证keystore密码
终端窗口 # 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
”无法找到密钥别名””
Section titled “”无法找到密钥别名””症状:
- 使用别名错误导致签名失败
解决方案:
-
列出密钥库别名
终端窗口 keytool -list -keystore my-release-key.keystore -
确认别名完全匹配
- 别名区分大小写
- 检查KEYSTORE_KEY_ALIAS中的拼写错误
-
使用密钥库中的正确别名
终端窗口 # Update environment variable to matchexport KEYSTORE_KEY_ALIAS="the-exact-alias-name"
”Gradle build failed”
Section titled “”Gradle build failed””症状:
- 常见Gradle错误
- 编译或依赖问题
解决方案:
-
先在本地测试构建
终端窗口 cd android./gradlew clean./gradlew assembleRelease -
检查依赖项是否缺失
- Review __CAPGO_KEEP_0__ files
- 确保所有插件都列在依赖项中
-
验证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 Developer API 必须启用
- 检查 Google Cloud Console
常见问题
标题:常见问题“找不到工作”或“无法获取构建状态”
标题:“找不到工作”或“无法获取构建状态”症状:
- 无法检查构建状态
- 工作 ID 错误
解决方案:
-
稍等一下,重新尝试
- 构建作业可能需要几秒钟来初始化
-
检查作业 ID 是否正确
- 从初始构建响应中验证作业 ID
-
检查构建未过期
- 构建数据可用 24 小时
”Project sync failed”
Section titled “”Project sync failed””症状:
- 在编译开始之前构建失败
- 缺失文件错误
解决方案:
-
在本地运行 Capacitor 同步
终端窗口 bunx cap sync -
确保所有本地文件都已提交
终端窗口 git status ios/ android/ -
检查被忽略的本地文件
- 查看 .gitignore
- 确保重要的配置文件未被忽略
”Build succeeded but I don’t see output”
Section titled “”Build succeeded but I don’t see output””Symptoms:
- Build shows success but no download link
解决方案:
-
检查构建配置
- 可能未配置的存储
- 如果构建中无法访问存储,请联系支持
-
用于 iOS TestFlight 提交
- 检查 App Store Connect
- 上传后处理可能需要 5-30 分钟
-
用于 Android Play Store
- 检查 Play Console → Testing → 内部测试
- 处理可能需要几分钟
CI/CD 特定问题
CI/CD 特定问题GitHub Actions: “命令未找到”
GitHub Actions: “命令未找到””症状:
bunx @capgo/cli@latest …在 CI 中失败,提示“命令未找到”
解决方案:
-
首先设置 Bun 所以
bunx可用:- uses: oven-sh/setup-bun@v2 -
然后运行 CLI —
bunx可以按需获取,不需要全局安装:- run: bunx @capgo/cli@latest build request com.example.app --platform android
GitHub Actions: “未发现密钥”
GitHub Actions: “未发现密钥””症状:
- 构建时环境变量为空
解决方案:
-
验证密钥是否已设置
- 前往仓库设置 → 秘密和变量 → Actions
- 添加所有必需密钥
-
使用正确的语法
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
联系支持
标题:联系支持- __CAPGO_KEEP_0__: 加入我们的社区
- 邮箱: support@capgo.app
- 文档: Capgo 文档
已知限制
名为“已知限制”的部分当前限制:
- 最大构建时间:10分钟
- 最大上传大小:约500MB
- iOS构建需要24小时Mac租赁,Mac构建将排队以确保最佳使用
- 根据构建目的地和存储配置,构建产物下载可用性会有所不同。
这些限制可能会根据反馈进行调整。