diff --git a/.github/workflows/abtesting.yml b/.github/workflows/abtesting.yml index a8701041b72..a52070bdf10 100644 --- a/.github/workflows/abtesting.yml +++ b/.github/workflows/abtesting.yml @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart env: LEGACY: true @@ -86,7 +86,7 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \ quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret" - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build swift quickstart env: LEGACY: true @@ -116,7 +116,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: PodLibLint ABTesting Cron run: | scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \ diff --git a/.github/workflows/client_app.yml b/.github/workflows/client_app.yml index 150d879edca..8c4f72c4c27 100644 --- a/.github/workflows/client_app.yml +++ b/.github/workflows/client_app.yml @@ -27,12 +27,16 @@ jobs: client-app-spm: if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst platform: [iOS] scheme: [ClientApp] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -40,8 +44,8 @@ jobs: with: cache_key: ${{ matrix.os }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - - name: Build Client App –– ${{ matrix.platform }} + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer + - name: Build Client App - ${{ matrix.platform }} run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild client-app-spm-source-firestore: @@ -50,12 +54,16 @@ jobs: FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 FIREBASE_SOURCE_FIRESTORE: 1 strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst platform: [iOS] scheme: [ClientApp] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -63,18 +71,22 @@ jobs: with: cache_key: ${{ matrix.os }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - - name: Build Client App –– ${{ matrix.platform }} + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer + - name: Build Client App - ${{ matrix.platform }} run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ matrix.scheme }} ${{ matrix.platform }} xcodebuild client-app-cocoapods: # Don't run on private repo unless it is a PR. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' strategy: - # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. matrix: scheme: [ClientApp-CocoaPods] os: [macos-14, macos-15] + include: + - os: macos-14 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -85,7 +97,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - name: Prereqs run: scripts/install_prereqs.sh ClientApp iOS xcodebuild - name: Build diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 1a82d76b36f..b79680f09b4 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -67,7 +67,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Generate Swift Package.resolved id: swift_package_resolve run: swift package resolve @@ -104,10 +104,6 @@ jobs: key: ${{needs.spm-package-resolved.outputs.cache_key}} - name: Xcode run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - name: Install visionOS, if needed. - if: matrix.platform == 'visionOS' - run: ls $(xcode-select -p)/Platforms/XROS.platform || \ - { xcodebuild -downloadPlatform visionOS } - name: Run setup command, if needed. if: inputs.setup_command != '' run: ${{ inputs.setup_command }} diff --git a/.github/workflows/common_catalyst.yml b/.github/workflows/common_catalyst.yml index 6948e4e3197..da3911b064c 100644 --- a/.github/workflows/common_catalyst.yml +++ b/.github/workflows/common_catalyst.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 120 diff --git a/.github/workflows/core_extension.yml b/.github/workflows/core_extension.yml index 15b86f38538..cc9d602f15d 100644 --- a/.github/workflows/core_extension.yml +++ b/.github/workflows/core_extension.yml @@ -39,7 +39,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint CoreInternal Cron diff --git a/.github/workflows/core_internal.yml b/.github/workflows/core_internal.yml index d1b8dd6cf73..db3d565f69f 100644 --- a/.github/workflows/core_internal.yml +++ b/.github/workflows/core_internal.yml @@ -54,7 +54,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint CoreInternal Cron diff --git a/.github/workflows/crashlytics.yml b/.github/workflows/crashlytics.yml index a32d474a61b..0f5f2cb5643 100644 --- a/.github/workflows/crashlytics.yml +++ b/.github/workflows/crashlytics.yml @@ -53,7 +53,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh crashlytics env: @@ -86,7 +86,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh crashlytics env: @@ -130,7 +130,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 120 diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 928c3bf28ad..24998fa0deb 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -84,7 +84,7 @@ jobs: run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \ quickstart-ios/database/GoogleService-Info.plist "$plist_secret" - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Test objc quickstart run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false) - name: Test swift quickstart @@ -106,7 +106,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint database Cron diff --git a/.github/workflows/firebase_app_check.yml b/.github/workflows/firebase_app_check.yml index ff30db15a66..cd9f8eac577 100644 --- a/.github/workflows/firebase_app_check.yml +++ b/.github/workflows/firebase_app_check.yml @@ -58,7 +58,7 @@ jobs: with: cache_key: ${{ matrix.diagnostics }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Initialize xcodebuild run: scripts/setup_spm_tests.sh - name: iOS Unit Tests @@ -84,7 +84,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint FirebaseAppCheck Cron diff --git a/.github/workflows/firebasepod.yml b/.github/workflows/firebasepod.yml index 8f7fd3af5ef..f1e228b7f24 100644 --- a/.github/workflows/firebasepod.yml +++ b/.github/workflows/firebasepod.yml @@ -34,7 +34,7 @@ jobs: - name: Setup Bundler run: scripts/setup_bundler.sh - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Prereqs run: scripts/install_prereqs.sh FirebasePod iOS - name: Build diff --git a/.github/workflows/firestore.yml b/.github/workflows/firestore.yml index 3e927287a2e..d3f61e67b4a 100644 --- a/.github/workflows/firestore.yml +++ b/.github/workflows/firestore.yml @@ -375,6 +375,9 @@ jobs: - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + - name: Setup build run: scripts/install_prereqs.sh Firestore ${{ matrix.target }} xcodebuild @@ -578,7 +581,7 @@ jobs: with: cache_key: ${{ matrix.target }} - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Initialize xcodebuild run: scripts/setup_spm_tests.sh - name: Build Test - Binary diff --git a/.github/workflows/inappmessaging.yml b/.github/workflows/inappmessaging.yml index 6650fbb8fc9..feb26e72c65 100644 --- a/.github/workflows/inappmessaging.yml +++ b/.github/workflows/inappmessaging.yml @@ -46,7 +46,7 @@ jobs: # TODO(#8682): Reenable iPad after fixing Xcode 13 test failures. # platform: [iOS, iPad] platform: [iOS] - xcode: [Xcode_16.2] + xcode: [Xcode_16.4] steps: - uses: actions/checkout@v4 - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 @@ -78,7 +78,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint InAppMessaging Cron @@ -98,7 +98,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh inappmessaging - name: install secret googleservice-info.plist diff --git a/.github/workflows/installations.yml b/.github/workflows/installations.yml index cf4f6795b18..2b149918f0a 100644 --- a/.github/workflows/installations.yml +++ b/.github/workflows/installations.yml @@ -56,7 +56,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh installations - name: Copy mock plist @@ -78,7 +78,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh installations - name: Copy mock plist @@ -112,7 +112,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Configure test keychain diff --git a/.github/workflows/messaging.yml b/.github/workflows/messaging.yml index 838ce5fe4d9..db9d8f8ccac 100644 --- a/.github/workflows/messaging.yml +++ b/.github/workflows/messaging.yml @@ -89,7 +89,7 @@ jobs: matrix: include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -122,7 +122,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh messaging - name: Install Secret GoogleService-Info.plist @@ -150,7 +150,7 @@ jobs: os: [macos-14, macos-15] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 tests: --test-specs=unit - os: macos-14 xcode: Xcode_16.2 @@ -187,7 +187,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh MessagingSample iOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) @@ -212,7 +212,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh SwiftUISample iOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) @@ -237,7 +237,7 @@ jobs: - name: Prereqs run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Build run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) diff --git a/.github/workflows/mlmodeldownloader.yml b/.github/workflows/mlmodeldownloader.yml index 3eddabeadec..931c8edda79 100644 --- a/.github/workflows/mlmodeldownloader.yml +++ b/.github/workflows/mlmodeldownloader.yml @@ -57,7 +57,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Configure test keychain @@ -83,7 +83,7 @@ jobs: cache_key: build-test${{ matrix.os }} - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Install GoogleService-Info.plist diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index b1073dfd11f..61c08473772 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -60,7 +60,7 @@ jobs: cache_key: ${{ matrix.target }}${{ matrix.test }} - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: Install xcpretty @@ -87,7 +87,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh performance - name: Install Secret GoogleService-Info.plist @@ -113,7 +113,7 @@ jobs: with: python-version: '3.11' - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup quickstart run: scripts/setup_quickstart.sh performance - name: Install Secret GoogleService-Info.plist @@ -145,7 +145,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup Bundler run: scripts/setup_bundler.sh - name: PodLibLint Performance Cron diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 2cb87713f68..6bdc3749b3f 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -242,7 +242,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication prerelease_testing - name: Install Secret GoogleService-Info.plist diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de6631fc6b4..531cc021b2c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -188,7 +188,7 @@ jobs: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Setup testing repo and quickstart run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing - name: Install Secret GoogleService-Info.plist diff --git a/.github/workflows/sessions-integration-tests.yml b/.github/workflows/sessions-integration-tests.yml index 4d11e4dc065..ccc8d9f15fd 100644 --- a/.github/workflows/sessions-integration-tests.yml +++ b/.github/workflows/sessions-integration-tests.yml @@ -31,7 +31,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Xcode - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 with: cache_key: sessions-integration-tests diff --git a/.github/workflows/spm.yml b/.github/workflows/spm.yml index 5b807927410..a1227e2ef1c 100644 --- a/.github/workflows/spm.yml +++ b/.github/workflows/spm.yml @@ -98,7 +98,7 @@ jobs: - os: macos-14 xcode: Xcode_16.2 - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -127,7 +127,7 @@ jobs: target: [tvOS, macOS, catalyst] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 - os: macos-14 xcode: Xcode_16.2 runs-on: ${{ matrix.os }} diff --git a/.github/workflows/storage.yml b/.github/workflows/storage.yml index 036037b5ca7..740b15c7766 100644 --- a/.github/workflows/storage.yml +++ b/.github/workflows/storage.yml @@ -88,7 +88,7 @@ jobs: # xcode: Xcode_14.2 # TODO: the legacy ObjC quickstart doesn't build with Xcode 15. - swift: swift os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} @@ -153,7 +153,7 @@ jobs: - os: macos-14 xcode: Xcode_16.2 - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} needs: pod_lib_lint steps: diff --git a/.github/workflows/zip.yml b/.github/workflows/zip.yml index 9879e942885..42a216c1567 100644 --- a/.github/workflows/zip.yml +++ b/.github/workflows/zip.yml @@ -114,9 +114,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -176,7 +174,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] include: - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.4 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -226,9 +224,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -277,9 +273,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -403,9 +397,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -427,6 +419,12 @@ jobs: "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \ "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/* + - name: Upload build logs on failure + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: build_logs_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }} + path: sdk_zip/build_logs/ - name: Xcode run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer - name: Install Secret GoogleService-Info.plist @@ -487,9 +485,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -542,9 +538,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -597,9 +591,7 @@ jobs: artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic] build-env: - os: macos-15 - xcode: Xcode_16.2 - # - os: macos-15 - # xcode: Xcode_16.4 + xcode: Xcode_16.4 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 diff --git a/scripts/build.sh b/scripts/build.sh index 30b84004c3b..2be500a8bbc 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -187,8 +187,11 @@ tvos_flags=( -destination 'platform=tvOS Simulator,name=Apple TV' ) visionos_flags=( + # As of Aug 15, 2025, the default OS "latest" was failing as it matched both + # the visionOS 26 beta and visionOS 2.5 (from Xcode 16.4) simulators; + # explicitly specifying OS=2.5 in destination as a workaround. -sdk 'xrsimulator' - -destination 'platform=visionOS Simulator,name=Apple Vision Pro' + -destination 'platform=visionOS Simulator,OS=2.5,name=Apple Vision Pro' ) catalyst_flags=( ARCHS=x86_64 VALID_ARCHS=x86_64 SUPPORTS_MACCATALYST=YES -sdk macosx @@ -489,12 +492,10 @@ case "$product-$platform-$method" in ../../../FirebaseRemoteConfig/Tests/Swift/AccessToken.json # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Remove -sdk and -destination flags and replace with "${xcb_flags[@]}" RunXcodebuild \ -workspace 'gen/FirebaseRemoteConfig/FirebaseRemoteConfig.xcworkspace' \ -scheme "FirebaseRemoteConfig-Unit-swift-api-tests" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${xcb_flags[@]}" \ build \ test ;; @@ -572,12 +573,10 @@ case "$product-$platform-$method" in if check_secrets; then # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Add back "${ios_flags[@]}". See #14657. RunXcodebuild \ -workspace 'gen/FirebaseStorage/FirebaseStorage.xcworkspace' \ -scheme "FirebaseStorage-Unit-integration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ "${xcb_flags[@]}" \ test fi @@ -593,12 +592,10 @@ case "$product-$platform-$method" in if check_secrets; then # Integration tests are only run on iOS to minimize flake failures. - # TODO(ncooke3): Add back "${ios_flags[@]}". See #14657. RunXcodebuild \ -workspace 'gen/FirebaseStorage/FirebaseStorage.xcworkspace' \ -scheme "FirebaseStorage-Unit-ObjCIntegration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ "${xcb_flags[@]}" \ test fi @@ -617,8 +614,8 @@ case "$product-$platform-$method" in RunXcodebuild \ -workspace 'gen/FirebaseCombineSwift/FirebaseCombineSwift.xcworkspace' \ -scheme "FirebaseCombineSwift-Unit-integration" \ - -sdk 'iphonesimulator' \ - -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.3.1' \ + "${ios_flags[@]}" \ + "${xcb_flags[@]}" \ test fi ;;