firebase-ios-sdk icon indicating copy to clipboard operation
firebase-ios-sdk copied to clipboard

[Firebase 10] Update minimum supported versions across Firebase

Open ncooke3 opened this issue 3 years ago • 5 comments

Context

Firebase 10 is bumping the minimum supported versions for iOS, tvOS, and macOS.

The below table summarizes the key differences in the minimum supported versions between Firebase 9 (current) and Firebase 10 (upcoming):

Platform Firebase 9 Firebase 10
iOS 10.0 11.0*
macOS 10.12 10.13
tvOS 10.0 11.0

*Analytics will remain at 10.0. This is reflected by Analytics's dependencies.

Bumping iOS versions

The minimum iOS version is specified using the following pattern:

  1. ios_deployment_target = '10.0'
    s.ios.deployment_target = ios_deployment_target
    
    Find and replace script
    git grep --name-only "ios_deployment_target = '10.0'" -- \
      ':!FirebaseCore*.podspec' \
      ':!FirebaseInstallations.podspec' \
      ':!FirebaseAnalytics*.podspec' \
      ':!GoogleAppMeasurement*.podspec' \
      *.podspec \
      | xargs sed -i '' "s/ios_deployment_target = '10.0'/ios_deployment_target = '11.0'/g"
    

    FirebaseCore* and Installations are excluded as they are dependencies of Analytics which is not bumping it's iOS minimum version.

  2. s.ios.deployment_target = '9.0'
    
    Find and replace script
    git grep --name-only \
      -E "ios\.deployment_target(\s+)=(\s+)'10.0'" -- \
      ':!FirebaseCore*.podspec' \
      ':!FirebaseInstallations.podspec' \
      ':!FirebaseAnalytics*.podspec' \
      ':!GoogleAppMeasurement*.podspec' \
      ':!Firebase.podspec' \
      *.podspec | xargs sed -i '' -E "s/ios\.deployment_target( +)=( +)'10.0'/ios\.deployment_target\1=\2'11.0'/g"
    

    FirebaseCore* and Installations are excluded as they are dependencies of Analytics which is not bumping it's iOS minimum version.

    Additionally, the Firebase.podspec is excluded as it needs to manually be modified.

Bumping macOS versions

git grep --name-only "'10.12'" *.podspec | xargs sed -i '' "s/'10.12'/'10.13'/g"

Bumping tvOS versions

The minimum tvOS version is specified using the following pattern:

  1. tvos_deployment_target = '10.0'
    s.tvos.deployment_target = tvos_deployment_target
    
    Find and replace script
    git grep --name-only "tvos_deployment_target = '10.0'" -- \
      *.podspec \
      | xargs sed -i '' "s/tvos_deployment_target = '10.0'/tvos_deployment_target = '11.0'/g"
    
  2. s.tvos.deployment_target = '9.0'
    
    Find and replace script
    git grep --name-only \
      -E "tvos\.deployment_target(\s+)=(\s+)'10.0'" -- \
      *.podspec | xargs sed -i '' -E "s/tvos\.deployment_target( +)=( +)'10.0'/tvos\.deployment_target\1=\2'11.0'/g"
    

#Fixes 10100

ncooke3 avatar Sep 19 '22 20:09 ncooke3

Size Report 1

Affected Products

  • FirebaseABTesting

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods515 kB-51.5 kB-567 kB (-110.0%)
  • FirebaseAppDistribution

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods689 kB-51.5 kB-741 kB (-107.5%)
  • FirebaseAuth

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods1.20 MB-51.5 kB-1.25 MB (-104.3%)
  • FirebaseCrashlytics

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods916 kB-51.5 kB-968 kB (-105.6%)
  • FirebaseDatabase

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods1.42 MB-51.5 kB-1.47 MB (-103.6%)
  • FirebaseDynamicLinks

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods568 kB-51.5 kB-620 kB (-109.1%)
  • FirebaseFirestore

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods6.99 MB-51.5 kB-7.05 MB (-100.7%)
  • FirebaseInAppMessaging

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods911 kB-51.5 kB-963 kB (-105.7%)
  • FirebaseMessaging

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods909 kB-51.5 kB-960 kB (-105.7%)
  • FirebasePerformance

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods995 kB-51.5 kB-1.05 MB (-105.2%)
  • FirebaseRemoteConfig

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods752 kB-51.5 kB-804 kB (-106.8%)
  • FirebaseStorage

    TypeBase (ee2ca36)Merge (af5e8ba)Diff
    CocoaPods866 kB-51.5 kB-918 kB (-105.9%)

Test Logs

google-oss-bot avatar Sep 19 '22 21:09 google-oss-bot

Coverage Report 1

Affected Products

  • FirebaseFirestore-iOS-FirebaseFirestore.framework

    Overall coverage changed from 87.93% (ee2ca36) to 87.88% (af5e8ba) by -0.05%.

    FilenameBase (ee2ca36)Merge (af5e8ba)Diff
    exception.cc84.21%23.68%-60.53%
    exception_apple.mm65.52%96.55%+31.03%
    leveldb_key.cc98.43%98.82%+0.39%
    ordered_code.cc94.39%93.90%-0.49%
    task.cc93.91%94.78%+0.87%

Test Logs

google-oss-bot avatar Sep 19 '22 22:09 google-oss-bot

@paulb777, CI has lots of failures but they look like network issues. Maybe the CocoaPods CDN is down right now...

I will kick off another CI run in an hour or two

ncooke3 avatar Sep 20 '22 16:09 ncooke3

The Auth failure was due to the FBSDK being updated due to raising the min. supported OS versions. This enabled the Auth sample to pull in FBSDK 13+ (opposed to FBSDK 12). And, in FBSDK 13+, there were breaking changes that broke the Auth sample app.

ncooke3 avatar Sep 21 '22 19:09 ncooke3

@paulb777, CI in ce29315 was green except for the Auth x FBSDK issue.

I think this is good for a review now that CI should be all fixed.

The new commit to fix the FBSDK stuff did unfortunately kick off all CI but hopefully we do not see those 429 errors again 🤞

ncooke3 avatar Sep 21 '22 19:09 ncooke3

I'm going to merge because all of the tests but one passed in ce29315. And the failing test was resolved with 4ac4677.

ncooke3 avatar Sep 21 '22 20:09 ncooke3