diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index df6493cab5..2b4520e51d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -54,7 +54,10 @@ 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') + shell: bash + run: echo "JAVA_HOME=${JAVA_HOME_8_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 94224b94f1..041ef50bb2 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -32,9 +32,9 @@ env: demumbleVer: "df938e45c2b0e064fb5323d88b692d03b451d271" # Use SHA256 for hashing files. hashCommand: "sha256sum" - # Xcode version 14.1 is the version we build the SDK with. + # Xcode version 15.1 is the version we build the SDK with. # Our MacOS runners will use the version in /Applications/Xcode_${xcodeVersion}.app - xcodeVersion: "14.1" + xcodeVersion: "15.1" # LLVM version with ARM MachO support has no version number yet. llvmVer: "5f187f0afaad33013ba03454c4749d99b1362534" GITHUB_TOKEN: ${{ github.token }} @@ -79,13 +79,13 @@ jobs: if: ${{ github.event.inputs.downloadPublicVersion == '' && github.event.inputs.downloadPreviousRun == '' }} strategy: matrix: - os: [ubuntu-20.04, macos-12] + os: [ubuntu-20.04, macos-13] include: - os: ubuntu-20.04 tools_platform: linux # Binutils 2.35.1 released Sep 19, 2020 binutils_version: "2.35.1" - - os: macos-12 + - os: macos-13 tools_platform: darwin # Binutils 2.35.1 released Sep 19, 2020 binutils_version: "2.35.1" @@ -185,7 +185,7 @@ jobs: build_and_package_ios_tvos: name: build-and-package-ios-tvos - runs-on: macos-12 + runs-on: macos-13 if: ${{ github.event.inputs.downloadPublicVersion == '' && github.event.inputs.downloadPreviousRun == '' }} steps: - name: Store git credentials for all git commands @@ -305,7 +305,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-latest, ubuntu-20.04, macos-12] + os: [windows-latest, ubuntu-20.04, macos-13] build_type: ["Release", "Debug"] architecture: ["x64", "x86", "arm64"] msvc_runtime: ["static", "dynamic"] @@ -325,7 +325,7 @@ jobs: vcpkg_triplet_suffix: "linux" additional_build_flags: "" sdk_platform: "linux" - - os: macos-12 + - os: macos-13 vcpkg_triplet_suffix: "osx" additional_build_flags: "--target_format libraries" sdk_platform: "darwin" @@ -333,13 +333,13 @@ jobs: exclude: - os: windows-latest linux_abi: "c++11" - - os: macos-12 + - os: macos-13 architecture: "x86" - - os: macos-12 + - os: macos-13 msvc_runtime: "dynamic" - - os: macos-12 + - os: macos-13 linux_abi: "c++11" - - os: macos-12 + - os: macos-13 build_type: "Debug" - os: ubuntu-20.04 msvc_runtime: "dynamic" @@ -492,7 +492,7 @@ jobs: suffix: '-x64-Debug-dynamic' runs_on_platform: ubuntu-20.04 - sdk_platform: darwin - runs_on_platform: macos-12 + runs_on_platform: macos-13 exclude: - sdk_platform: windows suffix: '' diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 9b057088fa..04562eb635 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -72,10 +72,10 @@ jobs: # msvc_runtime excludes - os: ubuntu-20.04 msvc_runtime: "dynamic" - - os: macos-12 + - os: macos-13 msvc_runtime: "dynamic" # architecture excluees - - os: macos-12 + - os: macos-13 architecture: "x86" # Xcode excludes -- allow only one on osx and linux - os: ubuntu-20.04 diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index e1ab1d8cda..fa9ae5c37f 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -21,7 +21,7 @@ on: required: true operating_systems: description: 'CSV of VMs to run on' - default: 'ubuntu-20.04,windows-latest,macos-12' + default: 'ubuntu-20.04,windows-latest,macos-13' required: true desktop_ssl_variants: description: 'CSV of desktop SSL variants to use' @@ -47,7 +47,7 @@ env: triggerLabelFull: "tests-requested: full" triggerLabelQuick: "tests-requested: quick" pythonVersion: '3.8' - xcodeVersion: '14.1' + xcodeVersion: '15.1' artifactRetentionDays: 2 GITHUB_TOKEN: ${{ github.token }} # All self-hosted ARM Mac runners should have this label. Due to how @@ -204,7 +204,7 @@ jobs: # at 3am PST/4am PDT. Running firestore desktop integration test aginst tip-of-tree ios repo echo "::warning ::Running against Firestore tip-of-tree" matrix_platform="Desktop" - matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "ubuntu-20.04,macos-12") + matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "ubuntu-20.04,macos-13") else matrix_platform=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k platform -o "${{github.event.inputs.platforms}}" --apis ${apis} ) matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "${{github.event.inputs.operating_systems}}") @@ -271,7 +271,7 @@ jobs: - os: ubuntu-20.04 arch: arm64 # Do not attempt to use x86 on Mac. - - os: macos-12 + - os: macos-13 arch: x86 # Until we support building openssl from source, we can't use the # system's openssl when cross-compiling, except on Linux. Builds all @@ -280,7 +280,7 @@ jobs: - os: windows-latest ssl_variant: openssl arch: x86 - - os: macos-12 + - os: macos-13 ssl_variant: openssl arch: arm64 steps: @@ -292,6 +292,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install Desktop SDK & integration tests prerequisites uses: nick-invision/retry@v2 with: @@ -420,6 +426,10 @@ jobs: with: ref: ${{needs.check_and_prepare.outputs.github_ref}} submodules: true + - name: Force Java 8 (macOS) + if: startsWith(matrix.os, 'macos') + shell: bash + run: echo "JAVA_HOME=${JAVA_HOME_8_X64}" >> $GITHUB_ENV - name: Add msbuild to PATH (Windows) if: startsWith(matrix.os, 'windows') uses: microsoft/setup-msbuild@v1.1 @@ -522,7 +532,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-12] + os: [macos-13] steps: - uses: actions/checkout@v3 with: @@ -532,6 +542,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install iOS SDK & integration tests prerequisites uses: nick-invision/retry@v2 with: @@ -621,7 +637,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-12] + os: [macos-13] steps: - uses: actions/checkout@v3 with: @@ -631,6 +647,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install tvOS SDK & integration tests prerequisites uses: nick-invision/retry@v2 with: @@ -732,7 +754,7 @@ jobs: - os: ubuntu-20.04 arch: arm64 # Do not attempt to use x86 on Mac. - - os: macos-12 + - os: macos-13 arch: x86 # Until we support building openssl from source, we can't use the # system's openssl when cross-compiling, except on Linux. Builds all @@ -744,7 +766,7 @@ jobs: # Custom for this matrix: MacOS GitHub-hosted runner cannot test arm64 # code. Exclude that scenario from running here; it will run in # test_desktop_custom_runners. - - os: macos-12 + - os: macos-13 arch: arm64 steps: - uses: actions/checkout@v3 @@ -759,6 +781,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install prerequisites for testing uses: nick-invision/retry@v2 with: @@ -843,7 +871,7 @@ jobs: name: test-desktop-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.ssl_variant }}-custom-runner needs: [check_and_prepare, build_desktop] runs-on: [self-hosted, firebase-cpp, '${{ matrix.runner_label }}'] - if: contains(needs.check_and_prepare.outputs.matrix_platform, 'Desktop') && contains(needs.check_and_prepare.outputs.matrix_arch_combined, 'arm64') && contains(needs.check_and_prepare.outputs.matrix_os, 'macos-12') && needs.check_and_prepare.outputs.apis != '' && !cancelled() + if: contains(needs.check_and_prepare.outputs.matrix_platform, 'Desktop') && contains(needs.check_and_prepare.outputs.matrix_arch_combined, 'arm64') && contains(needs.check_and_prepare.outputs.matrix_os, 'macos-13') && needs.check_and_prepare.outputs.apis != '' && !cancelled() strategy: fail-fast: false matrix: @@ -858,15 +886,15 @@ jobs: - os: windows-latest runner_label: ${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }} # Don't run x86 tests on any Mac runner. - - os: macos-12 + - os: macos-13 arch: x86 # Don't run x64 tests on the Mac arm64 runner. - - os: macos-12 + - os: macos-13 arch: x64 runner_label: ${{ needs.check_and_prepare.outputs.runner_label_macos_arm64 }} # Until we support building openssl from source, we can't link to system # openssl when cross-compiling, so exclude openssl from mac arm64 testing. - - os: macos-12 + - os: macos-13 arch: arm64 ssl_variant: openssl steps: @@ -911,7 +939,7 @@ jobs: ${{ secrets.TEST_SECRET }} EOF - name: Run Desktop integration tests on M1 Mac - if: ${{ matrix.os == 'macos-12' && matrix.arch == 'arm64' && matrix.runner_label == needs.check_and_prepare.outputs.runner_label_macos_arm64 }} + if: ${{ matrix.os == 'macos-13' && matrix.arch == 'arm64' && matrix.runner_label == needs.check_and_prepare.outputs.runner_label_macos_arm64 }} shell: bash run: | # This is an M1 Mac GitHub self-hosted runner. @@ -1036,7 +1064,7 @@ jobs: distribution: 'temurin' java-version: '8' - name: Run Android integration tests on Emulator locally - timeout-minutes: 150 + timeout-minutes: 180 if: steps.device-info.outputs.device_type == 'virtual' run: | python scripts/gha/test_simulator.py --testapp_dir testapps \ @@ -1047,7 +1075,7 @@ jobs: - id: ftl_test if: steps.device-info.outputs.device_type == 'ftl' uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 - timeout-minutes: 120 + timeout-minutes: 240 with: credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} testapp_dir: testapps @@ -1120,7 +1148,7 @@ jobs: test_ios: name: test-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }} needs: [check_and_prepare, build_ios] - runs-on: macos-12 + runs-on: macos-13 if: contains(needs.check_and_prepare.outputs.matrix_platform, 'iOS') && needs.check_and_prepare.outputs.apis != '' && !cancelled() strategy: fail-fast: false @@ -1134,7 +1162,7 @@ jobs: test_type: "uitest" - ios_device: "ios_latest" test_type: "uitest" - build_os: [macos-12] + build_os: [macos-13] steps: - uses: actions/checkout@v3 with: @@ -1148,6 +1176,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install prerequisites for testing uses: nick-invision/retry@v2 with: @@ -1186,8 +1220,27 @@ jobs: if: steps.device-info.outputs.device_type == 'virtual' && contains(needs.check_and_prepare.outputs.apis, 'firestore') run: | firebase emulators:start --only firestore --project demo-example & + - name: Create keychain (macOS Simulator) + if: ${{ runner.os == 'macOS' && steps.device-info.outputs.device_type == 'virtual'}} + shell: bash + run: | + echo "Creating temporary keychain" + # Create a local keychain on Mac: + # Clean up previous temp keychain, if any. + security delete-keychain tmp-keychain 2> /dev/null || true + # Create temp keychain file and unlock it. + # (Avoid passing in -p on command line by using interactive mode.) + # Also set it to default settings so there is no unlock timeout. + security -i < "testapps/test-results-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }}.log.json" fi + - name: Delete keychain (macOS Simulator) + if: ${{ always() && runner.os == 'macOS' && steps.device-info.outputs.device_type == 'virtual' }} + shell: bash + run: | + # Remove the local keychain on Mac: + # Set back to the default login keychain. + security list-keychains -d user -s login.keychain + # Delete the temp keychain, if it exists. + security delete-keychain tmp-keychain || true - name: Upload iOS test results artifact if: ${{ !cancelled() }} uses: actions/upload-artifact@v3 @@ -1264,13 +1326,13 @@ jobs: test_tvos: name: test-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }} needs: [check_and_prepare, build_tvos] - runs-on: macos-12 + runs-on: macos-13 if: contains(needs.check_and_prepare.outputs.matrix_platform, 'tvOS') && needs.check_and_prepare.outputs.apis != '' && !cancelled() strategy: fail-fast: false matrix: tvos_device: ${{ fromJson(needs.check_and_prepare.outputs.tvos_device) }} - build_os: [macos-12] + build_os: [macos-13] steps: - uses: actions/checkout@v3 with: @@ -1284,6 +1346,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ env.pythonVersion }} + - name: setup default Xcode version (macos) + if: ${{ runner.os == 'macOS' }} + run: | + sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer + # Remove default Xcode version to prevent the wrong SDK from being used. + rm -rf /Applications/Xcode.app - name: Install prerequisites for testing uses: nick-invision/retry@v2 with: @@ -1313,8 +1381,27 @@ jobs: if: contains(needs.check_and_prepare.outputs.apis, 'firestore') run: | firebase emulators:start --only firestore --project demo-example & + - name: Create keychain (macOS Simulator) + if: ${{ runner.os == 'macOS' && steps.device-info.outputs.device_type == 'virtual'}} + shell: bash + run: | + echo "Creating temporary keychain" + # Create a local keychain on Mac: + # Clean up previous temp keychain, if any. + security delete-keychain tmp-keychain 2> /dev/null || true + # Create temp keychain file and unlock it. + # (Avoid passing in -p on command line by using interactive mode.) + # Also set it to default settings so there is no unlock timeout. + security -i < "testapps/test-results-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }}.log.json" fi + - name: Delete keychain (macOS Simulator) + if: ${{ always() && runner.os == 'macOS' && steps.device-info.outputs.device_type == 'virtual' }} + shell: bash + run: | + # Remove the local keychain on Mac: + # Set back to the default login keychain. + security list-keychains -d user -s login.keychain + # Delete the temp keychain, if it exists. + security delete-keychain tmp-keychain || true - name: Upload tvOS test results artifact if: ${{ !cancelled() }} uses: actions/upload-artifact@v3 diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 63cade37e6..ce025f1adb 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -41,7 +41,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'macos-12' ] + os: [ 'macos-13' ] xcode_version: ${{ fromJson(needs.prepare_matrix.outputs.matrix_xcode_version) }} steps: - name: Store git credentials for all git commands diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index e285d77bdd..c898e87fa9 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -25,7 +25,7 @@ env: jobs: update_dependencies: name: update-deps - runs-on: macos-12 + runs-on: macos-13 steps: - name: Get token for firebase-workflow-trigger uses: tibdex/github-app-token@v1 diff --git a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj index 61b2f0a179..188abc9833 100644 --- a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj @@ -407,7 +407,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -444,7 +444,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/app/integration_test/integration_test.xcodeproj/project.pbxproj b/app/integration_test/integration_test.xcodeproj/project.pbxproj index c2f33244b9..33f0604e0d 100644 --- a/app/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app/integration_test/integration_test.xcodeproj/project.pbxproj @@ -242,7 +242,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -279,7 +279,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj index f44ee13bf7..3dc10de9b1 100644 --- a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj @@ -354,7 +354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -391,7 +391,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/auth/integration_test/integration_test.xcodeproj/project.pbxproj b/auth/integration_test/integration_test.xcodeproj/project.pbxproj index fafa4a688f..4580bab75d 100644 --- a/auth/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/auth/integration_test/integration_test.xcodeproj/project.pbxproj @@ -432,7 +432,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -469,7 +469,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/auth/src/ios/auth_ios.mm b/auth/src/ios/auth_ios.mm index 4b77c1ae9b..8180d6e1a9 100644 --- a/auth/src/ios/auth_ios.mm +++ b/auth/src/ios/auth_ios.mm @@ -379,9 +379,18 @@ void AuthResultCallback(FIRAuthDataResult *_Nullable fir_auth_result, NSError *_ } } + // If there is a NSLocalizedFailureReasonErrorKey in the userInfo, append that to the + // error message. + std::string error_string(error != nullptr ? util::NSStringToString(error.localizedDescription) + : ""); + if (error != nullptr && error.userInfo != nullptr && + error.userInfo[NSLocalizedFailureReasonErrorKey] != nullptr) { + error_string += ": "; + error_string += util::NSStringToString(error.userInfo[NSLocalizedFailureReasonErrorKey]); + } + ReferenceCountedFutureImpl &futures = auth_data->future_impl; - futures.CompleteWithResult(handle, AuthErrorFromNSError(error), - util::NSStringToString(error.localizedDescription).c_str(), result); + futures.CompleteWithResult(handle, AuthErrorFromNSError(error), error_string.c_str(), result); } void AuthResultCallback(FIRUser *_Nullable user, NSError *_Nullable error, @@ -399,9 +408,17 @@ void AuthResultCallback(FIRUser *_Nullable user, NSError *_Nullable error, } } + // If there is a NSLocalizedFailureReasonErrorKey in the userInfo, append that to the + // error message. + std::string error_string(error != nullptr ? util::NSStringToString(error.localizedDescription) + : ""); + if (error != nullptr && error.userInfo != nullptr && + error.userInfo[NSLocalizedFailureReasonErrorKey] != nullptr) { + error_string += ": "; + error_string += util::NSStringToString(error.userInfo[NSLocalizedFailureReasonErrorKey]); + } ReferenceCountedFutureImpl &futures = auth_data->future_impl; - futures.CompleteWithResult(handle, AuthErrorFromNSError(error), - util::NSStringToString(error.localizedDescription).c_str(), + futures.CompleteWithResult(handle, AuthErrorFromNSError(error), error_string.c_str(), auth_result); } @@ -410,9 +427,17 @@ void AuthResultCallback(FIRUser *_Nullable user, NSError *_Nullable error, User *current_user = AssignUser(user, auth_data); User user_result; if (current_user != nullptr) user_result = *current_user; + // If there is a NSLocalizedFailureReasonErrorKey in the userInfo, append that to the + // error message. + std::string error_string(error != nullptr ? util::NSStringToString(error.localizedDescription) + : ""); + if (error != nullptr && error.userInfo != nullptr && + error.userInfo[NSLocalizedFailureReasonErrorKey] != nullptr) { + error_string += ": "; + error_string += util::NSStringToString(error.userInfo[NSLocalizedFailureReasonErrorKey]); + } ReferenceCountedFutureImpl &futures = auth_data->future_impl; - futures.CompleteWithResult(handle, AuthErrorFromNSError(error), - util::NSStringToString(error.localizedDescription).c_str(), + futures.CompleteWithResult(handle, AuthErrorFromNSError(error), error_string.c_str(), user_result); } @@ -430,10 +455,18 @@ void SignInCallback(FIRUser *_Nullable user, NSError *_Nullable error, SafeFutureHandle handle, AuthData *auth_data) { User *result = AssignUser(user, auth_data); + // If there is a NSLocalizedFailureReasonErrorKey in the userInfo, append that to the + // error message. + std::string error_string(error != nullptr ? util::NSStringToString(error.localizedDescription) + : ""); + if (error != nullptr && error.userInfo != nullptr && + error.userInfo[NSLocalizedFailureReasonErrorKey] != nullptr) { + error_string += ": "; + error_string += util::NSStringToString(error.userInfo[NSLocalizedFailureReasonErrorKey]); + } // Finish off the asynchronous call so that the caller can read it. ReferenceCountedFutureImpl &futures = auth_data->future_impl; - futures.CompleteWithResult(handle, AuthErrorFromNSError(error), - util::NSStringToString(error.localizedDescription).c_str(), result); + futures.CompleteWithResult(handle, AuthErrorFromNSError(error), error_string.c_str(), result); } void SignInResultWithProviderCallback( @@ -467,9 +500,17 @@ void SignInResultCallback(FIRAuthDataResult *_Nullable auth_result, NSError *_Nu } } + // If there is a NSLocalizedFailureReasonErrorKey in the userInfo, append that to the + // error message. + std::string error_string(error != nullptr ? util::NSStringToString(error.localizedDescription) + : ""); + if (error != nullptr && error.userInfo != nullptr && + error.userInfo[NSLocalizedFailureReasonErrorKey] != nullptr) { + error_string += ": "; + error_string += util::NSStringToString(error.userInfo[NSLocalizedFailureReasonErrorKey]); + } ReferenceCountedFutureImpl &futures = auth_data->future_impl; - futures.CompleteWithResult(handle, AuthErrorFromNSError(error), - util::NSStringToString(error.localizedDescription).c_str(), result); + futures.CompleteWithResult(handle, AuthErrorFromNSError(error), error_string.c_str(), result); } Future Auth::SignInWithCustomToken(const char *token) { diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index 56604a5183..4771efb049 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-10.22.0) +set(version "346f225d09ba30ca8ae01e068a8256c49a17252f") function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/integration_test/integration_test.xcodeproj/project.pbxproj b/database/integration_test/integration_test.xcodeproj/project.pbxproj index 563e7d44e9..a504f8daee 100644 --- a/database/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/database/integration_test/integration_test.xcodeproj/project.pbxproj @@ -354,7 +354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -391,7 +391,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 33ed7162cb..43fb0b94db 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -1,9 +1,10 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '11.0' +platform :ios, '12.0' # Firebase Dynamic Links test application. use_frameworks! :linkage => :static target 'integration_test' do + platform :ios, '12.0' pod 'Firebase/DynamicLinks', '10.22.0' end diff --git a/dynamic_links/integration_test/integration_test.xcodeproj/project.pbxproj b/dynamic_links/integration_test/integration_test.xcodeproj/project.pbxproj index 4036c8938a..6fbcbb9a45 100644 --- a/dynamic_links/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/dynamic_links/integration_test/integration_test.xcodeproj/project.pbxproj @@ -242,7 +242,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -279,7 +279,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index a2fc346624..8c621acd63 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/Firestore', '10.22.0' pod 'Firebase/Auth', '10.22.0' end diff --git a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj index 9a813b3d6b..63db793c2f 100644 --- a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj @@ -450,7 +450,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -487,7 +487,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index c694964a25..aa031d5301 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/Firestore', '10.22.0' pod 'Firebase/Auth', '10.22.0' end diff --git a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj index 82e38ef226..472227ce31 100644 --- a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj @@ -735,7 +735,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -772,7 +772,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index 4e4e46d8b2..cc8478e1de 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/Functions', '10.22.0' pod 'Firebase/Auth', '10.22.0' end diff --git a/functions/integration_test/integration_test.xcodeproj/project.pbxproj b/functions/integration_test/integration_test.xcodeproj/project.pbxproj index ce3d4ecadb..eaca22b35d 100644 --- a/functions/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/functions/integration_test/integration_test.xcodeproj/project.pbxproj @@ -433,7 +433,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -470,7 +470,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index c33fbbc2cd..6de3e7fe65 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -1,11 +1,12 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '11.0' +platform :ios, '12.0' # Firebase GMA test application. use_frameworks! :linkage => :static target 'integration_test' do + platform :ios, '12.0' pod 'Firebase/CoreOnly', '10.22.0' - pod 'Google-Mobile-Ads-SDK', '10.14.0' + pod 'Google-Mobile-Ads-SDK', '11.0.1' pod 'GoogleUserMessagingPlatform', '2.1.0' end diff --git a/gma/integration_test/integration_test.xcodeproj/project.pbxproj b/gma/integration_test/integration_test.xcodeproj/project.pbxproj index ed14afbb01..c5248e8a15 100644 --- a/gma/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/gma/integration_test/integration_test.xcodeproj/project.pbxproj @@ -246,7 +246,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -283,7 +283,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/gma/src/ios/gma_ios.mm b/gma/src/ios/gma_ios.mm index 7f0cad9d2d..b47eee884a 100644 --- a/gma/src/ios/gma_ios.mm +++ b/gma/src/ios/gma_ios.mm @@ -164,10 +164,10 @@ void SetRequestConfiguration(const RequestConfiguration& request_configuration) switch (request_configuration.tag_for_child_directed_treatment) { case RequestConfiguration::kChildDirectedTreatmentFalse: - [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment:NO]; + GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment = [NSNumber numberWithBool:NO]; break; case RequestConfiguration::kChildDirectedTreatmentTrue: - [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment:YES]; + GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment = [NSNumber numberWithBool:YES]; break; default: case RequestConfiguration::kChildDirectedTreatmentUnspecified: @@ -177,10 +177,10 @@ void SetRequestConfiguration(const RequestConfiguration& request_configuration) switch (request_configuration.tag_for_under_age_of_consent) { case RequestConfiguration::kUnderAgeOfConsentFalse: - [GADMobileAds.sharedInstance.requestConfiguration tagForUnderAgeOfConsent:NO]; + GADMobileAds.sharedInstance.requestConfiguration.tagForUnderAgeOfConsent = [NSNumber numberWithBool:NO]; break; case RequestConfiguration::kUnderAgeOfConsentTrue: - [GADMobileAds.sharedInstance.requestConfiguration tagForUnderAgeOfConsent:YES]; + GADMobileAds.sharedInstance.requestConfiguration.tagForUnderAgeOfConsent = [NSNumber numberWithBool:YES]; break; default: case RequestConfiguration::kUnderAgeOfConsentUnspecified: @@ -244,9 +244,9 @@ void OpenAdInspector(AdParent ad_parent, AdInspectorClosedListener* listener) { void SetIsSameAppKeyEnabled(bool is_enabled) { dispatch_async(dispatch_get_main_queue(), ^{ if (is_enabled) { - [GADMobileAds.sharedInstance.requestConfiguration setSameAppKeyEnabled:YES]; + [GADMobileAds.sharedInstance.requestConfiguration setPublisherFirstPartyIDEnabled:YES]; } else { - [GADMobileAds.sharedInstance.requestConfiguration setSameAppKeyEnabled:NO]; + [GADMobileAds.sharedInstance.requestConfiguration setPublisherFirstPartyIDEnabled:NO]; } }); } diff --git a/gma/src/ios/response_info_ios.mm b/gma/src/ios/response_info_ios.mm index 0acedf43fa..230a794048 100644 --- a/gma/src/ios/response_info_ios.mm +++ b/gma/src/ios/response_info_ios.mm @@ -41,7 +41,7 @@ util::NSStringToString(response_info_internal.gad_response_info.responseIdentifier); mediation_adapter_class_name_ = - util::NSStringToString(response_info_internal.gad_response_info.adNetworkClassName); + util::NSStringToString(response_info_internal.gad_response_info.loadedAdNetworkResponseInfo.adNetworkClassName); NSEnumerator* enumerator = [response_info_internal.gad_response_info.adNetworkInfoArray objectEnumerator]; @@ -58,7 +58,7 @@ "response_id: %@, mediation_adapter_classname : %@, " "adapter_response_info: %@", response_info_internal.gad_response_info.responseIdentifier, - response_info_internal.gad_response_info.adNetworkClassName, + response_info_internal.gad_response_info.loadedAdNetworkResponseInfo.adNetworkClassName, response_info_internal.gad_response_info.adNetworkInfoArray]; to_string_ = util::NSStringToString(to_string); } diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 284bb6ccf3..f9d2284497 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -1,9 +1,10 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '11.0' +platform :ios, '12.0' # Firebase Installations test application. use_frameworks! :linkage => :static target 'integration_test' do + platform :ios, '12.0' pod 'Firebase/Analytics', '10.22.0' pod 'Firebase/Installations', '10.22.0' end diff --git a/installations/integration_test/integration_test.xcodeproj/project.pbxproj b/installations/integration_test/integration_test.xcodeproj/project.pbxproj index 52c31320be..e448dc887e 100644 --- a/installations/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/installations/integration_test/integration_test.xcodeproj/project.pbxproj @@ -242,7 +242,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -279,7 +279,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/ios_pod/Podfile b/ios_pod/Podfile index e387bd62d1..9a8bdab421 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -1,11 +1,11 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '11.0' +platform :ios, '12.0' use_frameworks! target 'GetPods' do pod 'Firebase/Core', '10.22.0' - pod 'Google-Mobile-Ads-SDK', '10.14.0' + pod 'Google-Mobile-Ads-SDK', '11.0.1' pod 'GoogleUserMessagingPlatform', '2.1.0' pod 'Firebase/Analytics', '10.22.0' pod 'Firebase/AppCheck', '10.22.0' diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index e60abcf0ac..c2854c31d1 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/Messaging', '10.22.0' end diff --git a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj index 3f6535e8b8..65f2d35bc8 100644 --- a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj @@ -431,7 +431,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -468,7 +468,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 35baa6767a..1470703f03 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -631,6 +631,12 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### Upcoming Release +- Changes + - General (iOS, tvOS, Desktop): iOS, tvOS, and macOS SDKs are now built + using Xcode 15.1. + - GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 11.0.1. + ### 11.9.0 - Changes - General (Android): Update to Firebase Android BoM version 32.7.3. diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 37f6d7c62a..44c44f7a7e 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/RemoteConfig', '10.22.0' end diff --git a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj index 5d5250a7df..3dd10becbb 100644 --- a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj @@ -407,7 +407,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -444,7 +444,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj b/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj index a774bdb83b..a1de73c846 100644 --- a/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj +++ b/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj @@ -532,7 +532,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -587,7 +587,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -603,7 +603,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = gameloop/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -622,7 +622,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = gameloop/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/scripts/gha/print_matrix_configuration.py b/scripts/gha/print_matrix_configuration.py index 3a82ad3da7..d47374f95c 100644 --- a/scripts/gha/print_matrix_configuration.py +++ b/scripts/gha/print_matrix_configuration.py @@ -73,35 +73,35 @@ PARAMETERS = { "desktop": { "matrix": { - "os": ["ubuntu-20.04", "macos-12"], + "os": ["ubuntu-20.04", "macos-13"], "build_type": ["Release", "Debug"], "architecture": ["x64", "x86", "arm64"], "msvc_runtime": ["static","dynamic"], - "xcode_version": ["14.1"], + "xcode_version": ["15.1"], "python_version": ["3.7"], EXPANDED_KEY: { - "os": ["ubuntu-20.04", "macos-12", "windows-latest"], - "xcode_version": ["14.1"], + "os": ["ubuntu-20.04", "macos-13", "windows-latest"], + "xcode_version": ["15.1"], } } }, "android": { "matrix": { - "os": ["ubuntu-20.04", "macos-12", "windows-latest"], + "os": ["ubuntu-20.04", "macos-13", "windows-latest"], "architecture": ["x64"], "python_version": ["3.7"], EXPANDED_KEY: { - "os": ["ubuntu-20.04", "macos-12", "windows-latest"] + "os": ["ubuntu-20.04", "macos-13", "windows-latest"] } } }, "integration_tests": { "matrix": { - "os": ["ubuntu-20.04", "macos-12", "windows-latest"], + "os": ["ubuntu-20.04", "macos-13", "windows-latest"], "platform": ["Desktop", "Android", "iOS", "tvOS"], "ssl_lib": ["openssl"], "android_device": ["android_target", "emulator_ftl_target"], @@ -113,7 +113,7 @@ "msvc_runtime": ["dynamic"], "cpp_compiler_windows": ["VisualStudio2019"], "cpp_compiler_linux": ["clang-11.0"], - "xcode_version": ["14.1"], # only the first one is used + "xcode_version": ["15.1"], # only the first one is used "ndk_version": ["r22b"], "platform_version": ["28"], "build_tools_version": ["28.0.3"], @@ -141,10 +141,10 @@ "ios": { "matrix": { - "xcode_version": ["14.1"], + "xcode_version": ["15.1"], EXPANDED_KEY: { - "xcode_version": ["14.1"] + "xcode_version": ["15.1"] } } }, @@ -222,9 +222,9 @@ {"type": "ftl", "device": "model=iphone8,version=16.6"}, {"type": "ftl", "device": "model=ipad10,version=16.6"}, ], - "simulator_min": [ {"type": "virtual", "name":"iPhone 8", "version":"15.2"} ], - "simulator_target": [ {"type": "virtual", "name":"iPhone 8", "version":"16.1"} ], - "simulator_latest": [ {"type": "virtual", "name":"iPhone 11", "version":"16.1"} ], + "simulator_min": [ {"type": "virtual", "name":"iPhone SE (3rd generation)", "version":"17.0.1"} ], + "simulator_target": [ {"type": "virtual", "name":"iPhone 15", "version":"17.2"} ], + "simulator_latest": [ {"type": "virtual", "name":"iPad Pro (12.9-inch) (6th generation)", "version":"17.4"} ], "tvos_simulator": [ {"type": "virtual", "name":"Apple TV", "version":"16.1"} ], } diff --git a/scripts/gha/test_simulator.py b/scripts/gha/test_simulator.py index 5814f9a1c5..029925d374 100644 --- a/scripts/gha/test_simulator.py +++ b/scripts/gha/test_simulator.py @@ -357,7 +357,10 @@ def _build_ios_helper(helper_project, device_name, device_os): "-scheme", CONSTANTS[FLAGS.test_type]["apple_scheme"], "build-for-testing", "-destination", "platform=iOS Simulator,name=%s,OS=%s" % (device_name, device_os), - "SYMROOT=%s" % output_path] + "SYMROOT=%s" % output_path, + 'CODE_SIGN_IDENTITY=""', + "CODE_SIGNING_REQUIRED=NO", + "CODE_SIGNING_ALLOWED=NO"] logging.info("Building game-loop test: %s", " ".join(args)) subprocess.run(args=args, check=True) @@ -380,7 +383,10 @@ def _build_tvos_helper(helper_project, device_name, device_os): "-scheme", "%s_tvos" % CONSTANTS[FLAGS.test_type]["apple_scheme"], "build-for-testing", "-destination", "platform=tvOS Simulator,name=%s,OS=%s" % (device_name, device_os), - "SYMROOT=%s" % output_path] + "SYMROOT=%s" % output_path, + 'CODE_SIGN_IDENTITY=""', + "CODE_SIGNING_REQUIRED=NO", + "CODE_SIGNING_ALLOWED=NO"] logging.info("Building game-loop test: %s", " ".join(args)) subprocess.run(args=args, check=True) @@ -493,10 +499,10 @@ def _shutdown_simulator(): def _create_and_boot_simulator(apple_platform, device_name, device_os): """Create a simulator locally. Will wait until this simulator booted.""" _shutdown_simulator() - command = "xcrun xctrace list devices 2>&1 | grep \"%s (%s)\" | awk -F'[()]' '{print $4}'" % (device_name, device_os) + command = "xcrun xctrace list devices 2>&1 | grep \"%s Simulator (%s)\" | awk -F'[()]' '{print $4}'" % (device_name, device_os) logging.info("Get test simulator: %s", command) result = subprocess.Popen(command, universal_newlines=True, shell=True, stdout=subprocess.PIPE) - device_id = result.stdout.read().strip() + device_id = result.stdout.readline().strip() if not device_id: # download and create device diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index 63a6fff7d0..bdc3a0fd02 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! :linkage => :static target 'integration_test' do - platform :ios, '11.0' + platform :ios, '12.0' pod 'Firebase/Storage', '10.22.0' pod 'Firebase/Auth', '10.22.0' end diff --git a/storage/integration_test/integration_test.xcodeproj/project.pbxproj b/storage/integration_test/integration_test.xcodeproj/project.pbxproj index 35f1e2759b..5342f7a599 100644 --- a/storage/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/storage/integration_test/integration_test.xcodeproj/project.pbxproj @@ -418,7 +418,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -455,7 +455,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2";