From 9c4a072d1c32d730ff8a26ffac96cc81a949c3db Mon Sep 17 00:00:00 2001 From: demolaf Date: Tue, 9 Jun 2026 16:50:16 +0100 Subject: [PATCH 1/5] feat(FirebaseStorageUI): add FirebaseStorageUISwift SPM product for Swift-typed API Adds a new `FirebaseStorageUISwift` SPM library product with a Swift-only target that provides properly-typed `sd_setImageWithStorageReference(_:)` overloads using `StorageReference` directly, so Swift SPM clients no longer need workarounds. Closes #1271 --- .../SwiftBridge/FirebaseStorageUISwift.swift | 132 ++++++++++++++++++ Package.swift | 13 ++ 2 files changed, 145 insertions(+) create mode 100644 FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift diff --git a/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift new file mode 100644 index 0000000000..ff8798bab5 --- /dev/null +++ b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift @@ -0,0 +1,132 @@ +import UIKit +import SDWebImage +import FirebaseStorage + +@_exported import FirebaseStorageUI + +extension UIImageView { + + public func sd_setImageWithStorageReference(_ storageRef: StorageReference) { + sd_setImageWithStorageReference(storageRef, placeholderImage: nil, completion: nil) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + placeholderImage placeholder: UIImage? + ) { + sd_setImageWithStorageReference(storageRef, placeholderImage: placeholder, completion: nil) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + placeholderImage placeholder: UIImage?, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + ) { + sd_setImageWithStorageReference( + storageRef, + maxImageSize: StorageImageLoader.shared.defaultMaxImageSize, + placeholderImage: placeholder, + options: [], + context: nil, + progress: nil, + completion: completion + ) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + maxImageSize size: UInt64, + placeholderImage placeholder: UIImage?, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + ) { + sd_setImageWithStorageReference( + storageRef, + maxImageSize: size, + placeholderImage: placeholder, + options: [], + context: nil, + progress: nil, + completion: completion + ) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + maxImageSize size: UInt64, + placeholderImage placeholder: UIImage?, + options: SDWebImageOptions, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + ) { + sd_setImageWithStorageReference( + storageRef, + maxImageSize: size, + placeholderImage: placeholder, + options: options, + context: nil, + progress: nil, + completion: completion + ) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + maxImageSize size: UInt64, + placeholderImage placeholder: UIImage?, + options: SDWebImageOptions, + progress progressBlock: ((Int, Int, StorageReference) -> Void)?, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + ) { + sd_setImageWithStorageReference( + storageRef, + maxImageSize: size, + placeholderImage: placeholder, + options: options, + context: nil, + progress: progressBlock, + completion: completion + ) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + maxImageSize size: UInt64, + placeholderImage placeholder: UIImage?, + options: SDWebImageOptions, + context: [SDWebImageContextOption: Any]?, + progress progressBlock: ((Int, Int, StorageReference) -> Void)?, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + ) { + guard let url = Self.storageURL(for: storageRef) else { return } + + var ctx = context ?? [:] + ctx[.imageLoader] = StorageImageLoader.shared + ctx[.fuiStorageMaxImageSize] = size + + let sdProgress: SDImageLoaderProgressBlock? = progressBlock.map { block in + { received, expected, _ in block(Int(received), Int(expected), storageRef) } + } + let sdCompletion: SDExternalCompletionBlock? = completion.map { block in + { image, error, cacheType, _ in block(image, error, cacheType, storageRef) } + } + + sd_setImage( + with: url, + placeholderImage: placeholder, + options: options, + context: ctx, + progress: sdProgress, + completed: sdCompletion + ) + } + + private static func storageURL(for storageRef: StorageReference) -> URL? { + guard !storageRef.bucket.isEmpty else { return nil } + var components = URLComponents() + components.scheme = "gs" + components.host = storageRef.bucket + let path = storageRef.fullPath + components.percentEncodedPath = "/" + (path.addingPercentEncoding( + withAllowedCharacters: .urlPathAllowed) ?? path) + return components.url + } +} diff --git a/Package.swift b/Package.swift index 95bec789eb..373fbb14fe 100644 --- a/Package.swift +++ b/Package.swift @@ -34,6 +34,10 @@ let package = Package( name: "FirebaseStorageUI", targets: ["FirebaseStorageUI"] ), + .library( + name: "FirebaseStorageUISwift", + targets: ["FirebaseStorageUISwift"] + ), .library( name: "FirebaseAuthSwiftUI", targets: ["FirebaseAuthSwiftUI"] @@ -126,6 +130,15 @@ let package = Package( .headerSearchPath("../../"), ] ), + .target( + name: "FirebaseStorageUISwift", + dependencies: [ + "FirebaseStorageUI", + .product(name: "FirebaseStorage", package: "firebase-ios-sdk"), + .product(name: "SDWebImage", package: "SDWebImage"), + ], + path: "FirebaseStorageUI/SwiftBridge" + ), .target( name: "FirebaseAuthUIComponents", dependencies: [], From eea192cea37576c7defc7665b02c91e368ecf8f0 Mon Sep 17 00:00:00 2001 From: demolaf Date: Tue, 9 Jun 2026 16:55:16 +0100 Subject: [PATCH 2/5] refactor(FirebaseStorageUISwift): collapse overloads to single function with defaults and simplify storageURL --- .../SwiftBridge/FirebaseStorageUISwift.swift | 99 ++----------------- 1 file changed, 8 insertions(+), 91 deletions(-) diff --git a/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift index ff8798bab5..5b66da724f 100644 --- a/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift +++ b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift @@ -6,101 +6,20 @@ import FirebaseStorage extension UIImageView { - public func sd_setImageWithStorageReference(_ storageRef: StorageReference) { - sd_setImageWithStorageReference(storageRef, placeholderImage: nil, completion: nil) - } - - public func sd_setImageWithStorageReference( - _ storageRef: StorageReference, - placeholderImage placeholder: UIImage? - ) { - sd_setImageWithStorageReference(storageRef, placeholderImage: placeholder, completion: nil) - } - - public func sd_setImageWithStorageReference( - _ storageRef: StorageReference, - placeholderImage placeholder: UIImage?, - completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? - ) { - sd_setImageWithStorageReference( - storageRef, - maxImageSize: StorageImageLoader.shared.defaultMaxImageSize, - placeholderImage: placeholder, - options: [], - context: nil, - progress: nil, - completion: completion - ) - } - - public func sd_setImageWithStorageReference( - _ storageRef: StorageReference, - maxImageSize size: UInt64, - placeholderImage placeholder: UIImage?, - completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? - ) { - sd_setImageWithStorageReference( - storageRef, - maxImageSize: size, - placeholderImage: placeholder, - options: [], - context: nil, - progress: nil, - completion: completion - ) - } - - public func sd_setImageWithStorageReference( - _ storageRef: StorageReference, - maxImageSize size: UInt64, - placeholderImage placeholder: UIImage?, - options: SDWebImageOptions, - completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? - ) { - sd_setImageWithStorageReference( - storageRef, - maxImageSize: size, - placeholderImage: placeholder, - options: options, - context: nil, - progress: nil, - completion: completion - ) - } - - public func sd_setImageWithStorageReference( - _ storageRef: StorageReference, - maxImageSize size: UInt64, - placeholderImage placeholder: UIImage?, - options: SDWebImageOptions, - progress progressBlock: ((Int, Int, StorageReference) -> Void)?, - completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? - ) { - sd_setImageWithStorageReference( - storageRef, - maxImageSize: size, - placeholderImage: placeholder, - options: options, - context: nil, - progress: progressBlock, - completion: completion - ) - } - public func sd_setImageWithStorageReference( _ storageRef: StorageReference, - maxImageSize size: UInt64, - placeholderImage placeholder: UIImage?, - options: SDWebImageOptions, - context: [SDWebImageContextOption: Any]?, - progress progressBlock: ((Int, Int, StorageReference) -> Void)?, - completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? + maxImageSize size: UInt64? = nil, + placeholderImage placeholder: UIImage? = nil, + options: SDWebImageOptions = [], + context: [SDWebImageContextOption: Any]? = nil, + progress progressBlock: ((Int, Int, StorageReference) -> Void)? = nil, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? = nil ) { guard let url = Self.storageURL(for: storageRef) else { return } var ctx = context ?? [:] ctx[.imageLoader] = StorageImageLoader.shared - ctx[.fuiStorageMaxImageSize] = size + ctx[.fuiStorageMaxImageSize] = size ?? StorageImageLoader.shared.defaultMaxImageSize let sdProgress: SDImageLoaderProgressBlock? = progressBlock.map { block in { received, expected, _ in block(Int(received), Int(expected), storageRef) } @@ -124,9 +43,7 @@ extension UIImageView { var components = URLComponents() components.scheme = "gs" components.host = storageRef.bucket - let path = storageRef.fullPath - components.percentEncodedPath = "/" + (path.addingPercentEncoding( - withAllowedCharacters: .urlPathAllowed) ?? path) + components.path = "/" + storageRef.fullPath return components.url } } From 8996d98578988a1decc6083db0dcde4d3845c968 Mon Sep 17 00:00:00 2001 From: demolaf Date: Tue, 9 Jun 2026 17:03:53 +0100 Subject: [PATCH 3/5] updates --- .../SwiftBridge/FirebaseStorageUISwift.swift | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift index 5b66da724f..72c33a1c3b 100644 --- a/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift +++ b/FirebaseStorageUI/SwiftBridge/FirebaseStorageUISwift.swift @@ -12,7 +12,26 @@ extension UIImageView { placeholderImage placeholder: UIImage? = nil, options: SDWebImageOptions = [], context: [SDWebImageContextOption: Any]? = nil, - progress progressBlock: ((Int, Int, StorageReference) -> Void)? = nil, + completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? = nil + ) { + sd_setImageWithStorageReference( + storageRef, + maxImageSize: size, + placeholderImage: placeholder, + options: options, + context: context, + progress: nil, + completion: completion + ) + } + + public func sd_setImageWithStorageReference( + _ storageRef: StorageReference, + maxImageSize size: UInt64? = nil, + placeholderImage placeholder: UIImage? = nil, + options: SDWebImageOptions = [], + context: [SDWebImageContextOption: Any]? = nil, + progress progressBlock: ((Int, Int, StorageReference) -> Void)?, completion: ((UIImage?, Error?, SDImageCacheType, StorageReference) -> Void)? = nil ) { guard let url = Self.storageURL(for: storageRef) else { return } From 78c134191e66b60e90e3473f63a738858b0f4909 Mon Sep 17 00:00:00 2001 From: demolaf Date: Tue, 9 Jun 2026 17:34:26 +0100 Subject: [PATCH 4/5] fix(FirebaseStorageUI): guard fetcher access to prevent crash with Firebase Storage 9+ --- .../Sources/FUIStorageImageLoader.m | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/FirebaseStorageUI/Sources/FUIStorageImageLoader.m b/FirebaseStorageUI/Sources/FUIStorageImageLoader.m index 44cba661b2..9379bb619c 100644 --- a/FirebaseStorageUI/Sources/FUIStorageImageLoader.m +++ b/FirebaseStorageUI/Sources/FUIStorageImageLoader.m @@ -126,33 +126,31 @@ - (BOOL)canRequestImageForURL:(NSURL *)url { }]; // Observe the progress changes [download observeStatus:FIRStorageTaskStatusProgress handler:^(FIRStorageTaskSnapshot * _Nonnull snapshot) { - // Check progressive decoding if need + // Progressive decoding requires access to partial data via the internal GTMSessionFetcher, + // which was removed in Firebase Storage 9.0.0. Guard to prevent crash; progressive rendering + // is silently skipped on Firebase 9+. if (options & SDWebImageProgressiveLoad) { FIRStorageDownloadTask *task = (FIRStorageDownloadTask *)snapshot.task; - // Currently, FIRStorageDownloadTask does not have the API to grab partial data - // But since FirebaseUI and Firebase are seamless component, we access the internal fetcher here - GTMSessionFetcher *fetcher = task.fetcher; - // Get the partial image data - NSData *partialData = [fetcher.downloadedData copy]; - // Get response - int64_t expectedSize = fetcher.response.expectedContentLength; - expectedSize = expectedSize > 0 ? expectedSize : 0; - int64_t receivedSize = fetcher.downloadedLength; - if (expectedSize != 0) { - // Get the finish status - BOOL finished = receivedSize >= expectedSize; - // This progress block may be called on main queue or global queue (depends configuration), always dispatched on coder queue - if (coderQueue.operationCount == 0) { - [coderQueue addOperationWithBlock:^{ - UIImage *image = SDImageLoaderDecodeProgressiveImageData(partialData, url, finished, task, options, context); - if (image) { - dispatch_main_async_safe(^{ - if (completedBlock) { - completedBlock(image, partialData, nil, NO); - } - }); - } - }]; + if ([task respondsToSelector:@selector(fetcher)]) { + GTMSessionFetcher *fetcher = [task performSelector:@selector(fetcher)]; + NSData *partialData = [fetcher.downloadedData copy]; + int64_t expectedSize = fetcher.response.expectedContentLength; + expectedSize = expectedSize > 0 ? expectedSize : 0; + int64_t receivedSize = fetcher.downloadedLength; + if (expectedSize != 0) { + BOOL finished = receivedSize >= expectedSize; + if (coderQueue.operationCount == 0) { + [coderQueue addOperationWithBlock:^{ + UIImage *image = SDImageLoaderDecodeProgressiveImageData(partialData, url, finished, task, options, context); + if (image) { + dispatch_main_async_safe(^{ + if (completedBlock) { + completedBlock(image, partialData, nil, NO); + } + }); + } + }]; + } } } } From 409d6d0f4ea24bbf18d11a6ebc8f794a2b2ec898 Mon Sep 17 00:00:00 2001 From: demolaf Date: Tue, 9 Jun 2026 17:53:10 +0100 Subject: [PATCH 5/5] chore(samples): migrate FirebaseUI-demo-swift from CocoaPods to SPM and update StorageViewController to use FirebaseStorageUISwift --- .../project.pbxproj | 192 ++- .../Samples/StorageViewController.swift | 5 +- samples/swift/Podfile | 29 - samples/swift/Podfile.lock | 1472 ----------------- 4 files changed, 115 insertions(+), 1583 deletions(-) delete mode 100644 samples/swift/Podfile delete mode 100644 samples/swift/Podfile.lock diff --git a/samples/swift/FirebaseUI-demo-swift.xcodeproj/project.pbxproj b/samples/swift/FirebaseUI-demo-swift.xcodeproj/project.pbxproj index 2030bdd17c..73bf7d76b9 100644 --- a/samples/swift/FirebaseUI-demo-swift.xcodeproj/project.pbxproj +++ b/samples/swift/FirebaseUI-demo-swift.xcodeproj/project.pbxproj @@ -3,17 +3,26 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ + 80406F842FD863380042F477 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F832FD863380042F477 /* FirebaseAuth */; }; + 80406F862FD863380042F477 /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F852FD863380042F477 /* FirebaseDatabase */; }; + 80406F882FD863380042F477 /* FirebaseFirestore in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F872FD863380042F477 /* FirebaseFirestore */; }; + 80406F8A2FD863380042F477 /* FirebaseStorage in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F892FD863380042F477 /* FirebaseStorage */; }; + 80406F8D2FD863E80042F477 /* FirebaseDatabaseUI in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F8C2FD863E80042F477 /* FirebaseDatabaseUI */; }; + 80406F8F2FD863E80042F477 /* FirebaseFirestoreUI in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F8E2FD863E80042F477 /* FirebaseFirestoreUI */; }; + 80406F912FD863E80042F477 /* FirebaseStorageUI in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F902FD863E80042F477 /* FirebaseStorageUI */; }; + 80406F942FD86C530042F477 /* FirebaseDatabaseUI in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F932FD86C530042F477 /* FirebaseDatabaseUI */; }; + 80406F962FD86C530042F477 /* FirebaseFirestoreUI in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F952FD86C530042F477 /* FirebaseFirestoreUI */; }; + 80406F982FD86C530042F477 /* FirebaseStorageUISwift in Frameworks */ = {isa = PBXBuildFile; productRef = 80406F972FD86C530042F477 /* FirebaseStorageUISwift */; }; 89B2924722568B1C00CEF7D7 /* twtrsymbol.png in Resources */ = {isa = PBXBuildFile; fileRef = 89B2924622568B1C00CEF7D7 /* twtrsymbol.png */; }; 8D5F93B01D9B192D00D5A2E4 /* StorageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5F93AF1D9B192D00D5A2E4 /* StorageViewController.swift */; }; 8DABC9891D3D82D600453807 /* FUIAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DABC9881D3D82D600453807 /* FUIAppDelegate.swift */; }; 8DABC9901D3D82D600453807 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8DABC98F1D3D82D600453807 /* Assets.xcassets */; }; 8DABC99E1D3D82D600453807 /* FirebaseUI-demo-swiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DABC99D1D3D82D600453807 /* FirebaseUI-demo-swiftTests.swift */; }; 8DD51E371D873B0D00E2CA51 /* UIStoryboardExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD51E361D873B0D00E2CA51 /* UIStoryboardExtension.swift */; }; - C302C1DC1D91CC7B00ADBD41 /* FUIAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C302C1D51D91CC7B00ADBD41 /* FUIAuthViewController.swift */; }; C302C1DD1D91CC7B00ADBD41 /* ChatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C302C1D71D91CC7B00ADBD41 /* ChatCollectionViewCell.swift */; }; C302C1DE1D91CC7B00ADBD41 /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C302C1D81D91CC7B00ADBD41 /* ChatViewController.swift */; }; C302C1DF1D91CC7B00ADBD41 /* SamplesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C302C1D91D91CC7B00ADBD41 /* SamplesViewController.swift */; }; @@ -22,19 +31,6 @@ C30E94291EF8800D00F032B1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C30E94261EF8800D00F032B1 /* LaunchScreen.storyboard */; }; C30E942B1EF8800D00F032B1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C30E94281EF8800D00F032B1 /* Main.storyboard */; }; C30E942C1EF8801500F032B1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C30E942E1EF8801500F032B1 /* Localizable.strings */; }; - C39833AD1DB7ECB300D257EF /* FUICustomAuthUIDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39833AC1DB7ECB300D257EF /* FUICustomAuthUIDelegate.swift */; }; - C39BC03D1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC03B1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.swift */; }; - C39BC03E1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC03C1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.xib */; }; - C39BC0411DB811630060F6AF /* FUICustomEmailEntryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC03F1DB811630060F6AF /* FUICustomEmailEntryViewController.swift */; }; - C39BC0421DB811630060F6AF /* FUICustomEmailEntryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC0401DB811630060F6AF /* FUICustomEmailEntryViewController.xib */; }; - C39BC0451DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC0431DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.swift */; }; - C39BC0461DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC0441DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.xib */; }; - C39BC0491DB812030060F6AF /* FUICustomPasswordSignInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC0471DB812030060F6AF /* FUICustomPasswordSignInViewController.swift */; }; - C39BC04A1DB812030060F6AF /* FUICustomPasswordSignInViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC0481DB812030060F6AF /* FUICustomPasswordSignInViewController.xib */; }; - C39BC04D1DB812190060F6AF /* FUICustomPasswordSignUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC04B1DB812190060F6AF /* FUICustomPasswordSignUpViewController.swift */; }; - C39BC04E1DB812190060F6AF /* FUICustomPasswordSignUpViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC04C1DB812190060F6AF /* FUICustomPasswordSignUpViewController.xib */; }; - C39BC0511DB812330060F6AF /* FUICustomPasswordVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C39BC04F1DB812330060F6AF /* FUICustomPasswordVerificationViewController.swift */; }; - C39BC0521DB812330060F6AF /* FUICustomPasswordVerificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C39BC0501DB812330060F6AF /* FUICustomPasswordVerificationViewController.xib */; }; C3F23ECD1D80F3300020509F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C3F23ECC1D80F3300020509F /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ @@ -59,7 +55,6 @@ 8DABC99D1D3D82D600453807 /* FirebaseUI-demo-swiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FirebaseUI-demo-swiftTests.swift"; sourceTree = ""; }; 8DABC99F1D3D82D600453807 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8DD51E361D873B0D00E2CA51 /* UIStoryboardExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIStoryboardExtension.swift; sourceTree = ""; }; - C302C1D51D91CC7B00ADBD41 /* FUIAuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUIAuthViewController.swift; sourceTree = ""; }; C302C1D71D91CC7B00ADBD41 /* ChatCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewCell.swift; sourceTree = ""; }; C302C1D81D91CC7B00ADBD41 /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; C302C1D91D91CC7B00ADBD41 /* SamplesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SamplesViewController.swift; sourceTree = ""; }; @@ -152,19 +147,6 @@ C30E94801EF8840900F032B1 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; C30E94811EF884E400F032B1 /* es-PY */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-PY"; path = "es-PY.lproj/Localizable.strings"; sourceTree = ""; }; C383C4531EE742D4002A4204 /* FirebaseUI-demo-swift.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "FirebaseUI-demo-swift.entitlements"; sourceTree = ""; }; - C39833AC1DB7ECB300D257EF /* FUICustomAuthUIDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomAuthUIDelegate.swift; sourceTree = ""; }; - C39BC03B1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomAuthPickerViewController.swift; sourceTree = ""; }; - C39BC03C1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomAuthPickerViewController.xib; sourceTree = ""; }; - C39BC03F1DB811630060F6AF /* FUICustomEmailEntryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomEmailEntryViewController.swift; sourceTree = ""; }; - C39BC0401DB811630060F6AF /* FUICustomEmailEntryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomEmailEntryViewController.xib; sourceTree = ""; }; - C39BC0431DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomPasswordRecoveryViewController.swift; sourceTree = ""; }; - C39BC0441DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomPasswordRecoveryViewController.xib; sourceTree = ""; }; - C39BC0471DB812030060F6AF /* FUICustomPasswordSignInViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomPasswordSignInViewController.swift; sourceTree = ""; }; - C39BC0481DB812030060F6AF /* FUICustomPasswordSignInViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomPasswordSignInViewController.xib; sourceTree = ""; }; - C39BC04B1DB812190060F6AF /* FUICustomPasswordSignUpViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomPasswordSignUpViewController.swift; sourceTree = ""; }; - C39BC04C1DB812190060F6AF /* FUICustomPasswordSignUpViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomPasswordSignUpViewController.xib; sourceTree = ""; }; - C39BC04F1DB812330060F6AF /* FUICustomPasswordVerificationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FUICustomPasswordVerificationViewController.swift; sourceTree = ""; }; - C39BC0501DB812330060F6AF /* FUICustomPasswordVerificationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FUICustomPasswordVerificationViewController.xib; sourceTree = ""; }; C3F23ECC1D80F3300020509F /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -173,6 +155,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 80406F862FD863380042F477 /* FirebaseDatabase in Frameworks */, + 80406F8F2FD863E80042F477 /* FirebaseFirestoreUI in Frameworks */, + 80406F8A2FD863380042F477 /* FirebaseStorage in Frameworks */, + 80406F8D2FD863E80042F477 /* FirebaseDatabaseUI in Frameworks */, + 80406F842FD863380042F477 /* FirebaseAuth in Frameworks */, + 80406F912FD863E80042F477 /* FirebaseStorageUI in Frameworks */, + 80406F942FD86C530042F477 /* FirebaseDatabaseUI in Frameworks */, + 80406F962FD86C530042F477 /* FirebaseFirestoreUI in Frameworks */, + 80406F882FD863380042F477 /* FirebaseFirestore in Frameworks */, + 80406F982FD86C530042F477 /* FirebaseStorageUISwift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -201,7 +193,6 @@ 8DABC9871D3D82D600453807 /* FirebaseUI-demo-swift */, 8DABC99C1D3D82D600453807 /* FirebaseUI-demo-swiftTests */, 8DABC9861D3D82D600453807 /* Products */, - 9C43BF8CA810E7C909775084 /* Pods */, ); sourceTree = ""; }; @@ -237,17 +228,9 @@ path = "FirebaseUI-demo-swiftTests"; sourceTree = ""; }; - 9C43BF8CA810E7C909775084 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - path = Pods; - sourceTree = ""; - }; C302C1D31D91CC7B00ADBD41 /* Samples */ = { isa = PBXGroup; children = ( - C302C1D41D91CC7B00ADBD41 /* Auth */, C302C1D61D91CC7B00ADBD41 /* Chat */, 8D5F93B11D9B193C00D5A2E4 /* Storage */, C302C1D91D91CC7B00ADBD41 /* SamplesViewController.swift */, @@ -257,27 +240,6 @@ path = Samples; sourceTree = ""; }; - C302C1D41D91CC7B00ADBD41 /* Auth */ = { - isa = PBXGroup; - children = ( - C302C1D51D91CC7B00ADBD41 /* FUIAuthViewController.swift */, - C39833AC1DB7ECB300D257EF /* FUICustomAuthUIDelegate.swift */, - C39BC03B1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.swift */, - C39BC03C1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.xib */, - C39BC03F1DB811630060F6AF /* FUICustomEmailEntryViewController.swift */, - C39BC0401DB811630060F6AF /* FUICustomEmailEntryViewController.xib */, - C39BC0431DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.swift */, - C39BC0441DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.xib */, - C39BC0471DB812030060F6AF /* FUICustomPasswordSignInViewController.swift */, - C39BC0481DB812030060F6AF /* FUICustomPasswordSignInViewController.xib */, - C39BC04B1DB812190060F6AF /* FUICustomPasswordSignUpViewController.swift */, - C39BC04C1DB812190060F6AF /* FUICustomPasswordSignUpViewController.xib */, - C39BC04F1DB812330060F6AF /* FUICustomPasswordVerificationViewController.swift */, - C39BC0501DB812330060F6AF /* FUICustomPasswordVerificationViewController.xib */, - ); - path = Auth; - sourceTree = ""; - }; C302C1D61D91CC7B00ADBD41 /* Chat */ = { isa = PBXGroup; children = ( @@ -457,6 +419,10 @@ "es-PY", ); mainGroup = 8DABC97C1D3D82D600453807; + packageReferences = ( + 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, + 80406F922FD86C530042F477 /* XCLocalSwiftPackageReference "../../../FirebaseUI-iOS" */, + ); productRefGroup = 8DABC9861D3D82D600453807 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -473,17 +439,11 @@ buildActionMask = 2147483647; files = ( C30E94291EF8800D00F032B1 /* LaunchScreen.storyboard in Resources */, - C39BC04A1DB812030060F6AF /* FUICustomPasswordSignInViewController.xib in Resources */, - C39BC03E1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.xib in Resources */, C3F23ECD1D80F3300020509F /* GoogleService-Info.plist in Resources */, 89B2924722568B1C00CEF7D7 /* twtrsymbol.png in Resources */, - C39BC0421DB811630060F6AF /* FUICustomEmailEntryViewController.xib in Resources */, C30E942B1EF8800D00F032B1 /* Main.storyboard in Resources */, C30E942C1EF8801500F032B1 /* Localizable.strings in Resources */, 8DABC9901D3D82D600453807 /* Assets.xcassets in Resources */, - C39BC04E1DB812190060F6AF /* FUICustomPasswordSignUpViewController.xib in Resources */, - C39BC0461DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.xib in Resources */, - C39BC0521DB812330060F6AF /* FUICustomPasswordVerificationViewController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -503,20 +463,12 @@ files = ( 8DD51E371D873B0D00E2CA51 /* UIStoryboardExtension.swift in Sources */, C302C1DF1D91CC7B00ADBD41 /* SamplesViewController.swift in Sources */, - C302C1DC1D91CC7B00ADBD41 /* FUIAuthViewController.swift in Sources */, - C39BC0451DB811E70060F6AF /* FUICustomPasswordRecoveryViewController.swift in Sources */, - C39BC03D1DB7F74B0060F6AF /* FUICustomAuthPickerViewController.swift in Sources */, 8D5F93B01D9B192D00D5A2E4 /* StorageViewController.swift in Sources */, - C39BC0491DB812030060F6AF /* FUICustomPasswordSignInViewController.swift in Sources */, - C39BC04D1DB812190060F6AF /* FUICustomPasswordSignUpViewController.swift in Sources */, C302C1DD1D91CC7B00ADBD41 /* ChatCollectionViewCell.swift in Sources */, C302C1DE1D91CC7B00ADBD41 /* ChatViewController.swift in Sources */, - C39BC0411DB811630060F6AF /* FUICustomEmailEntryViewController.swift in Sources */, C302C1E11D91CC7B00ADBD41 /* SampleCell.swift in Sources */, C302C1E01D91CC7B00ADBD41 /* Sample.swift in Sources */, - C39BC0511DB812330060F6AF /* FUICustomPasswordVerificationViewController.swift in Sources */, 8DABC9891D3D82D600453807 /* FUIAppDelegate.swift in Sources */, - C39833AD1DB7ECB300D257EF /* FUICustomAuthUIDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -739,7 +691,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -774,8 +727,11 @@ "\"$(PODS_ROOT)/FirebaseUI/FirebaseDatabaseUI\"", ); INFOPLIST_FILE = "FirebaseUI-demo-swift/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.firebase.auth.example; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = ""; @@ -813,8 +769,11 @@ "\"$(PODS_ROOT)/FirebaseUI/FirebaseDatabaseUI\"", ); INFOPLIST_FILE = "FirebaseUI-demo-swift/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.firebase.auth.example; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = ""; @@ -827,7 +786,11 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = "FirebaseUI-demo-swiftTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "com.firebase.FirebaseUI-demo-swiftTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -840,7 +803,11 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = "FirebaseUI-demo-swiftTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "com.firebase.FirebaseUI-demo-swiftTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -879,6 +846,71 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 80406F922FD86C530042F477 /* XCLocalSwiftPackageReference "../../../FirebaseUI-iOS" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = "../../../FirebaseUI-iOS"; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 12.14.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 80406F832FD863380042F477 /* FirebaseAuth */ = { + isa = XCSwiftPackageProductDependency; + package = 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseAuth; + }; + 80406F852FD863380042F477 /* FirebaseDatabase */ = { + isa = XCSwiftPackageProductDependency; + package = 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseDatabase; + }; + 80406F872FD863380042F477 /* FirebaseFirestore */ = { + isa = XCSwiftPackageProductDependency; + package = 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseFirestore; + }; + 80406F892FD863380042F477 /* FirebaseStorage */ = { + isa = XCSwiftPackageProductDependency; + package = 80406F822FD863380042F477 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseStorage; + }; + 80406F8C2FD863E80042F477 /* FirebaseDatabaseUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseDatabaseUI; + }; + 80406F8E2FD863E80042F477 /* FirebaseFirestoreUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseFirestoreUI; + }; + 80406F902FD863E80042F477 /* FirebaseStorageUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseStorageUI; + }; + 80406F932FD86C530042F477 /* FirebaseDatabaseUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseDatabaseUI; + }; + 80406F952FD86C530042F477 /* FirebaseFirestoreUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseFirestoreUI; + }; + 80406F972FD86C530042F477 /* FirebaseStorageUISwift */ = { + isa = XCSwiftPackageProductDependency; + productName = FirebaseStorageUISwift; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 8DABC97D1D3D82D600453807 /* Project object */; } diff --git a/samples/swift/FirebaseUI-demo-swift/Samples/StorageViewController.swift b/samples/swift/FirebaseUI-demo-swift/Samples/StorageViewController.swift index 288077f8cb..6fc584f273 100644 --- a/samples/swift/FirebaseUI-demo-swift/Samples/StorageViewController.swift +++ b/samples/swift/FirebaseUI-demo-swift/Samples/StorageViewController.swift @@ -16,7 +16,8 @@ import UIKit -import FirebaseStorageUI +import FirebaseStorage +import FirebaseStorageUISwift class StorageViewController: UIViewController { @@ -53,7 +54,7 @@ class StorageViewController: UIViewController { self.storageRef = Storage.storage().reference(withPath: url.path) - self.imageView.sd_setImage(with: self.storageRef, + self.imageView.sd_setImageWithStorageReference(self.storageRef, maxImageSize: 10000000, placeholderImage: nil, options: [.progressiveLoad]) { (image, error, cacheType, storageRef) in diff --git a/samples/swift/Podfile b/samples/swift/Podfile deleted file mode 100644 index d08714b837..0000000000 --- a/samples/swift/Podfile +++ /dev/null @@ -1,29 +0,0 @@ -platform :ios, '15.0' -target 'FirebaseUI-demo-swift' do - use_frameworks! - - # For testing upstream Firebase prerelease compatibility - # pod 'FirebaseAuth', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseDatabase', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseStorage', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseSharedSwift', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseAuthInterop', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseCoreInternal', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseCoreExtension', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseAppCheckInterop', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - # pod 'FirebaseFirestoreInternal', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main' - - pod 'FirebaseUI', :path => '../../' - pod 'FirebaseDatabaseUI', :path => '../../' - pod 'FirebaseFirestoreUI', :path => '../../' - pod 'FirebaseStorageUI', :path => '../../' - - pod 'Firebase/Auth' # For anonymous auth in Chat sample - - target 'FirebaseUI-demo-swiftTests' do - inherit! :search_paths - end - -end diff --git a/samples/swift/Podfile.lock b/samples/swift/Podfile.lock deleted file mode 100644 index 3231f3fe55..0000000000 --- a/samples/swift/Podfile.lock +++ /dev/null @@ -1,1472 +0,0 @@ -PODS: - - abseil/algorithm (1.20240722.0): - - abseil/algorithm/algorithm (= 1.20240722.0) - - abseil/algorithm/container (= 1.20240722.0) - - abseil/algorithm/algorithm (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/algorithm/container (1.20240722.0): - - abseil/algorithm/algorithm - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/base (1.20240722.0): - - abseil/base/atomic_hook (= 1.20240722.0) - - abseil/base/base (= 1.20240722.0) - - abseil/base/base_internal (= 1.20240722.0) - - abseil/base/config (= 1.20240722.0) - - abseil/base/core_headers (= 1.20240722.0) - - abseil/base/cycleclock_internal (= 1.20240722.0) - - abseil/base/dynamic_annotations (= 1.20240722.0) - - abseil/base/endian (= 1.20240722.0) - - abseil/base/errno_saver (= 1.20240722.0) - - abseil/base/fast_type_id (= 1.20240722.0) - - abseil/base/log_severity (= 1.20240722.0) - - abseil/base/malloc_internal (= 1.20240722.0) - - abseil/base/no_destructor (= 1.20240722.0) - - abseil/base/nullability (= 1.20240722.0) - - abseil/base/poison (= 1.20240722.0) - - abseil/base/prefetch (= 1.20240722.0) - - abseil/base/pretty_function (= 1.20240722.0) - - abseil/base/raw_logging_internal (= 1.20240722.0) - - abseil/base/spinlock_wait (= 1.20240722.0) - - abseil/base/strerror (= 1.20240722.0) - - abseil/base/throw_delegate (= 1.20240722.0) - - abseil/base/atomic_hook (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/base/base (1.20240722.0): - - abseil/base/atomic_hook - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/cycleclock_internal - - abseil/base/dynamic_annotations - - abseil/base/log_severity - - abseil/base/nullability - - abseil/base/raw_logging_internal - - abseil/base/spinlock_wait - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/base/base_internal (1.20240722.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/base/config (1.20240722.0): - - abseil/xcprivacy - - abseil/base/core_headers (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/base/cycleclock_internal (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/xcprivacy - - abseil/base/dynamic_annotations (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/base/endian (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/xcprivacy - - abseil/base/errno_saver (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/base/fast_type_id (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/base/log_severity (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/base/malloc_internal (1.20240722.0): - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/base/no_destructor (1.20240722.0): - - abseil/base/config - - abseil/base/nullability - - abseil/xcprivacy - - abseil/base/nullability (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/base/poison (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/malloc_internal - - abseil/xcprivacy - - abseil/base/prefetch (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/base/pretty_function (1.20240722.0): - - abseil/xcprivacy - - abseil/base/raw_logging_internal (1.20240722.0): - - abseil/base/atomic_hook - - abseil/base/config - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/base/log_severity - - abseil/xcprivacy - - abseil/base/spinlock_wait (1.20240722.0): - - abseil/base/base_internal - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/xcprivacy - - abseil/base/strerror (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/xcprivacy - - abseil/base/throw_delegate (1.20240722.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/cleanup/cleanup (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/cleanup/cleanup_internal - - abseil/xcprivacy - - abseil/cleanup/cleanup_internal (1.20240722.0): - - abseil/base/base_internal - - abseil/base/core_headers - - abseil/utility/utility - - abseil/xcprivacy - - abseil/container/common (1.20240722.0): - - abseil/meta/type_traits - - abseil/types/optional - - abseil/xcprivacy - - abseil/container/common_policy_traits (1.20240722.0): - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/container/compressed_tuple (1.20240722.0): - - abseil/utility/utility - - abseil/xcprivacy - - abseil/container/container_memory (1.20240722.0): - - abseil/base/config - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/utility/utility - - abseil/xcprivacy - - abseil/container/fixed_array (1.20240722.0): - - abseil/algorithm/algorithm - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/throw_delegate - - abseil/container/compressed_tuple - - abseil/memory/memory - - abseil/xcprivacy - - abseil/container/flat_hash_map (1.20240722.0): - - abseil/algorithm/container - - abseil/base/core_headers - - abseil/container/container_memory - - abseil/container/hash_container_defaults - - abseil/container/raw_hash_map - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/container/flat_hash_set (1.20240722.0): - - abseil/algorithm/container - - abseil/base/core_headers - - abseil/container/container_memory - - abseil/container/hash_container_defaults - - abseil/container/raw_hash_set - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/container/hash_container_defaults (1.20240722.0): - - abseil/base/config - - abseil/container/hash_function_defaults - - abseil/xcprivacy - - abseil/container/hash_function_defaults (1.20240722.0): - - abseil/base/config - - abseil/container/common - - abseil/hash/hash - - abseil/meta/type_traits - - abseil/strings/cord - - abseil/strings/strings - - abseil/xcprivacy - - abseil/container/hash_policy_traits (1.20240722.0): - - abseil/container/common_policy_traits - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/container/hashtable_debug_hooks (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/container/hashtablez_sampler (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/no_destructor - - abseil/base/raw_logging_internal - - abseil/debugging/stacktrace - - abseil/memory/memory - - abseil/profiling/exponential_biased - - abseil/profiling/sample_recorder - - abseil/synchronization/synchronization - - abseil/time/time - - abseil/utility/utility - - abseil/xcprivacy - - abseil/container/inlined_vector (1.20240722.0): - - abseil/algorithm/algorithm - - abseil/base/core_headers - - abseil/base/throw_delegate - - abseil/container/inlined_vector_internal - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/container/inlined_vector_internal (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/container/compressed_tuple - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/types/span - - abseil/xcprivacy - - abseil/container/layout (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/debugging/demangle_internal - - abseil/meta/type_traits - - abseil/strings/strings - - abseil/types/span - - abseil/utility/utility - - abseil/xcprivacy - - abseil/container/raw_hash_map (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/throw_delegate - - abseil/container/container_memory - - abseil/container/raw_hash_set - - abseil/xcprivacy - - abseil/container/raw_hash_set (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/endian - - abseil/base/prefetch - - abseil/base/raw_logging_internal - - abseil/container/common - - abseil/container/compressed_tuple - - abseil/container/container_memory - - abseil/container/hash_policy_traits - - abseil/container/hashtable_debug_hooks - - abseil/container/hashtablez_sampler - - abseil/hash/hash - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/utility/utility - - abseil/xcprivacy - - abseil/crc/cpu_detect (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/xcprivacy - - abseil/crc/crc32c (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/prefetch - - abseil/crc/cpu_detect - - abseil/crc/crc_internal - - abseil/crc/non_temporal_memcpy - - abseil/strings/str_format - - abseil/strings/strings - - abseil/xcprivacy - - abseil/crc/crc_cord_state (1.20240722.0): - - abseil/base/config - - abseil/base/no_destructor - - abseil/crc/crc32c - - abseil/numeric/bits - - abseil/xcprivacy - - abseil/crc/crc_internal (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/prefetch - - abseil/base/raw_logging_internal - - abseil/crc/cpu_detect - - abseil/memory/memory - - abseil/numeric/bits - - abseil/xcprivacy - - abseil/crc/non_temporal_arm_intrinsics (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/crc/non_temporal_memcpy (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/crc/non_temporal_arm_intrinsics - - abseil/xcprivacy - - abseil/debugging/bounded_utf8_length_sequence (1.20240722.0): - - abseil/base/config - - abseil/numeric/bits - - abseil/xcprivacy - - abseil/debugging/debugging_internal (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/errno_saver - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/debugging/decode_rust_punycode (1.20240722.0): - - abseil/base/config - - abseil/base/nullability - - abseil/debugging/bounded_utf8_length_sequence - - abseil/debugging/utf8_for_code_point - - abseil/xcprivacy - - abseil/debugging/demangle_internal (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/debugging/demangle_rust - - abseil/numeric/bits - - abseil/xcprivacy - - abseil/debugging/demangle_rust (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/debugging/decode_rust_punycode - - abseil/xcprivacy - - abseil/debugging/examine_stack (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/debugging/stacktrace - - abseil/debugging/symbolize - - abseil/xcprivacy - - abseil/debugging/stacktrace (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/raw_logging_internal - - abseil/debugging/debugging_internal - - abseil/xcprivacy - - abseil/debugging/symbolize (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/debugging/debugging_internal - - abseil/debugging/demangle_internal - - abseil/strings/strings - - abseil/xcprivacy - - abseil/debugging/utf8_for_code_point (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/flags/commandlineflag (1.20240722.0): - - abseil/base/config - - abseil/base/fast_type_id - - abseil/flags/commandlineflag_internal - - abseil/strings/strings - - abseil/types/optional - - abseil/xcprivacy - - abseil/flags/commandlineflag_internal (1.20240722.0): - - abseil/base/config - - abseil/base/fast_type_id - - abseil/xcprivacy - - abseil/flags/config (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/flags/path_util - - abseil/flags/program_name - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/xcprivacy - - abseil/flags/flag (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/flags/commandlineflag - - abseil/flags/config - - abseil/flags/flag_internal - - abseil/flags/reflection - - abseil/strings/strings - - abseil/xcprivacy - - abseil/flags/flag_internal (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/flags/commandlineflag - - abseil/flags/commandlineflag_internal - - abseil/flags/config - - abseil/flags/marshalling - - abseil/flags/reflection - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/utility/utility - - abseil/xcprivacy - - abseil/flags/marshalling (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/numeric/int128 - - abseil/strings/str_format - - abseil/strings/strings - - abseil/types/optional - - abseil/xcprivacy - - abseil/flags/path_util (1.20240722.0): - - abseil/base/config - - abseil/strings/strings - - abseil/xcprivacy - - abseil/flags/private_handle_accessor (1.20240722.0): - - abseil/base/config - - abseil/flags/commandlineflag - - abseil/flags/commandlineflag_internal - - abseil/strings/strings - - abseil/xcprivacy - - abseil/flags/program_name (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/flags/path_util - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/xcprivacy - - abseil/flags/reflection (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/no_destructor - - abseil/container/flat_hash_map - - abseil/flags/commandlineflag - - abseil/flags/commandlineflag_internal - - abseil/flags/config - - abseil/flags/private_handle_accessor - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/xcprivacy - - abseil/functional/any_invocable (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/utility/utility - - abseil/xcprivacy - - abseil/functional/bind_front (1.20240722.0): - - abseil/base/base_internal - - abseil/container/compressed_tuple - - abseil/meta/type_traits - - abseil/utility/utility - - abseil/xcprivacy - - abseil/functional/function_ref (1.20240722.0): - - abseil/base/base_internal - - abseil/base/core_headers - - abseil/functional/any_invocable - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/hash/city (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/xcprivacy - - abseil/hash/hash (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/container/fixed_array - - abseil/functional/function_ref - - abseil/hash/city - - abseil/hash/low_level_hash - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/strings/strings - - abseil/types/optional - - abseil/types/variant - - abseil/utility/utility - - abseil/xcprivacy - - abseil/hash/low_level_hash (1.20240722.0): - - abseil/base/config - - abseil/base/endian - - abseil/base/prefetch - - abseil/numeric/int128 - - abseil/xcprivacy - - abseil/log/absl_check (1.20240722.0): - - abseil/log/internal/check_impl - - abseil/xcprivacy - - abseil/log/absl_log (1.20240722.0): - - abseil/log/internal/log_impl - - abseil/xcprivacy - - abseil/log/absl_vlog_is_on (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/log/internal/vlog_config - - abseil/strings/strings - - abseil/xcprivacy - - abseil/log/check (1.20240722.0): - - abseil/log/internal/check_impl - - abseil/log/internal/check_op - - abseil/log/internal/conditions - - abseil/log/internal/log_message - - abseil/log/internal/strip - - abseil/xcprivacy - - abseil/log/globals (1.20240722.0): - - abseil/base/atomic_hook - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/base/raw_logging_internal - - abseil/hash/hash - - abseil/log/internal/vlog_config - - abseil/strings/strings - - abseil/xcprivacy - - abseil/log/internal/append_truncated (1.20240722.0): - - abseil/base/config - - abseil/strings/strings - - abseil/types/span - - abseil/xcprivacy - - abseil/log/internal/check_impl (1.20240722.0): - - abseil/base/core_headers - - abseil/log/internal/check_op - - abseil/log/internal/conditions - - abseil/log/internal/log_message - - abseil/log/internal/strip - - abseil/xcprivacy - - abseil/log/internal/check_op (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/log/internal/nullguard - - abseil/log/internal/nullstream - - abseil/log/internal/strip - - abseil/strings/strings - - abseil/xcprivacy - - abseil/log/internal/conditions (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/log/internal/voidify - - abseil/xcprivacy - - abseil/log/internal/config (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/log/internal/fnmatch (1.20240722.0): - - abseil/base/config - - abseil/strings/strings - - abseil/xcprivacy - - abseil/log/internal/format (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/log/internal/append_truncated - - abseil/log/internal/config - - abseil/log/internal/globals - - abseil/strings/str_format - - abseil/strings/strings - - abseil/time/time - - abseil/types/span - - abseil/xcprivacy - - abseil/log/internal/globals (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/base/raw_logging_internal - - abseil/strings/strings - - abseil/time/time - - abseil/xcprivacy - - abseil/log/internal/log_impl (1.20240722.0): - - abseil/log/absl_vlog_is_on - - abseil/log/internal/conditions - - abseil/log/internal/log_message - - abseil/log/internal/strip - - abseil/xcprivacy - - abseil/log/internal/log_message (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/base/log_severity - - abseil/base/raw_logging_internal - - abseil/base/strerror - - abseil/container/inlined_vector - - abseil/debugging/examine_stack - - abseil/log/globals - - abseil/log/internal/append_truncated - - abseil/log/internal/format - - abseil/log/internal/globals - - abseil/log/internal/log_sink_set - - abseil/log/internal/nullguard - - abseil/log/internal/proto - - abseil/log/log_entry - - abseil/log/log_sink - - abseil/log/log_sink_registry - - abseil/memory/memory - - abseil/strings/strings - - abseil/time/time - - abseil/types/span - - abseil/xcprivacy - - abseil/log/internal/log_sink_set (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/base/no_destructor - - abseil/base/raw_logging_internal - - abseil/cleanup/cleanup - - abseil/log/globals - - abseil/log/internal/config - - abseil/log/internal/globals - - abseil/log/log_entry - - abseil/log/log_sink - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/types/span - - abseil/xcprivacy - - abseil/log/internal/nullguard (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/log/internal/nullstream (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/strings/strings - - abseil/xcprivacy - - abseil/log/internal/proto (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/strings/strings - - abseil/types/span - - abseil/xcprivacy - - abseil/log/internal/strip (1.20240722.0): - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/log/internal/log_message - - abseil/log/internal/nullstream - - abseil/xcprivacy - - abseil/log/internal/vlog_config (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/no_destructor - - abseil/log/internal/fnmatch - - abseil/memory/memory - - abseil/strings/strings - - abseil/synchronization/synchronization - - abseil/types/optional - - abseil/xcprivacy - - abseil/log/internal/voidify (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/log/log (1.20240722.0): - - abseil/log/internal/log_impl - - abseil/log/vlog_is_on - - abseil/xcprivacy - - abseil/log/log_entry (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/log/internal/config - - abseil/strings/strings - - abseil/time/time - - abseil/types/span - - abseil/xcprivacy - - abseil/log/log_sink (1.20240722.0): - - abseil/base/config - - abseil/log/log_entry - - abseil/xcprivacy - - abseil/log/log_sink_registry (1.20240722.0): - - abseil/base/config - - abseil/log/internal/log_sink_set - - abseil/log/log_sink - - abseil/xcprivacy - - abseil/log/vlog_is_on (1.20240722.0): - - abseil/log/absl_vlog_is_on - - abseil/xcprivacy - - abseil/memory (1.20240722.0): - - abseil/memory/memory (= 1.20240722.0) - - abseil/memory/memory (1.20240722.0): - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/meta (1.20240722.0): - - abseil/meta/type_traits (= 1.20240722.0) - - abseil/meta/type_traits (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/numeric/bits (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/numeric/int128 (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/numeric/bits - - abseil/types/compare - - abseil/xcprivacy - - abseil/numeric/representation (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/profiling/exponential_biased (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/xcprivacy - - abseil/profiling/sample_recorder (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/synchronization/synchronization - - abseil/time/time - - abseil/xcprivacy - - abseil/random/bit_gen_ref (1.20240722.0): - - abseil/base/core_headers - - abseil/base/fast_type_id - - abseil/meta/type_traits - - abseil/random/internal/distribution_caller - - abseil/random/internal/fast_uniform_bits - - abseil/random/random - - abseil/xcprivacy - - abseil/random/distributions (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/random/internal/distribution_caller - - abseil/random/internal/fast_uniform_bits - - abseil/random/internal/fastmath - - abseil/random/internal/generate_real - - abseil/random/internal/iostream_state_saver - - abseil/random/internal/traits - - abseil/random/internal/uniform_helper - - abseil/random/internal/wide_multiply - - abseil/strings/strings - - abseil/xcprivacy - - abseil/random/internal/distribution_caller (1.20240722.0): - - abseil/base/config - - abseil/base/fast_type_id - - abseil/utility/utility - - abseil/xcprivacy - - abseil/random/internal/fast_uniform_bits (1.20240722.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/random/internal/traits - - abseil/xcprivacy - - abseil/random/internal/fastmath (1.20240722.0): - - abseil/numeric/bits - - abseil/xcprivacy - - abseil/random/internal/generate_real (1.20240722.0): - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/random/internal/fastmath - - abseil/random/internal/traits - - abseil/xcprivacy - - abseil/random/internal/iostream_state_saver (1.20240722.0): - - abseil/meta/type_traits - - abseil/numeric/int128 - - abseil/xcprivacy - - abseil/random/internal/nonsecure_base (1.20240722.0): - - abseil/base/core_headers - - abseil/container/inlined_vector - - abseil/meta/type_traits - - abseil/random/internal/pool_urbg - - abseil/random/internal/salted_seed_seq - - abseil/random/internal/seed_material - - abseil/types/span - - abseil/xcprivacy - - abseil/random/internal/pcg_engine (1.20240722.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/random/internal/fastmath - - abseil/random/internal/iostream_state_saver - - abseil/xcprivacy - - abseil/random/internal/platform (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/random/internal/pool_urbg (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/random/internal/randen - - abseil/random/internal/seed_material - - abseil/random/internal/traits - - abseil/random/seed_gen_exception - - abseil/types/span - - abseil/xcprivacy - - abseil/random/internal/randen (1.20240722.0): - - abseil/base/raw_logging_internal - - abseil/random/internal/platform - - abseil/random/internal/randen_hwaes - - abseil/random/internal/randen_slow - - abseil/xcprivacy - - abseil/random/internal/randen_engine (1.20240722.0): - - abseil/base/endian - - abseil/meta/type_traits - - abseil/random/internal/iostream_state_saver - - abseil/random/internal/randen - - abseil/xcprivacy - - abseil/random/internal/randen_hwaes (1.20240722.0): - - abseil/base/config - - abseil/random/internal/platform - - abseil/random/internal/randen_hwaes_impl - - abseil/xcprivacy - - abseil/random/internal/randen_hwaes_impl (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/numeric/int128 - - abseil/random/internal/platform - - abseil/xcprivacy - - abseil/random/internal/randen_slow (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/numeric/int128 - - abseil/random/internal/platform - - abseil/xcprivacy - - abseil/random/internal/salted_seed_seq (1.20240722.0): - - abseil/container/inlined_vector - - abseil/meta/type_traits - - abseil/random/internal/seed_material - - abseil/types/optional - - abseil/types/span - - abseil/xcprivacy - - abseil/random/internal/seed_material (1.20240722.0): - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/raw_logging_internal - - abseil/random/internal/fast_uniform_bits - - abseil/strings/strings - - abseil/types/optional - - abseil/types/span - - abseil/xcprivacy - - abseil/random/internal/traits (1.20240722.0): - - abseil/base/config - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/xcprivacy - - abseil/random/internal/uniform_helper (1.20240722.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/random/internal/traits - - abseil/xcprivacy - - abseil/random/internal/wide_multiply (1.20240722.0): - - abseil/base/config - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/random/internal/traits - - abseil/xcprivacy - - abseil/random/random (1.20240722.0): - - abseil/random/distributions - - abseil/random/internal/nonsecure_base - - abseil/random/internal/pcg_engine - - abseil/random/internal/pool_urbg - - abseil/random/internal/randen_engine - - abseil/random/seed_sequences - - abseil/xcprivacy - - abseil/random/seed_gen_exception (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/random/seed_sequences (1.20240722.0): - - abseil/base/config - - abseil/base/nullability - - abseil/random/internal/pool_urbg - - abseil/random/internal/salted_seed_seq - - abseil/random/internal/seed_material - - abseil/random/seed_gen_exception - - abseil/strings/string_view - - abseil/types/span - - abseil/xcprivacy - - abseil/status/status (1.20240722.0): - - abseil/base/atomic_hook - - abseil/base/config - - abseil/base/core_headers - - abseil/base/no_destructor - - abseil/base/nullability - - abseil/base/raw_logging_internal - - abseil/base/strerror - - abseil/container/inlined_vector - - abseil/debugging/stacktrace - - abseil/debugging/symbolize - - abseil/functional/function_ref - - abseil/memory/memory - - abseil/strings/cord - - abseil/strings/str_format - - abseil/strings/strings - - abseil/types/optional - - abseil/types/span - - abseil/xcprivacy - - abseil/status/statusor (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/base/raw_logging_internal - - abseil/meta/type_traits - - abseil/status/status - - abseil/strings/has_ostream_operator - - abseil/strings/str_format - - abseil/strings/strings - - abseil/types/variant - - abseil/utility/utility - - abseil/xcprivacy - - abseil/strings/charset (1.20240722.0): - - abseil/base/core_headers - - abseil/strings/string_view - - abseil/xcprivacy - - abseil/strings/cord (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/nullability - - abseil/base/raw_logging_internal - - abseil/container/inlined_vector - - abseil/crc/crc32c - - abseil/crc/crc_cord_state - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/strings/cord_internal - - abseil/strings/cordz_functions - - abseil/strings/cordz_info - - abseil/strings/cordz_statistics - - abseil/strings/cordz_update_scope - - abseil/strings/cordz_update_tracker - - abseil/strings/internal - - abseil/strings/strings - - abseil/types/compare - - abseil/types/optional - - abseil/types/span - - abseil/xcprivacy - - abseil/strings/cord_internal (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/base/throw_delegate - - abseil/container/compressed_tuple - - abseil/container/container_memory - - abseil/container/inlined_vector - - abseil/container/layout - - abseil/crc/crc_cord_state - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/strings/strings - - abseil/types/span - - abseil/xcprivacy - - abseil/strings/cordz_functions (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/profiling/exponential_biased - - abseil/xcprivacy - - abseil/strings/cordz_handle (1.20240722.0): - - abseil/base/config - - abseil/base/no_destructor - - abseil/base/raw_logging_internal - - abseil/synchronization/synchronization - - abseil/xcprivacy - - abseil/strings/cordz_info (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/container/inlined_vector - - abseil/debugging/stacktrace - - abseil/strings/cord_internal - - abseil/strings/cordz_functions - - abseil/strings/cordz_handle - - abseil/strings/cordz_statistics - - abseil/strings/cordz_update_tracker - - abseil/synchronization/synchronization - - abseil/time/time - - abseil/types/span - - abseil/xcprivacy - - abseil/strings/cordz_statistics (1.20240722.0): - - abseil/base/config - - abseil/strings/cordz_update_tracker - - abseil/xcprivacy - - abseil/strings/cordz_update_scope (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/strings/cord_internal - - abseil/strings/cordz_info - - abseil/strings/cordz_update_tracker - - abseil/xcprivacy - - abseil/strings/cordz_update_tracker (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/strings/has_ostream_operator (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/strings/internal (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/strings/str_format (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/strings/str_format_internal - - abseil/strings/string_view - - abseil/types/span - - abseil/xcprivacy - - abseil/strings/str_format_internal (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/container/fixed_array - - abseil/container/inlined_vector - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/numeric/representation - - abseil/strings/strings - - abseil/types/optional - - abseil/types/span - - abseil/utility/utility - - abseil/xcprivacy - - abseil/strings/string_view (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/base/throw_delegate - - abseil/xcprivacy - - abseil/strings/strings (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/nullability - - abseil/base/raw_logging_internal - - abseil/base/throw_delegate - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/strings/charset - - abseil/strings/internal - - abseil/strings/string_view - - abseil/xcprivacy - - abseil/synchronization/graphcycles_internal (1.20240722.0): - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/synchronization/kernel_timeout_internal (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/time/time - - abseil/xcprivacy - - abseil/synchronization/synchronization (1.20240722.0): - - abseil/base/atomic_hook - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/debugging/stacktrace - - abseil/debugging/symbolize - - abseil/synchronization/graphcycles_internal - - abseil/synchronization/kernel_timeout_internal - - abseil/time/time - - abseil/xcprivacy - - abseil/time (1.20240722.0): - - abseil/time/internal (= 1.20240722.0) - - abseil/time/time (= 1.20240722.0) - - abseil/time/internal (1.20240722.0): - - abseil/time/internal/cctz (= 1.20240722.0) - - abseil/time/internal/cctz (1.20240722.0): - - abseil/time/internal/cctz/civil_time (= 1.20240722.0) - - abseil/time/internal/cctz/time_zone (= 1.20240722.0) - - abseil/time/internal/cctz/civil_time (1.20240722.0): - - abseil/base/config - - abseil/xcprivacy - - abseil/time/internal/cctz/time_zone (1.20240722.0): - - abseil/base/config - - abseil/time/internal/cctz/civil_time - - abseil/xcprivacy - - abseil/time/time (1.20240722.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/numeric/int128 - - abseil/strings/strings - - abseil/time/internal/cctz/civil_time - - abseil/time/internal/cctz/time_zone - - abseil/types/optional - - abseil/xcprivacy - - abseil/types (1.20240722.0): - - abseil/types/any (= 1.20240722.0) - - abseil/types/bad_any_cast (= 1.20240722.0) - - abseil/types/bad_any_cast_impl (= 1.20240722.0) - - abseil/types/bad_optional_access (= 1.20240722.0) - - abseil/types/bad_variant_access (= 1.20240722.0) - - abseil/types/compare (= 1.20240722.0) - - abseil/types/optional (= 1.20240722.0) - - abseil/types/span (= 1.20240722.0) - - abseil/types/variant (= 1.20240722.0) - - abseil/types/any (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/fast_type_id - - abseil/meta/type_traits - - abseil/types/bad_any_cast - - abseil/utility/utility - - abseil/xcprivacy - - abseil/types/bad_any_cast (1.20240722.0): - - abseil/base/config - - abseil/types/bad_any_cast_impl - - abseil/xcprivacy - - abseil/types/bad_any_cast_impl (1.20240722.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/types/bad_optional_access (1.20240722.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/types/bad_variant_access (1.20240722.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/xcprivacy - - abseil/types/compare (1.20240722.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/types/optional (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/nullability - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/types/bad_optional_access - - abseil/utility/utility - - abseil/xcprivacy - - abseil/types/span (1.20240722.0): - - abseil/algorithm/algorithm - - abseil/base/core_headers - - abseil/base/nullability - - abseil/base/throw_delegate - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/types/variant (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/types/bad_variant_access - - abseil/utility/utility - - abseil/xcprivacy - - abseil/utility/utility (1.20240722.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/meta/type_traits - - abseil/xcprivacy - - abseil/xcprivacy (1.20240722.0) - - BoringSSL-GRPC (0.0.37): - - BoringSSL-GRPC/Implementation (= 0.0.37) - - BoringSSL-GRPC/Interface (= 0.0.37) - - BoringSSL-GRPC/Implementation (0.0.37): - - BoringSSL-GRPC/Interface (= 0.0.37) - - BoringSSL-GRPC/Interface (0.0.37) - - Firebase/Auth (12.13.0): - - Firebase/CoreOnly - - FirebaseAuth (~> 12.13.0) - - Firebase/CoreOnly (12.13.0): - - FirebaseCore (~> 12.13.0) - - FirebaseAppCheckInterop (12.13.0) - - FirebaseAuth (12.13.0): - - FirebaseAppCheckInterop (~> 12.13.0) - - FirebaseAuthInterop (~> 12.13.0) - - FirebaseCore (~> 12.13.0) - - FirebaseCoreExtension (~> 12.13.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/Environment (~> 8.1) - - GTMSessionFetcher/Core (< 6.0, >= 3.4) - - RecaptchaInterop (~> 101.0) - - FirebaseAuthInterop (12.13.0) - - FirebaseCore (12.13.0): - - FirebaseCoreInternal (~> 12.13.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreExtension (12.13.0): - - FirebaseCore (~> 12.13.0) - - FirebaseCoreInternal (12.13.0): - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseDatabase (12.13.0): - - FirebaseAppCheckInterop (~> 12.13.0) - - FirebaseCore (~> 12.13.0) - - FirebaseSharedSwift (~> 12.13.0) - - GoogleUtilities/UserDefaults (~> 8.1) - - leveldb-library (~> 1.22) - - FirebaseDatabaseUI (15.1.0): - - FirebaseDatabase (< 13.0, >= 8.0) - - FirebaseFirestore (12.13.0): - - FirebaseCore (~> 12.13.0) - - FirebaseCoreExtension (~> 12.13.0) - - FirebaseFirestoreInternal (~> 12.13.0) - - FirebaseSharedSwift (~> 12.13.0) - - FirebaseFirestoreInternal (12.13.0): - - abseil/algorithm (~> 1.20240722.0) - - abseil/base (~> 1.20240722.0) - - abseil/container/flat_hash_map (~> 1.20240722.0) - - abseil/memory (~> 1.20240722.0) - - abseil/meta (~> 1.20240722.0) - - abseil/strings/strings (~> 1.20240722.0) - - abseil/time (~> 1.20240722.0) - - abseil/types (~> 1.20240722.0) - - FirebaseAppCheckInterop (~> 12.13.0) - - FirebaseCore (~> 12.13.0) - - "gRPC-C++ (~> 1.69.0)" - - gRPC-Core (~> 1.69.0) - - leveldb-library (~> 1.22) - - nanopb (~> 3.30910.0) - - FirebaseFirestoreUI (15.1.0): - - FirebaseFirestore (< 13.0, >= 8.0) - - FirebaseSharedSwift (12.13.0) - - FirebaseStorage (12.13.0): - - FirebaseAppCheckInterop (~> 12.13.0) - - FirebaseAuthInterop (~> 12.13.0) - - FirebaseCore (~> 12.13.0) - - FirebaseCoreExtension (~> 12.13.0) - - GoogleUtilities/Environment (~> 8.1) - - GTMSessionFetcher/Core (< 6.0, >= 3.4) - - FirebaseStorageUI (15.1.0): - - FirebaseStorage (< 13.0, >= 8.0) - - SDWebImage (~> 5.6) - - FirebaseUI (15.1.0): - - FirebaseUI/Database (= 15.1.0) - - FirebaseUI/Firestore (= 15.1.0) - - FirebaseUI/Storage (= 15.1.0) - - FirebaseUI/Database (15.1.0): - - FirebaseDatabaseUI (~> 15.0) - - FirebaseUI/Firestore (15.1.0): - - FirebaseFirestoreUI (~> 15.0) - - FirebaseUI/Storage (15.1.0): - - FirebaseStorageUI (~> 15.0) - - GoogleUtilities/AppDelegateSwizzler (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.1.0): - - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.1.0): - - GoogleUtilities/Environment - - GoogleUtilities/Privacy - - GoogleUtilities/Network (8.1.0): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Privacy - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (8.1.0)": - - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (8.1.0) - - GoogleUtilities/Reachability (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (8.1.0): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - "gRPC-C++ (1.69.0)": - - "gRPC-C++/Implementation (= 1.69.0)" - - "gRPC-C++/Interface (= 1.69.0)" - - "gRPC-C++/Implementation (1.69.0)": - - abseil/algorithm/container (~> 1.20240722.0) - - abseil/base/base (~> 1.20240722.0) - - abseil/base/config (~> 1.20240722.0) - - abseil/base/core_headers (~> 1.20240722.0) - - abseil/base/log_severity (~> 1.20240722.0) - - abseil/base/no_destructor (~> 1.20240722.0) - - abseil/cleanup/cleanup (~> 1.20240722.0) - - abseil/container/flat_hash_map (~> 1.20240722.0) - - abseil/container/flat_hash_set (~> 1.20240722.0) - - abseil/container/inlined_vector (~> 1.20240722.0) - - abseil/flags/flag (~> 1.20240722.0) - - abseil/flags/marshalling (~> 1.20240722.0) - - abseil/functional/any_invocable (~> 1.20240722.0) - - abseil/functional/bind_front (~> 1.20240722.0) - - abseil/functional/function_ref (~> 1.20240722.0) - - abseil/hash/hash (~> 1.20240722.0) - - abseil/log/absl_check (~> 1.20240722.0) - - abseil/log/absl_log (~> 1.20240722.0) - - abseil/log/check (~> 1.20240722.0) - - abseil/log/globals (~> 1.20240722.0) - - abseil/log/log (~> 1.20240722.0) - - abseil/memory/memory (~> 1.20240722.0) - - abseil/meta/type_traits (~> 1.20240722.0) - - abseil/numeric/bits (~> 1.20240722.0) - - abseil/random/bit_gen_ref (~> 1.20240722.0) - - abseil/random/distributions (~> 1.20240722.0) - - abseil/random/random (~> 1.20240722.0) - - abseil/status/status (~> 1.20240722.0) - - abseil/status/statusor (~> 1.20240722.0) - - abseil/strings/cord (~> 1.20240722.0) - - abseil/strings/str_format (~> 1.20240722.0) - - abseil/strings/strings (~> 1.20240722.0) - - abseil/synchronization/synchronization (~> 1.20240722.0) - - abseil/time/time (~> 1.20240722.0) - - abseil/types/optional (~> 1.20240722.0) - - abseil/types/span (~> 1.20240722.0) - - abseil/types/variant (~> 1.20240722.0) - - abseil/utility/utility (~> 1.20240722.0) - - "gRPC-C++/Interface (= 1.69.0)" - - "gRPC-C++/Privacy (= 1.69.0)" - - gRPC-Core (= 1.69.0) - - "gRPC-C++/Interface (1.69.0)" - - "gRPC-C++/Privacy (1.69.0)" - - gRPC-Core (1.69.0): - - gRPC-Core/Implementation (= 1.69.0) - - gRPC-Core/Interface (= 1.69.0) - - gRPC-Core/Implementation (1.69.0): - - abseil/algorithm/container (~> 1.20240722.0) - - abseil/base/base (~> 1.20240722.0) - - abseil/base/config (~> 1.20240722.0) - - abseil/base/core_headers (~> 1.20240722.0) - - abseil/base/log_severity (~> 1.20240722.0) - - abseil/base/no_destructor (~> 1.20240722.0) - - abseil/cleanup/cleanup (~> 1.20240722.0) - - abseil/container/flat_hash_map (~> 1.20240722.0) - - abseil/container/flat_hash_set (~> 1.20240722.0) - - abseil/container/inlined_vector (~> 1.20240722.0) - - abseil/flags/flag (~> 1.20240722.0) - - abseil/flags/marshalling (~> 1.20240722.0) - - abseil/functional/any_invocable (~> 1.20240722.0) - - abseil/functional/bind_front (~> 1.20240722.0) - - abseil/functional/function_ref (~> 1.20240722.0) - - abseil/hash/hash (~> 1.20240722.0) - - abseil/log/check (~> 1.20240722.0) - - abseil/log/globals (~> 1.20240722.0) - - abseil/log/log (~> 1.20240722.0) - - abseil/memory/memory (~> 1.20240722.0) - - abseil/meta/type_traits (~> 1.20240722.0) - - abseil/numeric/bits (~> 1.20240722.0) - - abseil/random/bit_gen_ref (~> 1.20240722.0) - - abseil/random/distributions (~> 1.20240722.0) - - abseil/random/random (~> 1.20240722.0) - - abseil/status/status (~> 1.20240722.0) - - abseil/status/statusor (~> 1.20240722.0) - - abseil/strings/cord (~> 1.20240722.0) - - abseil/strings/str_format (~> 1.20240722.0) - - abseil/strings/strings (~> 1.20240722.0) - - abseil/synchronization/synchronization (~> 1.20240722.0) - - abseil/time/time (~> 1.20240722.0) - - abseil/types/optional (~> 1.20240722.0) - - abseil/types/span (~> 1.20240722.0) - - abseil/types/variant (~> 1.20240722.0) - - abseil/utility/utility (~> 1.20240722.0) - - BoringSSL-GRPC (= 0.0.37) - - gRPC-Core/Interface (= 1.69.0) - - gRPC-Core/Privacy (= 1.69.0) - - gRPC-Core/Interface (1.69.0) - - gRPC-Core/Privacy (1.69.0) - - GTMSessionFetcher/Core (5.3.0) - - leveldb-library (1.22.6) - - nanopb (3.30910.0): - - nanopb/decode (= 3.30910.0) - - nanopb/encode (= 3.30910.0) - - nanopb/decode (3.30910.0) - - nanopb/encode (3.30910.0) - - RecaptchaInterop (101.0.0) - - SDWebImage (5.21.7): - - SDWebImage/Core (= 5.21.7) - - SDWebImage/Core (5.21.7) - -DEPENDENCIES: - - Firebase/Auth - - FirebaseDatabaseUI (from `../../`) - - FirebaseFirestoreUI (from `../../`) - - FirebaseStorageUI (from `../../`) - - FirebaseUI (from `../../`) - -SPEC REPOS: - trunk: - - abseil - - BoringSSL-GRPC - - Firebase - - FirebaseAppCheckInterop - - FirebaseAuth - - FirebaseAuthInterop - - FirebaseCore - - FirebaseCoreExtension - - FirebaseCoreInternal - - FirebaseDatabase - - FirebaseFirestore - - FirebaseFirestoreInternal - - FirebaseSharedSwift - - FirebaseStorage - - GoogleUtilities - - "gRPC-C++" - - gRPC-Core - - GTMSessionFetcher - - leveldb-library - - nanopb - - RecaptchaInterop - - SDWebImage - -EXTERNAL SOURCES: - FirebaseDatabaseUI: - :path: "../../" - FirebaseFirestoreUI: - :path: "../../" - FirebaseStorageUI: - :path: "../../" - FirebaseUI: - :path: "../../" - -SPEC CHECKSUMS: - abseil: a05cc83bf02079535e17169a73c5be5ba47f714b - BoringSSL-GRPC: dded2a44897e45f28f08ae87a55ee4bcd19bc508 - Firebase: 7d62445aeabdaea36f7d372f33052fed9a72514f - FirebaseAppCheckInterop: db09d7412340fb4b5a8727d4d410e5a5c780dd56 - FirebaseAuth: fedecd40125af7f898ba4f0a328ac9f3a9c3b8c4 - FirebaseAuthInterop: 63d36ca102054d7336f87aec87b1c68a0bab77e0 - FirebaseCore: 58905958aa00a061397a0fd759ae4b55bddb3576 - FirebaseCoreExtension: 5b94169f1ee96ecc2dbde40bc53690e4d65eb652 - FirebaseCoreInternal: 37bee58388fc6d183f0ab1b32d69ae44f2cf8aad - FirebaseDatabase: a686e507e65ddfb2776e27be780125195e70fcfc - FirebaseDatabaseUI: 5280abb5536ee0947e23ab8aaf009342b78a5eb2 - FirebaseFirestore: e5c352f6cc5158929702a7dffc0b917324907e89 - FirebaseFirestoreInternal: f5748d57cf73bb51f01ecebce87c72321193e388 - FirebaseFirestoreUI: c9143099b660e91d14d1f9724775b8af050f9ec0 - FirebaseSharedSwift: 76bdd9de8ff1da7a601236ee058253e36206978e - FirebaseStorage: a4709ed4e33f0b19dc6ac4889bb3c946fe8865ef - FirebaseStorageUI: 538adcf903a6bde4fd3dce824b7861ee643c329e - FirebaseUI: 9baf95c47831ae3361ec63e3866282b5ffa966d8 - GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 - "gRPC-C++": cc207623316fb041a7a3e774c252cf68a058b9e8 - gRPC-Core: 860978b7db482de8b4f5e10677216309b5ff6330 - GTMSessionFetcher: 127211aeec0b1e904fc49f4f6f895dcc535b0ecf - leveldb-library: cc8b8f8e013647a295ad3f8cd2ddf49a6f19be19 - nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba - SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf - -PODFILE CHECKSUM: 2d90705d114c001695bfefd19b311ad23fed1361 - -COCOAPODS: 1.16.2