diff --git a/Example/Podfile b/Example/Podfile index ae864cc9dc..b63fcbbca6 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -21,7 +21,7 @@ target 'Core_Example_iOS' do # The next line is the forcing function for the Firebase pod. The Firebase # version's subspecs should depend on the component versions in the # corresponding podspec's in this repo. - pod 'Firebase/CoreOnly', '6.13.0' + pod 'Firebase/CoreOnly', '6.14.0' target 'Core_Tests_iOS' do inherit! :search_paths diff --git a/Firebase.podspec b/Firebase.podspec index 0c49329ffc..453805062d 100644 --- a/Firebase.podspec +++ b/Firebase.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Firebase' - s.version = '6.13.0' + s.version = '6.14.0' s.summary = 'Firebase for iOS (plus community support for macOS and tvOS)' s.description = <<-DESC @@ -31,12 +31,12 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.default_subspec = 'Core' s.subspec 'Core' do |ss| - ss.ios.dependency 'FirebaseAnalytics', '6.1.6' + ss.ios.dependency 'FirebaseAnalytics', '6.1.7' ss.dependency 'Firebase/CoreOnly' end s.subspec 'CoreOnly' do |ss| - ss.dependency 'FirebaseCore', '6.4.0' + ss.dependency 'FirebaseCore', '6.5.0' ss.source_files = 'CoreOnly/Sources/Firebase.h' ss.preserve_paths = 'CoreOnly/Sources/module.modulemap' ss.user_target_xcconfig = { @@ -60,22 +60,22 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.subspec 'Auth' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseAuth', '~> 6.4.0' + ss.dependency 'FirebaseAuth', '~> 6.4.1' end s.subspec 'Database' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseDatabase', '~> 6.1.2' + ss.dependency 'FirebaseDatabase', '~> 6.1.3' end s.subspec 'DynamicLinks' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.ios.dependency 'FirebaseDynamicLinks', '~> 4.0.5' + ss.ios.dependency 'FirebaseDynamicLinks', '~> 4.0.6' end s.subspec 'Firestore' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseFirestore', '~> 1.8.0' + ss.dependency 'FirebaseFirestore', '~> 1.8.2' end s.subspec 'Functions' do |ss| @@ -85,7 +85,7 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.subspec 'InAppMessaging' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.ios.dependency 'FirebaseInAppMessaging', '~> 0.15.5' + ss.ios.dependency 'FirebaseInAppMessaging', '~> 0.15.6' end s.subspec 'InAppMessagingDisplay' do |ss| @@ -95,22 +95,22 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.subspec 'Messaging' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseMessaging', '~> 4.1.9' + ss.dependency 'FirebaseMessaging', '~> 4.1.10' end s.subspec 'Performance' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.ios.dependency 'FirebasePerformance', '~> 3.1.7' + ss.ios.dependency 'FirebasePerformance', '~> 3.1.8' end s.subspec 'RemoteConfig' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseRemoteConfig', '~> 4.4.5' + ss.dependency 'FirebaseRemoteConfig', '~> 4.4.6' end s.subspec 'Storage' do |ss| ss.dependency 'Firebase/CoreOnly' - ss.dependency 'FirebaseStorage', '~> 3.4.2' + ss.dependency 'FirebaseStorage', '~> 3.4.3' end s.subspec 'MLCommon' do |ss| diff --git a/FirebaseAuth.podspec b/FirebaseAuth.podspec index 689c1e5f5a..fb706dd122 100644 --- a/FirebaseAuth.podspec +++ b/FirebaseAuth.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseAuth' - s.version = '6.4.0' + s.version = '6.4.1' s.summary = 'The official iOS client for Firebase Authentication (plus community support for macOS and tvOS)' s.description = <<-DESC diff --git a/FirebaseCore.podspec b/FirebaseCore.podspec index 25287007d2..2cf667a3ba 100644 --- a/FirebaseCore.podspec +++ b/FirebaseCore.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseCore' - s.version = '6.4.0' + s.version = '6.5.0' s.summary = 'Firebase Core for iOS (plus community support for macOS and tvOS)' s.description = <<-DESC @@ -39,7 +39,7 @@ Firebase Core includes FIRApp and FIROptions which provide central configuration s.pod_target_xcconfig = { 'GCC_C_LANGUAGE_STANDARD' => 'c99', 'GCC_PREPROCESSOR_DEFINITIONS' => - 'FIRCore_VERSION=' + s.version.to_s + ' Firebase_VERSION=6.13.0', + 'FIRCore_VERSION=' + s.version.to_s + ' Firebase_VERSION=6.14.0', 'OTHER_CFLAGS' => '-fno-autolink' } s.test_spec 'unit' do |unit_tests| diff --git a/FirebaseDatabase.podspec b/FirebaseDatabase.podspec index 1389646700..241e928d3d 100644 --- a/FirebaseDatabase.podspec +++ b/FirebaseDatabase.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseDatabase' - s.version = '6.1.2' + s.version = '6.1.3' s.summary = 'Firebase Open Source Libraries for iOS (plus community support for macOS and tvOS)' s.description = <<-DESC diff --git a/FirebaseDynamicLinks.podspec b/FirebaseDynamicLinks.podspec index 9deb12818e..20eea8ebf5 100644 --- a/FirebaseDynamicLinks.podspec +++ b/FirebaseDynamicLinks.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseDynamicLinks' - s.version = '4.0.5' + s.version = '4.0.6' s.summary = 'Firebase DynamicLinks for iOS' s.description = <<-DESC diff --git a/FirebaseFirestore.podspec b/FirebaseFirestore.podspec index 94a9694073..5a8bbb831a 100644 --- a/FirebaseFirestore.podspec +++ b/FirebaseFirestore.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseFirestore' - s.version = '1.8.1' + s.version = '1.8.2' s.summary = 'Google Cloud Firestore for iOS' s.description = <<-DESC diff --git a/FirebaseInAppMessaging.podspec b/FirebaseInAppMessaging.podspec index 6b5eefcf40..35bf97b563 100644 --- a/FirebaseInAppMessaging.podspec +++ b/FirebaseInAppMessaging.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseInAppMessaging' - s.version = '0.15.5' + s.version = '0.15.6' s.summary = 'Firebase In-App Messaging for iOS' s.description = <<-DESC diff --git a/FirebaseInstanceID.podspec b/FirebaseInstanceID.podspec index 9d20e3d5fd..cbb8f2afe3 100644 --- a/FirebaseInstanceID.podspec +++ b/FirebaseInstanceID.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseInstanceID' - s.version = '4.2.7' + s.version = '4.2.8' s.summary = 'Firebase InstanceID for iOS' s.description = <<-DESC @@ -37,9 +37,9 @@ services. 'FIRInstanceID_LIB_VERSION=' + String(s.version) } s.framework = 'Security' - s.dependency 'FirebaseCore', '~> 6.4' # Should go to 6.5 in M61 for new private header access - s.dependency 'GoogleUtilities/UserDefaults', '~> 6.0' - s.dependency 'GoogleUtilities/Environment', '~> 6.0' + s.dependency 'FirebaseCore', '~> 6.5' + s.dependency 'GoogleUtilities/UserDefaults', '~> 6.4' + s.dependency 'GoogleUtilities/Environment', '~> 6.4' s.test_spec 'unit' do |unit_tests| unit_tests.source_files = 'Example/InstanceID/Tests/*.[mh]' diff --git a/FirebaseMessaging.podspec b/FirebaseMessaging.podspec index ab6d361f1d..89389770ae 100644 --- a/FirebaseMessaging.podspec +++ b/FirebaseMessaging.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseMessaging' - s.version = '4.1.9' + s.version = '4.1.10' s.summary = 'Firebase Messaging for iOS' s.description = <<-DESC diff --git a/FirebaseRemoteConfig.podspec b/FirebaseRemoteConfig.podspec index df68729ef3..c4e7337909 100644 --- a/FirebaseRemoteConfig.podspec +++ b/FirebaseRemoteConfig.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseRemoteConfig' - s.version = '4.4.5' + s.version = '4.4.6' s.summary = 'Firebase RemoteConfig for iOS' s.description = <<-DESC diff --git a/FirebaseStorage.podspec b/FirebaseStorage.podspec index c8f12b3163..aacba92dc0 100644 --- a/FirebaseStorage.podspec +++ b/FirebaseStorage.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FirebaseStorage' - s.version = '3.4.2' + s.version = '3.4.3' s.summary = 'Firebase Storage for iOS (plus community support for macOS and tvOS)' s.description = <<-DESC diff --git a/Firestore/Example/Podfile b/Firestore/Example/Podfile index 67b0e00b78..1980d283e2 100644 --- a/Firestore/Example/Podfile +++ b/Firestore/Example/Podfile @@ -118,7 +118,7 @@ if is_platform(:ios) # The next line is the forcing function for the Firebase pod. The Firebase # version's subspecs should depend on the component versions in their # corresponding podspecs. - pod 'Firebase/CoreOnly', '6.13.0' + pod 'Firebase/CoreOnly', '6.14.0' configure_local_pods() diff --git a/GoogleDataTransportCCTSupport.podspec b/GoogleDataTransportCCTSupport.podspec index dfb1fa1737..894f0f1f00 100644 --- a/GoogleDataTransportCCTSupport.podspec +++ b/GoogleDataTransportCCTSupport.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'GoogleDataTransportCCTSupport' - s.version = '1.2.2' + s.version = '1.2.3' s.summary = 'Support library for the GoogleDataTransport CCT backend target.' diff --git a/Releases/Manifests/6.14.0.json b/Releases/Manifests/6.14.0.json new file mode 100644 index 0000000000..f98c8a7200 --- /dev/null +++ b/Releases/Manifests/6.14.0.json @@ -0,0 +1,15 @@ +{ + "Firebase":"6.14.0", + "FirebaseAuth":"6.4.1", + "FirebaseCore":"6.5.0", + "FirebaseDatabase":"6.1.3", + "FirebaseDynamicLinks":"4.0.6", + "FirebaseFirestore":"1.8.2", + "FirebaseInAppMessaging":"0.15.6", + "FirebaseInstanceID":"4.2.8", + "FirebaseMessaging":"4.1.10", + "FirebaseRemoteConfig":"4.4.6", + "FirebaseStorage":"3.4.3", + "GoogleDataTransportCCTSupport":"1.2.3", + "GoogleUtilities":"6.4.0" +} diff --git a/Releases/update-versions.py b/Releases/update-versions.py index 9d3677b314..00b4819927 100755 --- a/Releases/update-versions.py +++ b/Releases/update-versions.py @@ -82,6 +82,15 @@ def LogOrRun(command): else: os.system(command) +def LogAndRun(command): + """Log and run a command depending on test_mode value. + + Args: + command: command to log and run. + """ + print 'Log only: {}'.format(command) + os.system(command) + def GetVersionData(git_root, version): """Update version specifier in FIROptions.m. @@ -222,6 +231,9 @@ def GetCpdcInternal(): return output_var +# TODO update PushPodspecs to push dependent pods first, like when FirebaseCore +# depends on the most recent version of GoogleUtilities. + def PushPodspecs(version_data): """Push podspecs to cpdc-firebase. @@ -240,11 +252,12 @@ def PushPodspecs(version_data): warnings_ok = '' podspec = '{}.podspec'.format(pod) - LogOrRun('pod repo push --skip-tests --use-json {} {}{}' + LogAndRun('pod repo push --skip-tests --use-json {} {}{}' .format(GetCpdcInternal(), podspec, warnings_ok)) - LogOrRun('pod repo push --skip-tests --use-json --skip-import-validation ' + + # This command will need to be rerun if any pods need to be pushed from Rapid. + LogAndRun('pod repo push --skip-tests --use-json --skip-import-validation ' + '--sources=sso://cpdc-internal/firebase.git,https://cdn.cocoapods.org' + - ' {} {}{}'.format(GetCpdcInternal(), podspec, warnings_ok)) + ' {} Firebase.podspec {}'.format(GetCpdcInternal(), warnings_ok)) def UpdateVersions(): diff --git a/SymbolCollisionTest/Podfile b/SymbolCollisionTest/Podfile index f4d82e8516..826229ba7c 100644 --- a/SymbolCollisionTest/Podfile +++ b/SymbolCollisionTest/Podfile @@ -8,7 +8,7 @@ target 'SymbolCollisionTest' do # use_frameworks! # Firebase Pods - pod 'Firebase', '6.13.0' + pod 'Firebase', '6.14.0' pod 'FirebaseAnalytics' pod 'FirebaseAuth' pod 'FirebaseCore' diff --git a/ZipBuilder/Sources/ZipBuilder/CarthageUtils.swift b/ZipBuilder/Sources/ZipBuilder/CarthageUtils.swift index a3c228a915..58a419f1f1 100644 --- a/ZipBuilder/Sources/ZipBuilder/CarthageUtils.swift +++ b/ZipBuilder/Sources/ZipBuilder/CarthageUtils.swift @@ -134,7 +134,7 @@ extension CarthageUtils { jsonManifest[firebaseVersion] = url // Write the updated manifest. - let manifestPath = outputDir.appendingPathComponent("Firebase" + product + "Binary.json") + let manifestPath = outputDir.appendingPathComponent(getJSONFileName(product: product)) // Unfortunate workaround: There's a strange issue when serializing to JSON on macOS: URLs // will have the `/` escaped leading to an odd JSON output. Instead, let's output the @@ -256,7 +256,7 @@ extension CarthageUtils { /// - Returns: A dictionary with versions as keys and URLs as values. private static func parseJSONFile(fromDir dir: URL, product: String) -> [String: URL] { // Parse the JSON manifest. - let jsonFileName = "Firebase\(product)Binary.json" + let jsonFileName = getJSONFileName(product: product) let jsonFile = dir.appendingPathComponent(jsonFileName) guard FileManager.default.fileExists(atPath: jsonFile.path) else { fatalError("Could not find JSON manifest for \(product) during Carthage build. " + @@ -281,4 +281,22 @@ extension CarthageUtils { "Location: \(jsonFile). \(error)") } } + + /// Get the JSON filename for a product + /// Consider using just the product name post Firebase 7. The conditions are to handle Firebase 6 compatibility. + /// + /// - Parameters: + /// - product: The name of the Firebase product. + /// - Returns: JSON file name for a product. + private static func getJSONFileName(product: String) -> String { + var jsonFileName: String + if product == "GoogleSignIn" { + jsonFileName = "FirebaseGoogleSignIn" + } else if product == "Google-Mobile-Ads-SDK" { + jsonFileName = "FirebaseAdMob" + } else { + jsonFileName = product + } + return jsonFileName + "Binary.json" + } }