diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2b4520e51d..f540ce20ab 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -54,10 +54,9 @@ jobs: - name: setup Xcode version (macos) if: runner.os == 'macOS' run: sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer - - name: Force Java 8 (macOS) - if: startsWith(matrix.os, 'macos') + - name: Force Java 11 shell: bash - run: echo "JAVA_HOME=${JAVA_HOME_8_X64}" >> $GITHUB_ENV + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: Store git credentials for all git commands # Forces all git commands to use authenticated https, to prevent throttling. shell: bash diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index a19864449e..32e9617a46 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -248,6 +248,9 @@ jobs: strategy: fail-fast: false steps: + - name: Force Java 11 + shell: bash + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: fetch SDK uses: actions/checkout@v3 with: diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index fa9ae5c37f..b94a5d0c75 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -426,10 +426,9 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} submodules: true - - name: Force Java 8 (macOS) - if: startsWith(matrix.os, 'macos') + - name: Force Java 11 shell: bash - run: echo "JAVA_HOME=${JAVA_HOME_8_X64}" >> $GITHUB_ENV + run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV - name: Add msbuild to PATH (Windows) if: startsWith(matrix.os, 'windows') uses: microsoft/setup-msbuild@v1.1 @@ -1058,11 +1057,11 @@ jobs: run: | echo "device_type=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_device_type)" >> $GITHUB_OUTPUT echo "device=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_ftl_device_list)" >> $GITHUB_OUTPUT - - name: Setup java 8 for test_simulator.py + - name: Setup java 11 for test_simulator.py uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '8' + java-version: '11' - name: Run Android integration tests on Emulator locally timeout-minutes: 180 if: steps.device-info.outputs.device_type == 'virtual' diff --git a/CMakeLists.txt b/CMakeLists.txt index 194618cd77..439ea7d5c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,7 @@ endif() # Set directories needed by the Firebase subprojects # Directory to store generated files. set(FIREBASE_GEN_FILE_DIR ${CMAKE_BINARY_DIR}/generated) + # Directory for any shared scripts. set(FIREBASE_SCRIPT_DIR ${CMAKE_CURRENT_LIST_DIR}) @@ -227,20 +228,30 @@ set(FIRESTORE_INCLUDE_OBJC OFF CACHE BOOL "Disabled for the CPP SDK") set(RE2_BUILD_TESTING OFF CACHE BOOL "") if(FIREBASE_CPP_USE_PRIOR_GRADLE_BUILD) - # Quote meta characters in ${CMAKE_CURRENT_LIST_DIR} so we can - # match it in a regex. - # For example, '/path/with/+meta/char.acters' will become - # '/path/with/\+meta/char\.acters'. - string(REGEX REPLACE - "([][+.*()^])" "\\\\\\1" # Yes, this many \'s is correct. - current_list_dir_regex - "${CMAKE_CURRENT_LIST_DIR}") - # Figure out where app's binary_dir was. - string(REGEX REPLACE - "${current_list_dir_regex}/[^/]+/(.*)" - "${CMAKE_CURRENT_LIST_DIR}/app/\\1" - APP_BINARY_DIR "${FIREBASE_BINARY_DIR}") - + # Gradle now adds a random hash to each separate NDK cmake build. + # Scan the previously built directories to find the one containing app's header. + set(header_to_scan_for "generated/app/src/include/firebase/version.h") + set(prev_build_path "${CMAKE_BINARY_DIR}/../../../../../app/.cxx/${CMAKE_BUILD_TYPE}/*/${CMAKE_ANDROID_ARCH_ABI}") + file(GLOB possible_prev_build_dirs "${prev_build_path}") + # In case there are multiple matches, take the one with the newest timestamp. + set(newest_timestamp 0) + foreach(possible_prev_build_dir IN LISTS possible_prev_build_dirs) + if(IS_DIRECTORY ${possible_prev_build_dir}) + if(EXISTS "${possible_prev_build_dir}/${header_to_scan_for}") + # Check if it's newer than any other files. + file(TIMESTAMP "${possible_prev_build_dir}/${header_to_scan_for}" timestamp "%s") + if(${timestamp} GREATER ${newest_timestamp}) + set(APP_BINARY_DIR ${possible_prev_build_dir}) + set(newest_timestamp ${timestamp}) + endif() + endif() + endif() + endforeach() + if (IS_DIRECTORY "${APP_BINARY_DIR}") + message(STATUS "Found previous Firebase App build in ${APP_BINARY_DIR}") + else() + message(FATAL_ERROR "Could not find previous Firebase App build under ${prev_build_path}") + endif() set(FIRESTORE_SOURCE_DIR ${APP_BINARY_DIR}/external/src/firestore) else() # Run the CMake build logic that will download all the external dependencies. @@ -579,6 +590,7 @@ if(NOT FIREBASE_CPP_USE_PRIOR_GRADLE_BUILD) else() # Add firebase_app as a target on the previously built app. add_library(firebase_app STATIC IMPORTED GLOBAL) + file(MAKE_DIRECTORY "${APP_BINARY_DIR}/generated") file(MAKE_DIRECTORY "${FIREBASE_BINARY_DIR}/generated") set(app_include_dirs diff --git a/analytics/CMakeLists.txt b/analytics/CMakeLists.txt index 6bc41fbc51..84166eb772 100644 --- a/analytics/CMakeLists.txt +++ b/analytics/CMakeLists.txt @@ -16,6 +16,7 @@ # Analytics generates header files for default events, parameters, and # properties based on the iOS SDK, that are used across all platforms. + set(analytics_generated_headers_dir "${FIREBASE_GEN_FILE_DIR}/analytics/src/include/firebase/analytics") set(event_names_header "${analytics_generated_headers_dir}/event_names.h") diff --git a/analytics/build.gradle b/analytics/build.gradle index b1e1705baa..f08ac090fb 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -85,4 +85,5 @@ apply from: "$rootDir/android_build_files/extract_and_dex.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('analytics') + preBuild.dependsOn(':app:build') } diff --git a/analytics/integration_test/build.gradle b/analytics/integration_test/build.gradle index 29621bd352..d4185f86fd 100644 --- a/analytics/integration_test/build.gradle +++ b/analytics/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties b/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/analytics/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/android_build_files/extract_and_dex.gradle b/android_build_files/extract_and_dex.gradle index 2173973339..65541a2177 100644 --- a/android_build_files/extract_and_dex.gradle +++ b/android_build_files/extract_and_dex.gradle @@ -58,15 +58,11 @@ def defineExtractionTasks(String resourceName, String buildType) { outputs.file "$outPro" // Convert the jar format using the dx tool. - String dex_path = "${sdk_dir}/build-tools/${buildToolsVersion}/dx" - if (org.gradle.internal.os.OperatingSystem.current().isWindows()) { - dex_path = "${dex_path}.bat" - } - - commandLine "${dex_path}", - '--dex', - "--output=$dexedJar", - "$buildDir/classes.jar" + String dex_path = "${sdk_dir}/build-tools/${buildToolsVersion}/lib/d8.jar" + commandLine "java", "-cp", "${dex_path}", "com.android.tools.r8.D8", + "$buildDir/classes.jar", + "--output", + "$dexedJar" } // Once the dexed jar has been made, generate a proguard file for it. diff --git a/android_build_files/generate_proguard.gradle b/android_build_files/generate_proguard.gradle index 6bb8e47391..2f78ee7109 100644 --- a/android_build_files/generate_proguard.gradle +++ b/android_build_files/generate_proguard.gradle @@ -72,7 +72,7 @@ def defineGenerateProguardFile(String subproject, String buildType, String nativeBuildDir = project.android.externalNativeBuild.cmake.buildStagingDirectory if (nativeBuildDir == null || nativeBuildDir.isEmpty()) { - nativeBuildDir = file('.cxx/cmake').absolutePath + nativeBuildDir = file('.cxx').absolutePath } // Find the static library that was built. Note that there are multiple diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 8351e562db..9ecf700f29 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/build.gradle b/app/build.gradle index fa2a2aae91..4ceb729572 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 7ee92162e2..31cff3c945 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/integration_test/build.gradle b/app/integration_test/build.gradle index 3cec305c79..50bf9496d3 100644 --- a/app/integration_test/build.gradle +++ b/app/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.analytics.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app/integration_test/gradle/wrapper/gradle-wrapper.properties b/app/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/app/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/app/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 1adbca0ae7..bf078fb04e 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app/test_resources/build.gradle b/app/test_resources/build.gradle index 53c2d0e136..9d3f52d552 100644 --- a/app/test_resources/build.gradle +++ b/app/test_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,6 +33,12 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 6cc09ba1df..ad19bb318f 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/app_check/build.gradle b/app_check/build.gradle index 82ca483612..164c33f38f 100644 --- a/app_check/build.gradle +++ b/app_check/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('app_check') setupDexDependencies(':app_check:app_check_resources') + preBuild.dependsOn(':app:build') } diff --git a/app_check/integration_test/build.gradle b/app_check/integration_test/build.gradle index 4877125e27..417732be4b 100644 --- a/app_check/integration_test/build.gradle +++ b/app_check/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.appcheck.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties b/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/app_check/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 00564f2957..45f99720dd 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/auth/build.gradle b/auth/build.gradle index 7ddc5e4e8d..83106d0567 100644 --- a/auth/build.gradle +++ b/auth/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('auth') setupDexDependencies(':auth:auth_resources') + preBuild.dependsOn(':app:build') } diff --git a/auth/integration_test/build.gradle b/auth/integration_test/build.gradle index 942a05b0d6..4f745af43b 100644 --- a/auth/integration_test/build.gradle +++ b/auth/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.auth.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/auth/integration_test/gradle/wrapper/gradle-wrapper.properties b/auth/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/auth/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/auth/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/build_scripts/android/package.sh b/build_scripts/android/package.sh index 30d98a52dd..8c0e6ff99b 100755 --- a/build_scripts/android/package.sh +++ b/build_scripts/android/package.sh @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -ex # Copyright 2020 Google LLC @@ -34,10 +34,12 @@ mkdir -p "${destpath}/libs/android" cd "${sourcepath}" # Make sure we only copy the libraries in product_list (specified in packaging.conf) for product in ${product_list[*]}; do - if [[ ! -d "${product}/build/intermediates/cmake/release/obj" ]]; then + if [[ ! -d "${product}/build/intermediates/cxx" ]]; then continue fi - dir="${product}/build/intermediates/cmake/release/obj" + # Get the most recent matching intermediate files directory. + dir=$(ls -td "${product}"/build/intermediates/cxx/Rel*/*/obj | head -1) + echo "${dir}" for cpudir in "${dir}"/*; do cpu=$(basename ${cpudir}) libsrc="${sourcepath}/${cpudir}/libfirebase_${product}.a" @@ -49,7 +51,7 @@ for product in ${product_list[*]}; do cp -f "${sourcepath}/${product}/build/Release/${product}.pro" "${destpath}/libs/android/" # Copy the special messaging aar file, but only if messaging was built. if [[ "${product}" == "messaging" ]]; then - cp -f "${sourcepath}/messaging/messaging_java/build/outputs/aar/messaging_java"*.aar "${destpath}/libs/android/firebase_messaging_cpp.aar" + cp -f "${sourcepath}/messaging/messaging_java/build/outputs/aar/messaging_java-release"*.aar "${destpath}/libs/android/firebase_messaging_cpp.aar" fi done cd "${origpath}" diff --git a/database/build.gradle b/database/build.gradle index 51cf8c0dfa..f7281608cc 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('database') setupDexDependencies(':database:database_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 4cfb882e01..7a91b37b52 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,6 +33,12 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/database/integration_test/build.gradle b/database/integration_test/build.gradle index 86907f840f..4401b08894 100644 --- a/database/integration_test/build.gradle +++ b/database/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.database.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/database/integration_test/gradle/wrapper/gradle-wrapper.properties b/database/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/database/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/database/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/dynamic_links/build.gradle b/dynamic_links/build.gradle index 7a8fee4af8..b675bf7575 100644 --- a/dynamic_links/build.gradle +++ b/dynamic_links/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,5 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('dynamic_links') + preBuild.dependsOn(':app:build') } diff --git a/dynamic_links/integration_test/build.gradle b/dynamic_links/integration_test/build.gradle index 92f1978cad..e523684703 100644 --- a/dynamic_links/integration_test/build.gradle +++ b/dynamic_links/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.dynamiclinks.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties b/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/dynamic_links/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/firestore/build.gradle b/firestore/build.gradle index 4c3d7c0800..582389d37a 100644 --- a/firestore/build.gradle +++ b/firestore/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -49,7 +49,7 @@ android { defaultConfig { // Jelly Bean is the minimum supported version needed by Firebase. - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -87,4 +87,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('firestore') setupDexDependencies(':firestore:firestore_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index 93439900aa..fd10863991 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/firestore/integration_test/build.gradle b/firestore/integration_test/build.gradle index 37efea8216..64f64b5b8b 100644 --- a/firestore/integration_test/build.gradle +++ b/firestore/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties b/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/firestore/integration_test_internal/build.gradle b/firestore/integration_test_internal/build.gradle index f1bb9b4f3b..da56c2940b 100644 --- a/firestore/integration_test_internal/build.gradle +++ b/firestore/integration_test_internal/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -63,7 +63,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.firestore.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties b/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/integration_test_internal/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/functions/build.gradle b/functions/build.gradle index bdecc2819f..b2c12f845c 100644 --- a/functions/build.gradle +++ b/functions/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,6 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('functions') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/functions/integration_test/build.gradle b/functions/integration_test/build.gradle index d773468cb1..a78ddfbb4c 100644 --- a/functions/integration_test/build.gradle +++ b/functions/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.functions.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/functions/integration_test/gradle/wrapper/gradle-wrapper.properties b/functions/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/functions/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/functions/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/gma/build.gradle b/gma/build.gradle index bd0bab6803..e793294f8c 100644 --- a/gma/build.gradle +++ b/gma/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('gma') setupDexDependencies(':gma:gma_resources') + preBuild.dependsOn(':app:build') } diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index bd1a8144c3..f20f9f1bad 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,11 +33,17 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/gma/integration_test/build.gradle b/gma/integration_test/build.gradle index 58cdfd4a82..0e78ade8b9 100644 --- a/gma/integration_test/build.gradle +++ b/gma/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.admob.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/gma/integration_test/gradle/wrapper/gradle-wrapper.properties b/gma/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/gma/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/gma/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 39e18027f1..78b9533282 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/installations/build.gradle b/installations/build.gradle index ba4d234524..e5eb114a92 100644 --- a/installations/build.gradle +++ b/installations/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -84,4 +84,5 @@ apply from: "$rootDir/android_build_files/android_abis.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('installations') + preBuild.dependsOn(':app:build') } diff --git a/installations/integration_test/build.gradle b/installations/integration_test/build.gradle index 9c501b9e25..daad7ca6e1 100644 --- a/installations/integration_test/build.gradle +++ b/installations/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.fis.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/installations/integration_test/gradle/wrapper/gradle-wrapper.properties b/installations/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/installations/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/installations/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/messaging/build.gradle b/messaging/build.gradle index 6068dfb54c..0b8f2f1e71 100644 --- a/messaging/build.gradle +++ b/messaging/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/extract_and_dex.gradle" apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('messaging') + preBuild.dependsOn(':app:build') } diff --git a/messaging/integration_test/build.gradle b/messaging/integration_test/build.gradle index 9bbc92c059..7f274e868b 100644 --- a/messaging/integration_test/build.gradle +++ b/messaging/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.messaging.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties b/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/messaging/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index a268401ee7..ea8bfacd1d 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' // This uses Flatbuffers at 1.9 because the 1.10 version added a feature // that requires using a newer version of the JDK and at least Android N. // This has already been fixed at head, but a tagged release is not yet @@ -38,13 +38,15 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' defaultConfig { - minSdkVersion 23 + targetSdkVersion 34 + minSdkVersion 24 } sourceSets { diff --git a/messaging/src/android/java/LibraryManifest.xml b/messaging/src/android/java/LibraryManifest.xml index aad8452455..844b044ae2 100644 --- a/messaging/src/android/java/LibraryManifest.xml +++ b/messaging/src/android/java/LibraryManifest.xml @@ -4,7 +4,7 @@ diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 5a169fff5c..e684bd2534 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -633,6 +633,7 @@ code. ## Release Notes ### Upcoming Release - Changes + - General (Android): Updated minSdkVersion to 24. - Messaging: Changed SetListener to send the last token received before the listener was set. - Remote Config: Fixed ConfigInfo fields to default to 0 when diff --git a/remote_config/build.gradle b/remote_config/build.gradle index 720d8c770e..79abec6dba 100644 --- a/remote_config/build.gradle +++ b/remote_config/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,5 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('remote_config') setupDexDependencies(':remote_config:remote_config_resources') + preBuild.dependsOn(':app:build') } diff --git a/remote_config/integration_test/build.gradle b/remote_config/integration_test/build.gradle index 5c669ad9cc..66e0a3e1e9 100644 --- a/remote_config/integration_test/build.gradle +++ b/remote_config/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.android.remoteconfig.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties b/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/remote_config/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index 9a766490da..be52478351 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,10 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { diff --git a/scripts/gha/build_testapps.py b/scripts/gha/build_testapps.py index a4f8fd8fd3..867202f71e 100644 --- a/scripts/gha/build_testapps.py +++ b/scripts/gha/build_testapps.py @@ -59,13 +59,11 @@ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-8-latest/Contents/Home ANDROID_HOME=/Users/user_name/Library/Android/sdk - ANDROID_SDK_HOME=/Users/user_name/Library/Android/sdk ANDROID_NDK_HOME=/Users/user_name/Library/Android/sdk/ndk-bundle Or on Linux: JAVA_HOME=/usr/local/buildtools/java/jdk/ ANDROID_HOME=~/Android/Sdk - ANDROID_SDK_HOME=~/Android/Sdk ANDROID_NDK_HOME=~/Android/Sdk/ndk If using this tool frequently, you will likely find it convenient to @@ -97,7 +95,6 @@ # Environment variables _JAVA_HOME = "JAVA_HOME" _ANDROID_HOME = "ANDROID_HOME" -_ANDROID_SDK_HOME = "ANDROID_SDK_HOME" _NDK_ROOT = "NDK_ROOT" _ANDROID_NDK_HOME = "ANDROID_NDK_HOME" @@ -538,12 +535,8 @@ def _validate_android_environment_variables(): android_home = os.environ.get(_ANDROID_HOME) if not os.environ.get(_JAVA_HOME): logging.warning("%s not set", _JAVA_HOME) - if not os.environ.get(_ANDROID_SDK_HOME): - if android_home: # Use ANDROID_HOME as backup for ANDROID_SDK_HOME - os.environ[_ANDROID_SDK_HOME] = android_home - logging.info("%s not found, using %s", _ANDROID_SDK_HOME, _ANDROID_HOME) - else: - logging.warning("Missing: %s and %s", _ANDROID_SDK_HOME, _ANDROID_HOME) + if not android_home: + logging.warning("Missing ANDROID_HOME: %s", _ANDROID_HOME) # Different environments may have different NDK env vars specified. We look # for these, in this order, and set the others to the first found. # If none are set, we check the default location for the ndk. diff --git a/scripts/gha/integration_testing/gameloop_android/build.gradle b/scripts/gha/integration_testing/gameloop_android/build.gradle index dfcc273d9e..e6b5bb1ca5 100644 --- a/scripts/gha/integration_testing/gameloop_android/build.gradle +++ b/scripts/gha/integration_testing/gameloop_android/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties b/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties index 82458a4184..b9c7d0a07e 100644 --- a/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties +++ b/scripts/gha/integration_testing/gameloop_android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/scripts/gha/ui_testing/uitest_android/app/build.gradle b/scripts/gha/ui_testing/uitest_android/app/build.gradle index 8b765ec0fd..f9a4ee5282 100644 --- a/scripts/gha/ui_testing/uitest_android/app/build.gradle +++ b/scripts/gha/ui_testing/uitest_android/app/build.gradle @@ -17,11 +17,11 @@ apply plugin: 'com.android.application' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' defaultConfig { applicationId "com.google.firebase.uitest" - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/scripts/gha/ui_testing/uitest_android/build.gradle b/scripts/gha/ui_testing/uitest_android/build.gradle index 2bd3427703..2de22e71e1 100644 --- a/scripts/gha/ui_testing/uitest_android/build.gradle +++ b/scripts/gha/ui_testing/uitest_android/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,7 +33,7 @@ allprojects { } ext { - buildToolsVersion = "28.0.3" + buildToolsVersion = "32.0.0" androidxLibVersion = "1.0.0" coreVersion = "1.3.0-alpha04" extJUnitVersion = "1.1.2-alpha04" diff --git a/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties b/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties index a802084a46..d95d870842 100644 --- a/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties +++ b/scripts/gha/ui_testing/uitest_android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/storage/build.gradle b/storage/build.gradle index ebc6e14f12..6efb3b7169 100644 --- a/storage/build.gradle +++ b/storage/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.4.2' } } allprojects { @@ -33,7 +33,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -86,4 +86,6 @@ apply from: "$rootDir/android_build_files/generate_proguard.gradle" project.afterEvaluate { generateProguardFile('storage') setupDexDependencies(':storage:storage_resources') + preBuild.dependsOn(':app:build') + preBuild.dependsOn(':auth:build') } diff --git a/storage/integration_test/build.gradle b/storage/integration_test/build.gradle index 2aa85d28e2..2e3e458316 100644 --- a/storage/integration_test/build.gradle +++ b/storage/integration_test/build.gradle @@ -20,8 +20,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.0.1' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } @@ -37,12 +37,12 @@ apply plugin: 'com.android.application' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -55,7 +55,7 @@ android { defaultConfig { applicationId 'com.google.firebase.cpp.storage.testapp' - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName '1.0' diff --git a/storage/integration_test/gradle/wrapper/gradle-wrapper.properties b/storage/integration_test/gradle/wrapper/gradle-wrapper.properties index 65340c1b59..2eb04a3b17 100644 --- a/storage/integration_test/gradle/wrapper/gradle-wrapper.properties +++ b/storage/integration_test/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 12282470b4..1f83f5613c 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' } } allprojects { @@ -33,11 +33,16 @@ apply plugin: 'com.android.library' android { compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } compileSdkVersion 34 + buildToolsVersion '32.0.0' + defaultConfig { + minSdkVersion 24 + targetSdkVersion 34 + } sourceSets { main { manifest.srcFile '../../android_build_files/AndroidManifest.xml' diff --git a/testing/build.gradle b/testing/build.gradle index 40b236689c..06d5e0b58b 100644 --- a/testing/build.gradle +++ b/testing/build.gradle @@ -18,8 +18,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.flatbuffers:flatbuffers-java:1.12.0' } } @@ -36,7 +36,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 34 ndkPath System.getenv('ANDROID_NDK_HOME') - buildToolsVersion '30.0.2' + buildToolsVersion '32.0.0' sourceSets { main { @@ -49,7 +49,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion 34 versionCode 1 versionName "1.0"