浏览器构建:故障排除

备注

此页面汇总了浏览器构建的故障排除提示。

使用 AAPS Builder?请先查看其专属的故障排除部分。下面的 Google Drive 部分同样适用于 AAPS Builder。

AAPS-CI 故障排除

aaps-ci-preparation 网页

  • 当您使用文件管理器打开 aaps-ci-preparation.html 时,它会在手机上启动一个临时本地服务器,用于显示网页并接收 Google 刷新令牌。

  • 此本地服务器会在大约 10 分钟后超时。如果您看到下面的屏幕,说明文件管理器已经关闭了本地服务器。

  • 关闭准备页面和文件管理器应用,然后从文件管理器重新打开 aaps-ci-preparation.html 并完成剩余步骤。尤其是在设置过程中创建初始 Google 连接时,需要执行此操作。

aaps_ci_html_not_found

Google 刷新令牌已过期

  • Google OAuth2 刷新令牌如果连续 6 个月未使用就会过期,在其他情况下也可能失效(例如您更改了 Google 账户密码,或手动撤销了访问权限)。有关更多详细信息,请参阅 Google OAuth2 文档。

  • 您会看到一条指示访问令牌无效的错误,如下所示:

aaps_ci_token_expired

  • 如果您的构建因 Google 刷新令牌过期或被撤销而失败,您需要重新执行 Google Drive Auth 中的步骤,以获取新的 GDRIVE_OAUTH2 令牌并更新 GitHub 存储库中的密钥,然后重新运行构建工作流。

  • 如果授权再次失败,或者 Google 不再要求您同意,请先从您的 Google 账户中移除现有的 AAPS 访问权限,具体请参阅下文。

从您的 Google 账户中移除 AAPS 访问权限并重新开始授权

  • 如果 Google Drive 授权持续失败,或者您想从干净的状态重新开始,请先移除之前授予 AAPS 的访问权限,然后重新进行授权。

  • 在手机上打开 https://myaccount.google.com,点击 安全性,向下滚动到 您与第三方应用和服务的连接,然后打开已关联应用的列表。您也可以直接前往 https://myaccount.google.com/connections。

  • 点击列表中的 AAPS。

aaps_ci_google_access_1

  • 页面会显示您授予 AAPS 的访问权限(应用使用的 Google Drive 文件)。点击 全部删除 以移除连接,或先点击 查看详细信息 进行查看。

aaps_ci_google_access_2

  • 在详细信息页面,点击 移除所有访问权限 并确认。AAPS 不再出现在已关联应用的列表中。

aaps_ci_google_access_3

  • 现在重新开始授权:关闭准备页面和文件管理器应用,从文件管理器重新打开 aaps-ci-preparation.html,然后重新执行 Google Drive Auth 中的步骤。Google 会再次要求您授予访问权限,页面也会提供新的 GDRIVE_OAUTH2 令牌。

  • 使用新令牌更新 GitHub 存储库中的 GDRIVE_OAUTH2 密钥,然后重新运行构建工作流。

禁用可能干扰 OAUTH 验证的软件

  • 在尝试获取 OAUTH 密钥之前,请在手机上禁用任何 VPN 或安全应用(防火墙、反恶意软件等)。

检查 GitHub Actions 权限设置

  • 确保 GitHub Actions 策略设置为“允许所有操作和可复用工作流”(设置 → Actions → General)。

aaps_ci_actions_permission

actions/checkout@v4 和 actions/setup-java@v4 不允许在 xxxxx/AndroidAPS 中使用。 此工作流中的操作必须位于由 xxxxx 所有的存储库内

检查 GitHub 工作流权限设置

  • 如果构建立即失败,并出现类似下面的“无效工作流文件”错误,则说明您存储库的默认工作流权限限制过于严格:

Invalid workflow file
The workflow is not valid. .github/workflows/aaps-ci.yml (Line: 361, Col: 3):
Error calling workflow 'xxxxx/AndroidAPS/.github/workflows/cleanup-workflow-runs.yml@...'.
The nested job 'cleanup' is requesting 'actions: write', but is only allowed 'actions: none'.
  • 确保工作流权限设置为“读写权限”(设置 → Actions → General → Workflow permissions),然后保存并重新运行构建工作流。

aaps_ci_workflow_permissions

密码包含特殊字符时在签名步骤构建失败

  • 如果密码正确但 APK 在签名时构建失败,请检查您的 KEYSTORE_PASSWORD 或 KEY_PASSWORD 是否包含 $、反引号、" 或 \。构建工作流会解析这四个字符,并更改或截断密码。

  • 在 GitHub 中编辑该密钥,仅在这四个字符前添加反斜杠 \。例如,对于密码 abc$def"ghi,请输入 abc\$def\"ghi。

  • 包括 %、*、# 和 ! 在内的其他所有字符都必须保持原样。在它们前面添加反斜杠会使反斜杠成为密码的一部分。

  • 重新运行构建工作流。

  • 竖线 | 是一种特殊情况。选项 1 的准备页面会将密钥库、密码和别名组合成一个由 | 分隔的 KEYSTORE_SET 密钥,工作流会按此字符进行拆分。准备页面生成的密码只包含字母和数字,因此选项 1 不会出现这种情况。只有当您自行使用包含 | 的密码组装 KEYSTORE_SET 密钥时,才可能出现这种情况。此时,请删除 KEYSTORE_SET,改为输入选项 2中的独立密钥。