Skip to content

Commit d31dbc7

Browse files
safe1ineclaude
andcommitted
feat(android): 改为打 release 包并配置签名
build.gradle 从环境变量读取 keystore 信息,CI 从 GitHub Secrets 解码 keystore 文件后执行 assembleRelease。 需在仓库 Secrets 配置: ANDROID_KEYSTORE_BASE64 / ANDROID_KEY_ALIAS ANDROID_KEY_PASSWORD / ANDROID_STORE_PASSWORD Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 04b4188 commit d31dbc7

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

.github/workflows/electron-release.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# 打 tag(如 v1.2.3)后自动构建 Windows / macOS 桌面与 Android APK,并发布到 GitHub Release。
22
# 手动运行 workflow 仅上传 Actions Artifact,不创建 Release(便于试打)。
3-
# Android 产物为 debug APK(无需仓库密钥签名);上架 Play 需自行配置 release 签名。
3+
# Android 产物为 release APK,需在仓库 Secrets 配置签名密钥:
4+
# ANDROID_KEYSTORE_BASE64 / ANDROID_KEY_ALIAS / ANDROID_KEY_PASSWORD / ANDROID_STORE_PASSWORD
45

56
name: Desktop & Android Release
67

@@ -221,18 +222,24 @@ jobs:
221222
(cd frontend && ELECTRON=true pnpm run build)
222223
(cd mobile && pnpm exec cap sync)
223224
224-
- name: Build Android APK (debug)
225+
- name: Build Android APK (release)
225226
working-directory: mobile/android
227+
env:
228+
ANDROID_KEYSTORE_PATH: ${{ runner.temp }}/release.jks
229+
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
230+
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
231+
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
226232
run: |
227233
set -euxo pipefail
234+
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > "$ANDROID_KEYSTORE_PATH"
228235
chmod +x gradlew
229-
./gradlew assembleDebug --no-daemon --stacktrace -Dorg.gradle.jvmargs=-Xmx4096m
236+
./gradlew assembleRelease --no-daemon --stacktrace -Dorg.gradle.jvmargs=-Xmx4096m
230237
231238
- name: Stage APK for artifact / release
232239
shell: bash
233240
run: |
234241
mkdir -p mobile/release-apk
235-
cp mobile/android/app/build/outputs/apk/debug/app-debug.apk mobile/release-apk/MonkeyCode-android-arm64.apk
242+
cp mobile/android/app/build/outputs/apk/release/app-release.apk mobile/release-apk/MonkeyCode-android-arm64.apk
236243
ls -lh mobile/release-apk/
237244
238245
- uses: actions/upload-artifact@v4

mobile/android/app/build.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,21 @@ android {
1616
ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~'
1717
}
1818
}
19+
signingConfigs {
20+
release {
21+
if (System.getenv("ANDROID_KEYSTORE_PATH")) {
22+
storeFile file(System.getenv("ANDROID_KEYSTORE_PATH"))
23+
storePassword System.getenv("ANDROID_STORE_PASSWORD")
24+
keyAlias System.getenv("ANDROID_KEY_ALIAS")
25+
keyPassword System.getenv("ANDROID_KEY_PASSWORD")
26+
}
27+
}
28+
}
1929
buildTypes {
2030
release {
2131
minifyEnabled false
2232
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
33+
signingConfig signingConfigs.release
2334
}
2435
}
2536
}

0 commit comments

Comments
 (0)