diff --git a/.github/workflows/android-apk.yml b/.github/workflows/android-apk.yml index af8a748..949fe52 100644 --- a/.github/workflows/android-apk.yml +++ b/.github/workflows/android-apk.yml @@ -34,12 +34,10 @@ jobs: channel: stable cache: true - - name: Recreate Android platform project - working-directory: mobile_agent - run: | - rm -rf android - flutter create --platforms=android --project-name mobile_agent --org com.mobilecode . - python3 tooling/prepare_android_project.py + - name: Prepare checked-in Android platform project + working-directory: mobile_agent + run: | + python3 tooling/prepare_android_project.py - name: Resolve Flutter dependencies working-directory: mobile_agent @@ -115,7 +113,7 @@ jobs: if [ -n "$MOBILECODE_GITHUB_OAUTH_REDIRECT_URI" ]; then DART_DEFINES+=(--dart-define=MOBILECODE_GITHUB_OAUTH_REDIRECT_URI="$MOBILECODE_GITHUB_OAUTH_REDIRECT_URI") fi - flutter build apk --release --target lib/main.dart "${DART_DEFINES[@]}" + flutter build apk --release --flavor pure --dart-define=MOBILECODE_BUILD_CHANNEL=pure --target lib/main.dart "${DART_DEFINES[@]}" - name: Stage APK id: stage_apk @@ -124,7 +122,7 @@ jobs: run: | mkdir -p artifacts APK_PATH="artifacts/mobilecode-${RELEASE_TAG}.apk" - cp mobile_agent/build/app/outputs/flutter-apk/app-release.apk "$APK_PATH" + cp mobile_agent/build/app/outputs/flutter-apk/app-pure-release.apk "$APK_PATH" echo "apk_path=$APK_PATH" >> "$GITHUB_OUTPUT" - name: Upload workflow artifact diff --git a/.github/workflows/mobile-app-release.yml b/.github/workflows/mobile-app-release.yml index 297dcef..f787cb6 100644 --- a/.github/workflows/mobile-app-release.yml +++ b/.github/workflows/mobile-app-release.yml @@ -45,11 +45,9 @@ jobs: channel: stable cache: true - - name: Recreate Android platform project + - name: Prepare checked-in Android platform project working-directory: mobile_agent run: | - rm -rf android - flutter create --platforms=android --project-name mobile_agent --org com.mobilecode . python3 tooling/prepare_android_project.py - name: Resolve Flutter dependencies @@ -147,7 +145,7 @@ jobs: if [ -n "$MOBILECODE_GITHUB_OAUTH_REDIRECT_URI" ]; then DART_DEFINES+=(--dart-define=MOBILECODE_GITHUB_OAUTH_REDIRECT_URI="$MOBILECODE_GITHUB_OAUTH_REDIRECT_URI") fi - flutter build apk --release --target lib/main.dart "${DART_DEFINES[@]}" + flutter build apk --release --flavor pure --dart-define=MOBILECODE_BUILD_CHANNEL=pure --target lib/main.dart "${DART_DEFINES[@]}" - name: Stage APK id: stage_apk @@ -156,7 +154,7 @@ jobs: run: | mkdir -p artifacts APK_PATH="artifacts/mobilecode-${RELEASE_TAG}.apk" - cp mobile_agent/build/app/outputs/flutter-apk/app-release.apk "$APK_PATH" + cp mobile_agent/build/app/outputs/flutter-apk/app-pure-release.apk "$APK_PATH" echo "apk_path=$APK_PATH" >> "$GITHUB_OUTPUT" - name: Upload APK workflow artifact diff --git a/mobile_agent/tooling/prepare_android_project.py b/mobile_agent/tooling/prepare_android_project.py index 8bf5635..89bdb16 100644 --- a/mobile_agent/tooling/prepare_android_project.py +++ b/mobile_agent/tooling/prepare_android_project.py @@ -142,6 +142,19 @@ def main() -> None: gradle_text = re.sub(r'namespace\s*=\s*"[^"]+"', 'namespace = "com.mobilecode.app"', gradle_text, count=1) gradle_text = re.sub(r'applicationId\s*=\s*"[^"]+"', 'applicationId = "com.mobilecode.app"', gradle_text, count=1) gradle_text = gradle_text.replace('minSdk = flutter.minSdkVersion', 'minSdk = 24') + if 'isCoreLibraryDesugaringEnabled = true' not in gradle_text: + gradle_text = gradle_text.replace( + ' compileOptions {\n', + ' compileOptions {\n' + ' isCoreLibraryDesugaringEnabled = true\n', + 1, + ) + if 'coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:' not in gradle_text: + gradle_text += ( + '\n\ndependencies {\n' + ' coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")\n' + '}\n' + ) if 'import java.util.Properties' not in gradle_text: gradle_text = ( 'import java.util.Properties\n\n'