From fc1160ecb3e4eefc6a3d8a473579be7a78c9c0fb Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 26 Jul 2026 10:36:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?ci(client):=20sing-box=20=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B5=B0=E5=85=AC=E7=BD=91=E9=95=9C=E5=83=8F?= =?UTF-8?q?=20git.51yanmei.com(android/ios/macos)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit android/ios/macos 三端都内嵌 libbox,编译期都要 git clone sing-box 源码。 此前只有 build-android 注入了 SINGBOX_GIT(且指向本地 relay 127.0.0.1:13000, 依赖 tailscale/LAN,Mac runner 出外网即失效),ios/macos 完全没注入 → 直接 clone github.com → 被 GFW/DNS 污染打挂(SSL_ERROR_SYSCALL,exit 128)。 统一改用稳定公网域名 git.51yanmei.com(ali frps ← 家里 NAS frpc,nginx 443 反代 gitea)——外网/内网都通,不依赖本地 relay/tailscale。已用真实 clone 命令 从外网验证 v1.13.13 可拉。ios/macos 同时补 GOPROXY(gomobile go install)。 build-windows 保持 LAN 镜像不动(Windows 台式机固定在家,不移动)。 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo --- .gitea/workflows/deploy-client.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deploy-client.yml b/.gitea/workflows/deploy-client.yml index d9319f8..fc76eca 100644 --- a/.gitea/workflows/deploy-client.yml +++ b/.gitea/workflows/deploy-client.yml @@ -39,9 +39,10 @@ jobs: GOPROXY: https://goproxy.cn,direct PUB_HOSTED_URL: https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn - # sing-box 源码经 NAS gitea 镜像取(mac runner 连不上 github;经 runner 的 - # gitea relay 127.0.0.1:13000 → wangjia/sing-box)。见 scripts/build-libbox.sh。 - SINGBOX_GIT: http://127.0.0.1:13000/wangjia/sing-box.git + # sing-box 源码经 NAS gitea 公网镜像取(mac runner 连不上 github)。 + # 用稳定公网域名 git.51yanmei.com(ali frps ← 家里 NAS frpc,nginx 443 反代 + # gitea)—— 外网/内网都通,不依赖本地 relay/tailscale。见 scripts/build-libbox.sh。 + SINGBOX_GIT: https://git.51yanmei.com/wangjia/sing-box.git steps: - name: Checkout uses: actions/checkout@v4 @@ -112,8 +113,11 @@ jobs: runs-on: mac continue-on-error: true env: + GOPROXY: https://goproxy.cn,direct PUB_HOSTED_URL: https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn + # macOS 同样内嵌 libbox → 同走 NAS gitea 公网镜像取 sing-box 源码(见 build-android)。 + SINGBOX_GIT: https://git.51yanmei.com/wangjia/sing-box.git steps: - name: Checkout uses: actions/checkout@v4 @@ -143,8 +147,11 @@ jobs: runs-on: mac continue-on-error: true env: + GOPROXY: https://goproxy.cn,direct PUB_HOSTED_URL: https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn + # iOS 同样内嵌 libbox → 同走 NAS gitea 公网镜像取 sing-box 源码(见 build-android)。 + SINGBOX_GIT: https://git.51yanmei.com/wangjia/sing-box.git steps: - name: Checkout uses: actions/checkout@v4 -- 2.52.0 From caaed882985f7bbe7bdf66d76e2146d53a1cc2c6 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 26 Jul 2026 11:15:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ci(android):=20gradle=20=E5=8F=91=E8=A1=8C?= =?UTF-8?q?=E7=89=88=20+=20maven=20=E4=BE=9D=E8=B5=96=E8=B5=B0=E5=9B=BD?= =?UTF-8?q?=E5=86=85=E9=95=9C=E5=83=8F(=E4=BF=AE=20#215=2022min=20?= =?UTF-8?q?=E6=8C=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #215 android 跑到 flutter build apk 的 Gradle 阶段挂了 ~17min: "Gradle threw an error while downloading artifacts from the network" "java.io.EOFException: SSL peer shut down incorrectly"(org.gradle.wrapper.Download) ——这是 sing-box 之外的第二个 GFW 网络坑:Gradle 要下载发行版和 maven 依赖, 走了被墙的 services.gradle.org / dl.google.com / maven central,SSL 被重置。 env 里配了 GOPROXY/PUB/FLUTTER 镜像,唯独 Gradle+Maven 没配。改: - gradle-wrapper.properties: distributionUrl → 腾讯云 gradle 镜像(同一份 zip)。 - settings.gradle / build.gradle: repositories 前置阿里云 google/public/gradle-plugin 镜像,原 google()/mavenCentral()/gradlePluginPortal() 保留作 fallback。 镜像已逐个验证:腾讯 gradle-8.7-bin.zip(206)、阿里云 AGP 8.6.0 pom(200)、 kotlin.android 2.2.0(200)均可取。全球通用,墙内不再依赖被墙源。 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo --- client/android/build.gradle | 3 +++ client/android/gradle/wrapper/gradle-wrapper.properties | 4 +++- client/android/settings.gradle | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/android/build.gradle b/client/android/build.gradle index d2ffbff..8f2e274 100644 --- a/client/android/build.gradle +++ b/client/android/build.gradle @@ -1,5 +1,8 @@ allprojects { repositories { + // 国内镜像优先(见 settings.gradle 同注);原仓库保留作 fallback。 + maven { url "https://maven.aliyun.com/repository/google" } + maven { url "https://maven.aliyun.com/repository/public" } google() mavenCentral() } diff --git a/client/android/gradle/wrapper/gradle-wrapper.properties b/client/android/gradle/wrapper/gradle-wrapper.properties index 4518132..72153b1 100644 --- a/client/android/gradle/wrapper/gradle-wrapper.properties +++ b/client/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +# 国内镜像:services.gradle.org 被 GFW 墙(SSL 重置),CI runner 在墙内下载发行版会失败。 +# 腾讯云 gradle 镜像提供同一份 zip。见 client/android/{settings,build}.gradle 的 maven 镜像同理。 +distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip diff --git a/client/android/settings.gradle b/client/android/settings.gradle index 60dcd4a..e5263dc 100644 --- a/client/android/settings.gradle +++ b/client/android/settings.gradle @@ -10,6 +10,11 @@ pluginManagement { includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { + // 国内镜像优先(CI runner 在墙内,直连 google/central/gradlePluginPortal 会被 GFW 重置); + // 原仓库保留作 fallback。与 deploy-client.yml 的 GOPROXY/PUB 镜像同理。 + maven { url "https://maven.aliyun.com/repository/google" } + maven { url "https://maven.aliyun.com/repository/public" } + maven { url "https://maven.aliyun.com/repository/gradle-plugin" } google() mavenCentral() gradlePluginPortal() -- 2.52.0