[Firebase 10] Update minimum supported versions across Firebase
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:
-
ios_deployment_target = '10.0' s.ios.deployment_target = ios_deployment_targetFind 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.
-
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.podspecis 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:
-
tvos_deployment_target = '10.0' s.tvos.deployment_target = tvos_deployment_targetFind 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" -
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
Size Report 1
Affected Products
FirebaseABTestingType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 515 kB -51.5 kB -567 kB (-110.0%) FirebaseAppDistributionType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 689 kB -51.5 kB -741 kB (-107.5%) FirebaseAuthType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 1.20 MB -51.5 kB -1.25 MB (-104.3%) FirebaseCrashlyticsType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 916 kB -51.5 kB -968 kB (-105.6%) FirebaseDatabaseType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 1.42 MB -51.5 kB -1.47 MB (-103.6%) FirebaseDynamicLinksType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 568 kB -51.5 kB -620 kB (-109.1%) FirebaseFirestoreType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 6.99 MB -51.5 kB -7.05 MB (-100.7%) FirebaseInAppMessagingType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 911 kB -51.5 kB -963 kB (-105.7%) FirebaseMessagingType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 909 kB -51.5 kB -960 kB (-105.7%) FirebasePerformanceType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 995 kB -51.5 kB -1.05 MB (-105.2%) FirebaseRemoteConfigType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 752 kB -51.5 kB -804 kB (-106.8%) FirebaseStorageType Base (ee2ca36) Merge (af5e8ba) Diff CocoaPods 866 kB -51.5 kB -918 kB (-105.9%)
Test Logs
Coverage Report 1
Affected Products
FirebaseFirestore-iOS-FirebaseFirestore.frameworkOverall coverage changed from 87.93% (ee2ca36) to 87.88% (af5e8ba) by -0.05%.
Filename Base (ee2ca36) Merge (af5e8ba) Diff exception.cc 84.21% 23.68% -60.53% exception_apple.mm 65.52% 96.55% +31.03% leveldb_key.cc 98.43% 98.82% +0.39% ordered_code.cc 94.39% 93.90% -0.49% task.cc 93.91% 94.78% +0.87%
Test Logs
@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
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.
@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 🤞
I'm going to merge because all of the tests but one passed in ce29315. And the failing test was resolved with 4ac4677.