安卓低版本兼容
This commit is contained in:
@@ -34,8 +34,18 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Android TV APK
|
||||
name: Build Android TV APK (${{ matrix.variant }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- variant: standard
|
||||
min_sdk: '23'
|
||||
label: android6plus
|
||||
- variant: compat
|
||||
min_sdk: '21'
|
||||
label: android5plus
|
||||
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
@@ -80,6 +90,7 @@ jobs:
|
||||
APP_NAME: ${{ inputs.app_name }}
|
||||
VERSION_NAME: ${{ inputs.version_name }}
|
||||
VERSION_CODE: ${{ inputs.version_code }}
|
||||
MIN_SDK: ${{ matrix.min_sdk }}
|
||||
ANDROID_KEYSTORE_PATH: /tmp/android-tv-release.keystore
|
||||
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
@@ -89,24 +100,25 @@ jobs:
|
||||
-PBASE_URL="$BASE_URL" \
|
||||
-PAPP_NAME="$APP_NAME" \
|
||||
-PVERSION_NAME="$VERSION_NAME" \
|
||||
-PVERSION_CODE="$VERSION_CODE"
|
||||
-PVERSION_CODE="$VERSION_CODE" \
|
||||
-PMIN_SDK="$MIN_SDK"
|
||||
|
||||
- name: Collect APK artifacts
|
||||
run: |
|
||||
mkdir -p /tmp/android-tv-apks
|
||||
cp apps/android-tv/app/build/outputs/apk/debug/app-debug.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-debug.apk"
|
||||
cp apps/android-tv/app/build/outputs/apk/debug/app-debug.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-${{ matrix.label }}-debug.apk"
|
||||
if [ -f apps/android-tv/app/build/outputs/apk/release/app-release.apk ]; then
|
||||
cp apps/android-tv/app/build/outputs/apk/release/app-release.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-release-signed.apk"
|
||||
cp apps/android-tv/app/build/outputs/apk/release/app-release.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-${{ matrix.label }}-release-signed.apk"
|
||||
fi
|
||||
if [ -f apps/android-tv/app/build/outputs/apk/release/app-release-unsigned.apk ]; then
|
||||
cp apps/android-tv/app/build/outputs/apk/release/app-release-unsigned.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-release-unsigned.apk"
|
||||
cp apps/android-tv/app/build/outputs/apk/release/app-release-unsigned.apk "/tmp/android-tv-apks/moontvplus-tv-${{ inputs.version_name }}-${{ matrix.label }}-release-unsigned.apk"
|
||||
fi
|
||||
ls -lh /tmp/android-tv-apks
|
||||
|
||||
- name: Upload APK artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: moontvplus-android-tv-${{ inputs.version_name }}
|
||||
name: moontvplus-android-tv-${{ inputs.version_name }}-${{ matrix.label }}
|
||||
path: /tmp/android-tv-apks/*.apk
|
||||
if-no-files-found: error
|
||||
retention-days: 30
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- `APP_NAME`: Android TV 桌面显示名称
|
||||
- `VERSION_NAME`: APK 版本名
|
||||
- `VERSION_CODE`: APK 版本号,整数
|
||||
- `MIN_SDK`: 最低 Android API,标准版为 `23`(Android 6+),兼容版为 `21`(Android 5+)
|
||||
|
||||
App 启动时会自动打开:
|
||||
|
||||
@@ -17,6 +18,7 @@ BASE_URL 去掉末尾 / 后 + /tv
|
||||
|
||||
## 特性
|
||||
|
||||
- GitHub Actions 默认构建两个版本:`android6plus` 标准版和 `android5plus` 兼容版
|
||||
- 锁定横屏
|
||||
- 支持 Android TV Launcher
|
||||
- 允许 HTTP 明文访问
|
||||
|
||||
@@ -12,6 +12,7 @@ val rawBaseUrl = propOrEnv("BASE_URL", "BASE_URL", "http://192.168.1.10:3000")
|
||||
val appDisplayName = propOrEnv("APP_NAME", "APP_NAME", "MoonTVPlus TV")
|
||||
val versionNameValue = propOrEnv("VERSION_NAME", "VERSION_NAME", "1.0.0")
|
||||
val versionCodeValue = propOrEnv("VERSION_CODE", "VERSION_CODE", "1").toIntOrNull() ?: 1
|
||||
val minSdkValue = propOrEnv("MIN_SDK", "MIN_SDK", "23").toIntOrNull() ?: 23
|
||||
|
||||
fun escapeJavaString(value: String): String = value
|
||||
.replace("\\", "\\\\")
|
||||
@@ -30,7 +31,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.moontvplus.tv"
|
||||
minSdk = 23
|
||||
minSdk = minSdkValue
|
||||
targetSdk = 35
|
||||
versionCode = versionCodeValue
|
||||
versionName = versionNameValue
|
||||
|
||||
Reference in New Issue
Block a user