diff --git a/.github/workflows/analytics.yml b/.github/workflows/analytics.yml index 66e89fee424..70f51071a03 100644 --- a/.github/workflows/analytics.yml +++ b/.github/workflows/analytics.yml @@ -24,12 +24,12 @@ jobs: strategy: matrix: target: [ios, tvos, macos] - os: [macos-14, macos-13] + os: [macos-14, macos-15] include: - os: macos-14 - xcode: Xcode_15.3 - - os: macos-13 - xcode: Xcode_15.2 + xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.3 runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/appdistribution.yml b/.github/workflows/appdistribution.yml index 1db4641d0c4..2032cc0a262 100644 --- a/.github/workflows/appdistribution.yml +++ b/.github/workflows/appdistribution.yml @@ -23,12 +23,10 @@ jobs: strategy: matrix: include: - - os: macos-13 - xcode: Xcode_15.2 - - os: macos-14 - xcode: Xcode_15.4 - os: macos-15 xcode: Xcode_16.2 + - os: macos-16 + xcode: Xcode_16.3 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -72,12 +70,10 @@ jobs: strategy: matrix: include: - - os: macos-13 - xcode: Xcode_15.2 - os: macos-14 - xcode: Xcode_15.4 - - os: macos-15 xcode: Xcode_16.2 + - os: macos-15 + xcode: Xcode_16.3 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -113,7 +109,7 @@ jobs: appdistribution-cron-only: if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: target: [ios] diff --git a/.github/workflows/archiving.yml b/.github/workflows/archiving.yml index a2d7607952f..3b609718f89 100644 --- a/.github/workflows/archiving.yml +++ b/.github/workflows/archiving.yml @@ -20,7 +20,7 @@ jobs: # Don't run on private repo. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: # These need to be on a single line or else the formatting won't validate. @@ -42,7 +42,7 @@ jobs: # Don't run on private repo. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: target: [ios, tvos, macos] diff --git a/.github/workflows/auth.yml b/.github/workflows/auth.yml index 92aa4bf66b1..7dff79459b6 100644 --- a/.github/workflows/auth.yml +++ b/.github/workflows/auth.yml @@ -30,37 +30,8 @@ jobs: matrix: podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec] target: [ios, tvos, macos --skip-tests, watchos] - os: [macos-14] - xcode: [Xcode_15.2] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 - - name: Setup Bundler - run: scripts/setup_bundler.sh - - name: Configure test keychain - run: scripts/configure_test_keychain.sh - - name: Xcode - run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer - - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 - with: - timeout_minutes: 120 - max_attempts: 3 - retry_on: error - retry_wait_seconds: 120 - command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }} - - # TODO: Fix warnings on Xcode 16 and move into matrix above. - pod-lib-lint-xc16: - # 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: - matrix: - podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec] - target: [ios, tvos, macos --skip-tests --allow-warnings, watchos] os: [macos-15] - xcode: [Xcode_16.2] + xcode: [Xcode_16.3] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -77,12 +48,12 @@ jobs: max_attempts: 3 retry_on: error retry_wait_seconds: 120 - command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }} --allow-warnings + command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }} spm-package-resolved: env: FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 - runs-on: macos-14 + runs-on: macos-15 outputs: cache_key: ${{ steps.generate_cache_key.outputs.cache_key }} steps: @@ -109,29 +80,26 @@ jobs: strategy: matrix: include: - - os: macos-13 - xcode: Xcode_15.2 - target: iOS spm - os: macos-14 - xcode: Xcode_15.4 + xcode: Xcode_16.2 target: iOS spm - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: iOS spm - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: tvOS spm - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: macOS spmbuildonly - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: watchOS spm - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: catalyst spm - os: macos-15 - xcode: Xcode_16.2 + xcode: Xcode_16.3 target: visionOS spm runs-on: ${{ matrix.os }} steps: @@ -272,7 +240,7 @@ jobs: # Don't run on private repo. if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: # The macos and tvos tests can hang, and watchOS doesn't have tests. diff --git a/.github/workflows/client_app.yml b/.github/workflows/client_app.yml index 61a45fe99ca..150d879edca 100644 --- a/.github/workflows/client_app.yml +++ b/.github/workflows/client_app.yml @@ -27,6 +27,7 @@ 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] @@ -49,6 +50,7 @@ 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] @@ -69,6 +71,7 @@ jobs: # 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] diff --git a/.github/workflows/cocoapods-integration.yml b/.github/workflows/cocoapods-integration.yml index 969bba41e81..0a86f76e18b 100644 --- a/.github/workflows/cocoapods-integration.yml +++ b/.github/workflows/cocoapods-integration.yml @@ -18,10 +18,9 @@ concurrency: jobs: tests: # 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' - || github.event_name == 'workflow_dispatch' + if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 diff --git a/.github/workflows/combine.yml b/.github/workflows/combine.yml index 0ce84cfff92..bb8e2698265 100644 --- a/.github/workflows/combine.yml +++ b/.github/workflows/combine.yml @@ -49,7 +49,7 @@ jobs: xcodebuild: # 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' - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: @@ -77,7 +77,7 @@ jobs: if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' env: plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} - runs-on: macos-14 + runs-on: macos-15 steps: - uses: actions/checkout@v4 - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 8f55e48605e..cff05b59633 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -28,6 +28,9 @@ jobs: xcode: Xcode_16.2 - os: macos-15 xcode: Xcode_16.2 + # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. +# - os: macos-15 +# xcode: Xcode_16.3 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -42,7 +45,7 @@ jobs: spm-package-resolved: env: FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1 - runs-on: macos-14 + runs-on: macos-15 outputs: cache_key: ${{ steps.generate_cache_key.outputs.cache_key }} steps: @@ -70,6 +73,7 @@ jobs: needs: [spm-package-resolved] strategy: matrix: + # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners. include: - os: macos-14 xcode: Xcode_16.2 @@ -77,6 +81,9 @@ jobs: - os: macos-15 xcode: Xcode_16.2 target: iOS + - os: macos-15 + xcode: Xcode_16.2 + target: iOS - os: macos-15 xcode: Xcode_16.2 target: tvOS diff --git a/.github/workflows/core_extension.yml b/.github/workflows/core_extension.yml index c20f20db644..72189156eaf 100644 --- a/.github/workflows/core_extension.yml +++ b/.github/workflows/core_extension.yml @@ -26,6 +26,9 @@ jobs: xcode: Xcode_16.2 - os: macos-15 xcode: Xcode_16.2 + # TODO: Enable when Xcode 16 is ubiquitous on CI runners. +# - os: macos-15 +# xcode: Xcode_16.3 runs-on: ${{ matrix.build-env.os }} steps: - uses: actions/checkout@v4 @@ -40,7 +43,7 @@ jobs: core-internal-cron-only: # Don't run on private repo. if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' - runs-on: macos-14 + runs-on: macos-15 strategy: matrix: target: [ios, tvos, macos] diff --git a/FirebaseAppDistributionInternal/Sources/ApiService.swift b/FirebaseAppDistributionInternal/Sources/ApiService.swift index cca408b89b9..b42519e6a61 100644 --- a/FirebaseAppDistributionInternal/Sources/ApiService.swift +++ b/FirebaseAppDistributionInternal/Sources/ApiService.swift @@ -17,8 +17,7 @@ import FirebaseInstallations import Foundation import UIKit -// Avoids exposing internal APIs to Swift users -@_implementationOnly import FirebaseCoreInternal +internal import FirebaseCoreInternal enum Strings { static let errorDomain = "com.firebase.appdistribution.api" diff --git a/FirebaseAppDistributionInternal/Sources/Internal/Logger.swift b/FirebaseAppDistributionInternal/Sources/Internal/Logger.swift index 2b16ee993d5..9ad2f484d21 100644 --- a/FirebaseAppDistributionInternal/Sources/Internal/Logger.swift +++ b/FirebaseAppDistributionInternal/Sources/Internal/Logger.swift @@ -15,7 +15,7 @@ import Foundation -@_implementationOnly import FirebaseCoreExtension +internal import FirebaseCoreExtension /// /// Logger is responsible for printing console logs diff --git a/FirebaseAuth/Sources/Swift/Auth/Auth.swift b/FirebaseAuth/Sources/Swift/Auth/Auth.swift index d9b4eb38b56..5d8050cc891 100644 --- a/FirebaseAuth/Sources/Swift/Auth/Auth.swift +++ b/FirebaseAuth/Sources/Swift/Auth/Auth.swift @@ -19,10 +19,10 @@ import FirebaseAuthInterop import FirebaseCore import FirebaseCoreExtension #if COCOAPODS - @_implementationOnly import GoogleUtilities + internal import GoogleUtilities #else - @_implementationOnly import GoogleUtilities_AppDelegateSwizzler - @_implementationOnly import GoogleUtilities_Environment + internal import GoogleUtilities_AppDelegateSwizzler + internal import GoogleUtilities_Environment #endif #if os(iOS) || os(tvOS) || targetEnvironment(macCatalyst) diff --git a/FirebaseAuth/Sources/Swift/MultiFactor/TOTP/TOTPSecret.swift b/FirebaseAuth/Sources/Swift/MultiFactor/TOTP/TOTPSecret.swift index 5588539a89b..4a05a42be96 100644 --- a/FirebaseAuth/Sources/Swift/MultiFactor/TOTP/TOTPSecret.swift +++ b/FirebaseAuth/Sources/Swift/MultiFactor/TOTP/TOTPSecret.swift @@ -14,9 +14,9 @@ import Foundation #if COCOAPODS - @_implementationOnly import GoogleUtilities + internal import GoogleUtilities #else - @_implementationOnly import GoogleUtilities_Environment + internal import GoogleUtilities_Environment #endif #if os(iOS) diff --git a/FirebaseAuth/Sources/Swift/SystemService/AuthAPNSTokenManager.swift b/FirebaseAuth/Sources/Swift/SystemService/AuthAPNSTokenManager.swift index 479918165e9..7ced32a77cd 100644 --- a/FirebaseAuth/Sources/Swift/SystemService/AuthAPNSTokenManager.swift +++ b/FirebaseAuth/Sources/Swift/SystemService/AuthAPNSTokenManager.swift @@ -17,9 +17,9 @@ import UIKit #if COCOAPODS - @_implementationOnly import GoogleUtilities + internal import GoogleUtilities #else - @_implementationOnly import GoogleUtilities_Environment + internal import GoogleUtilities_Environment #endif // COCOAPODS // Protocol to help with unit tests. diff --git a/FirebaseAuth/Sources/Swift/Utilities/AuthDefaultUIDelegate.swift b/FirebaseAuth/Sources/Swift/Utilities/AuthDefaultUIDelegate.swift index aa8d3cbec6b..4106977a5e1 100644 --- a/FirebaseAuth/Sources/Swift/Utilities/AuthDefaultUIDelegate.swift +++ b/FirebaseAuth/Sources/Swift/Utilities/AuthDefaultUIDelegate.swift @@ -17,9 +17,9 @@ import Foundation import UIKit #if COCOAPODS - @_implementationOnly import GoogleUtilities + internal import GoogleUtilities #else - @_implementationOnly import GoogleUtilities_Environment + internal import GoogleUtilities_Environment #endif /// Class responsible for providing a default AuthUIDelegate. diff --git a/IntegrationTesting/CocoapodsIntegrationTest/scripts/build_with_environment.sh b/IntegrationTesting/CocoapodsIntegrationTest/scripts/build_with_environment.sh index 10900343894..20d77b9b1f6 100755 --- a/IntegrationTesting/CocoapodsIntegrationTest/scripts/build_with_environment.sh +++ b/IntegrationTesting/CocoapodsIntegrationTest/scripts/build_with_environment.sh @@ -27,7 +27,7 @@ function runXcodebuild() { -workspace 'CocoapodsIntegrationTest.xcworkspace' -scheme 'CocoapodsIntegrationTest' -sdk 'iphonesimulator' - -destination 'platform=iOS Simulator,name=iPhone 15' + -destination 'platform=iOS Simulator,name=iPhone 16' CODE_SIGNING_REQUIRED=NO clean build