Skip to content

fix(build): Use one version of firebase SDKs everywhere #4332

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions packages/cloud_firestore/cloud_firestore/example/ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'

require 'yaml'

pubspec = YAML.load_file(File.join('..', File.join('..', 'pubspec.yaml')))

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

Expand Down Expand Up @@ -29,8 +33,22 @@ flutter_ios_podfile_setup

target 'Runner' do
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.33.0'

if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version for FirebaseFirestore framework: '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
else
firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))))), 'firebase_core/firebase_core/ios/firebase_sdk_version.rb')
if File.exist?(firebase_core_script)
require firebase_core_script
firebase_sdk_version = firebase_sdk_version!
Pod::UI.puts "#{pubspec['name']}: Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core for FirebaseFirestore framework'"
else
raise "Error - unable to locate firebase_ios_sdk.rb script in firebase_core, and no FirebaseSDKVersion specified"
end
end

pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => "#{firebase_sdk_version}"
end

post_install do |installer|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -34,8 +33,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Firestore', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Firestore', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -34,8 +33,7 @@ Pod::Spec.new do |s|

# Firebase dependencies
s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Functions', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Functions', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
14 changes: 0 additions & 14 deletions packages/firebase_admob/ios/firebase_admob.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
else
firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))), 'firebase_core/ios/firebase_sdk_version.rb')
if File.exist?(firebase_core_script)
require firebase_core_script
firebase_sdk_version = firebase_sdk_version!
Pod::UI.puts "#{pubspec['name']}: Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core'"
end
end

Pod::Spec.new do |s|
s.name = pubspec['name']
s.version = library_version
Expand All @@ -32,7 +19,6 @@ Pod::Spec.new do |s|
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Google-Mobile-Ads-SDK'

s.ios.deployment_target = '8.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -34,8 +33,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Analytics', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Analytics', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -33,8 +32,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Auth', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Auth', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
2 changes: 1 addition & 1 deletion packages/firebase_core/firebase_core/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ android {
}
dependencies {
implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrDefaultProperty("FirebaseSDKVersion")}")
implementation "com.google.firebase:firebase-core"
implementation "com.google.firebase:firebase-common"

implementation 'androidx.annotation:annotation:1.1.0'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,6 @@ if (flutterVersionName == null) {
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

// Optionally override the Firebase BoM SDK version that FlutterFire uses.
// rootProject.ext {
// set("FlutterFire", [
// FirebaseSDKVersion: "25.3.1",
// ])
// }

android {
compileSdkVersion 29

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -34,7 +33,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

# Firebase dependencies
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/CoreOnly', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -32,8 +31,7 @@ Pod::Spec.new do |s|
s.ios.deployment_target = '8.0'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Crashlytics', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Crashlytics', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
4 changes: 1 addition & 3 deletions packages/firebase_database/ios/firebase_database.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -33,8 +32,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Database', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Database', firebase_sdk_version

s.static_framework = true
s.pod_target_xcconfig = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -31,8 +30,7 @@ Pod::Spec.new do |s|
s.ios.deployment_target = '8.0'
s.static_framework = true
s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/DynamicLinks', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/DynamicLinks', firebase_sdk_version

s.pod_target_xcconfig = {
'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-dl\\\"",
Expand Down
2 changes: 1 addition & 1 deletion packages/firebase_in_app_messaging/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ android {
}

dependencies {
implementation 'com.android.support:support-annotations:28.0.0'
implementation 'androidx.annotation:annotation:1.1.0'
}

// TODO(<github-username>): Remove this hack once androidx.lifecycle is included on stable. https://github.com/flutter/flutter/issues/42348
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand All @@ -29,8 +28,7 @@ Pod::Spec.new do |s|
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/InAppMessaging', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/InAppMessaging', firebase_sdk_version
s.static_framework = true

s.ios.deployment_target = '8.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,6 @@ apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

rootProject.ext {
set('FlutterFire', [
FirebaseSDKVersion: '25.12.0'
])
}


android {
compileSdkVersion 29

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
library_version = pubspec['version'].gsub('+', '-')

firebase_sdk_version = '6.33.0'
if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
Expand Down Expand Up @@ -34,8 +33,7 @@ Pod::Spec.new do |s|
s.dependency 'Flutter'

s.dependency 'firebase_core'
s.dependency 'Firebase/CoreOnly', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Messaging', "~> #{firebase_sdk_version}"
s.dependency 'Firebase/Messaging', firebase_sdk_version
s.static_framework = true
s.pod_target_xcconfig = {
'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-fcm\\\"",
Expand Down
21 changes: 18 additions & 3 deletions packages/firebase_ml_custom/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ rootProject.allprojects {

apply plugin: 'com.android.library'

def firebaseCoreProject = findProject(':firebase_core')
if (firebaseCoreProject == null) {
throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?')
} else if (!firebaseCoreProject.properties['FirebaseSDKVersion']) {
throw new GradleException('A newer version of the firebase_core FlutterFire plugin is required, please update your firebase_core pubspec dependency.')
}

def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) {
if (!rootProject.ext.has('FlutterFire')) return firebaseCoreProject.properties[name]
if (!rootProject.ext.get('FlutterFire')[name]) return firebaseCoreProject.properties[name]
return rootProject.ext.get('FlutterFire').get(name)
}

android {
compileSdkVersion 29

Expand All @@ -32,9 +45,11 @@ android {
disable 'InvalidPackage'
}
dependencies {
api 'com.google.firebase:firebase-ml-model-interpreter:22.0.3'
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.0.0'
api firebaseCoreProject
implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}")
api 'com.google.firebase:firebase-ml-model-interpreter'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.exifinterface:exifinterface:1.3.1'
}
}

Expand Down
15 changes: 14 additions & 1 deletion packages/firebase_ml_custom/ios/firebase_ml_custom.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@ require 'yaml'
pubspec = YAML.load_file(File.join('..', 'pubspec.yaml'))
libraryVersion = pubspec['version'].gsub('+', '-')

if defined?($FirebaseSDKVersion)
Pod::UI.puts "#{pubspec['name']}: Using user specified Firebase SDK version '#{$FirebaseSDKVersion}'"
firebase_sdk_version = $FirebaseSDKVersion
else
firebase_core_script = File.join(File.expand_path('..', File.expand_path('..', File.dirname(__FILE__))), 'firebase_core/ios/firebase_sdk_version.rb')
if File.exist?(firebase_core_script)
require firebase_core_script
firebase_sdk_version = firebase_sdk_version!
Pod::UI.puts "#{pubspec['name']}: Using Firebase SDK version '#{firebase_sdk_version}' defined in 'firebase_core'"
end
end

Pod::Spec.new do |s|
s.name = 'firebase_ml_custom'
s.version = '0.0.1'
Expand All @@ -21,7 +33,8 @@ A new Flutter plugin.
s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'Firebase/MLModelInterpreter', "~> 6.33.0"
s.dependency 'firebase_core'
s.dependency 'Firebase/MLModelInterpreter', firebase_sdk_version
s.ios.deployment_target = '9.0'
s.static_framework = true

Expand Down
15 changes: 14 additions & 1 deletion packages/firebase_ml_vision/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ rootProject.allprojects {

apply plugin: 'com.android.library'

def firebaseCoreProject = findProject(':firebase_core')
if (firebaseCoreProject == null) {
throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?')
} else if (!firebaseCoreProject.properties['FirebaseSDKVersion']) {
throw new GradleException('A newer version of the firebase_core FlutterFire plugin is required, please update your firebase_core pubspec dependency.')
}

def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) {
if (!rootProject.ext.has('FlutterFire')) return firebaseCoreProject.properties[name]
if (!rootProject.ext.get('FlutterFire')[name]) return firebaseCoreProject.properties[name]
return rootProject.ext.get('FlutterFire').get(name)
}

android {
compileSdkVersion 29

Expand All @@ -32,7 +45,7 @@ android {
disable 'InvalidPackage'
}
dependencies {
implementation platform("com.google.firebase:firebase-bom:25.13.0")
implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}")
implementation 'com.google.firebase:firebase-common'
api "com.google.firebase:firebase-ml-vision"

Expand Down
Loading