From 454098c2f508505fc55c60c577250b8610abaaf3 Mon Sep 17 00:00:00 2001 From: lpw <pengwei.li@gamehollywood.com> Date: Tue, 26 Jan 2021 09:39:45 +0800 Subject: [PATCH] 3.9.2 --- frameworks/WAFirebaseImpl.framework/Headers/WAFirebaseImpl.h | 2 WAFirebaseImpl.podspec | 2 frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h | 15 frameworks/FirebaseInstallations.framework/Headers/FIRInstallations.h | 27 frameworks/GoogleUtilities.framework/Headers/GULLogger.h | 8 frameworks/GoogleUtilities.framework/Headers/GULObjectSwizzler.h | 123 +++ config/wa_sdk_impl_config_firebase.xml | 2 frameworks/GoogleAppMeasurement.framework/Info.plist | 20 frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements-1 | 0 frameworks/nanopb.framework/Headers/pb_encode.h | 2 frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h | 25 frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeDirectory | 0 frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h | 1 frameworks/GoogleUtilities.framework/Headers/GULNetwork.h | 87 ++ frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap | 13 frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement | 0 frameworks/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h | 14 frameworks/GoogleUtilities.framework/Headers/GULReachabilityChecker.h | 79 ++ frameworks/FirebaseCore.framework/Headers/FirebaseCore.h | 1 frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h | 11 frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h | 7 frameworks/GoogleUtilities.framework/Headers/GULSwizzledObject.h | 44 + frameworks/FirebaseAnalytics.framework/Modules/module.modulemap | 15 frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h | 0 frameworks/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h | 47 + frameworks/FirebaseInstallations.framework/Info.plist | 20 frameworks/FirebaseAnalytics.framework/Info.plist | 20 frameworks/GoogleUtilities.framework/Info.plist | 20 frameworks/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h | 107 +++ frameworks/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h | 37 + frameworks/GoogleUtilities.framework/Headers/GULNetworkURLSession.h | 62 ++ frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h | 33 + frameworks/nanopb.framework/nanopb | 0 frameworks/GoogleUtilities.framework/Headers/GULKeychainStorage.h | 0 frameworks/FirebaseCore.framework/Headers/FIRVersion.h | 9 frameworks/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h | 15 frameworks/nanopb.framework/Headers/pb.h | 2 frameworks/FirebaseCore.framework/FirebaseCore | 0 frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h | 41 + frameworks/GoogleUtilities.framework/Headers/GULApplication.h | 50 + frameworks/GoogleUtilities.framework/Headers/GULMutableDictionary.h | 46 + frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h | 0 WAFirebaseImpl/3.9.2/WAFirebaseImpl.podspec | 25 frameworks/GoogleDataTransport.framework/GoogleDataTransport | 0 frameworks/GoogleUtilities.framework/Headers/GULOriginalIMPConvenienceMacros.h | 207 ++++++ frameworks/FirebaseAnalytics.framework/FirebaseAnalytics | 0 frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h | 6 frameworks/GoogleUtilities.framework/Headers/GULSwizzler.h | 71 ++ frameworks/GoogleUtilities.framework/Headers/GULKeychainUtils.h | 0 frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeResources | 8 frameworks/WAFirebaseImpl.framework/Info.plist | 0 frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeSignature | 0 frameworks/GoogleDataTransport.framework/Info.plist | 20 frameworks/FirebaseCore.framework/Info.plist | 20 frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h | 1 frameworks/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h | 36 + frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h | 24 frameworks/FirebaseCoreDiagnostics.framework/Info.plist | 20 /dev/null | 56 - frameworks/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h | 49 + frameworks/FirebaseInstallations.framework/FirebaseInstallations | 0 frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h | 4 frameworks/GoogleUtilities.framework/Headers/GULUserDefaults.h | 110 +++ frameworks/FirebaseCore.framework/Headers/FIROptions.h | 7 frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements | 0 frameworks/PromisesObjC.framework/Info.plist | 20 frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics | 0 frameworks/WAFirebaseImpl.framework/WAFirebaseImpl | 0 frameworks/nanopb.framework/Info.plist | 20 frameworks/PromisesObjC.framework/PromisesObjC | 0 frameworks/GoogleUtilities.framework/GoogleUtilities | 0 frameworks/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h | 76 ++ frameworks/GoogleUtilities.framework/Headers/GULNetworkConstants.h | 71 ++ frameworks/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h | 0 frameworks/GoogleUtilities.framework/Headers/GULSecureCoding.h | 0 75 files changed, 1,724 insertions(+), 134 deletions(-) diff --git a/WAFirebaseImpl.podspec b/WAFirebaseImpl.podspec index b0058bf..b031530 100644 --- a/WAFirebaseImpl.podspec +++ b/WAFirebaseImpl.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = 'WAFirebaseImpl' -s.version = '3.8.5' +s.version = '3.9.2' s.summary = 'WAFirebaseImpl framework in testing environment.' s.license = 'MIT' s.author = { "Wuyx" => "wuyixin_gh@gamehollywood.com" } diff --git a/WAFirebaseImpl/3.9.2/WAFirebaseImpl.podspec b/WAFirebaseImpl/3.9.2/WAFirebaseImpl.podspec new file mode 100644 index 0000000..b031530 --- /dev/null +++ b/WAFirebaseImpl/3.9.2/WAFirebaseImpl.podspec @@ -0,0 +1,25 @@ +# +# Be sure to run `pod spec lint WAFbImpl.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |s| + +s.name = 'WAFirebaseImpl' +s.version = '3.9.2' +s.summary = 'WAFirebaseImpl framework in testing environment.' +s.license = 'MIT' +s.author = { "Wuyx" => "wuyixin_gh@gamehollywood.com" } +s.homepage = 'http://repo.wingsdk.cn:8082/summary/WAFirebaseImpl.git' +s.source = { :git => "http://admin@repo.wingsdk.cn:8082/r/WAFirebaseImpl.git" , :tag => s.version} +s.platform = :ios +s.ios.deployment_target = "7.0" +s.vendored_frameworks = 'frameworks/*.framework' +s.resources = ['config/*.xml'] +s.requires_arc = true +s.dependency 'WASdkIntf' +s.dependency 'WASdkImpl' +end diff --git a/config/wa_sdk_impl_config_firebase.xml b/config/wa_sdk_impl_config_firebase.xml index 8e8a82a..f543b92 100644 --- a/config/wa_sdk_impl_config_firebase.xml +++ b/config/wa_sdk_impl_config_firebase.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <config> - <version val="Firebase 3.8.5"/> + <version val="Firebase 3.9.2"/> <comps> <!-- 公共模块 --> diff --git a/frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector b/frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector deleted file mode 100755 index a6fbfd8..0000000 --- a/frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector +++ /dev/null Binary files differ diff --git a/frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap b/frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap deleted file mode 100755 index 99a4b1d..0000000 --- a/frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap +++ /dev/null @@ -1,11 +0,0 @@ -framework module FIRAnalyticsConnector { - export * - module * { export * } - link "sqlite3" - link "z" - link framework "CoreData" - link framework "Security" - link framework "StoreKit" - link framework "SystemConfiguration" - link framework "UIKit" -} diff --git a/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics b/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics old mode 100755 new mode 100644 index f05ee85..a1ff87e --- a/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics +++ b/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics Binary files differ diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h b/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h old mode 100755 new mode 100644 diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h b/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h new file mode 100644 index 0000000..686a386 --- /dev/null +++ b/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h @@ -0,0 +1,33 @@ +#import <Foundation/Foundation.h> + +#import "FIRAnalytics.h" + +NS_ASSUME_NONNULL_BEGIN + +/// The type of consent to set. Supported consent types are `ConsentType.adStorage` and +/// `ConsentType.analyticsStorage`. Omitting a type retains its previous status. +typedef NSString *FIRConsentType NS_TYPED_ENUM NS_SWIFT_NAME(ConsentType); +extern FIRConsentType const FIRConsentTypeAdStorage; +extern FIRConsentType const FIRConsentTypeAnalyticsStorage; + +/// The status value of the consent type. Supported statuses are `ConsentStatus.granted` and +/// `ConsentStatus.denied`. +typedef NSString *FIRConsentStatus NS_TYPED_ENUM NS_SWIFT_NAME(ConsentStatus); +extern FIRConsentStatus const FIRConsentStatusDenied; +extern FIRConsentStatus const FIRConsentStatusGranted; + +/// Sets the applicable end user consent state. +@interface FIRAnalytics (Consent) + +/// Sets the applicable end user consent state (e.g. for device identifiers) for this app on this +/// device. Use the consent settings to specify individual consent type values. Settings are +/// persisted across app sessions. By default consent types are set to `ConsentStatus.granted`. +/// +/// @param consentSettings An NSDictionary of consent types. Supported consent type keys are +/// `ConsentType.adStorage` and `ConsentType.analyticsStorage`. Valid values are +/// `ConsentStatus.granted` and `ConsentStatus.denied`. ++ (void)setConsent:(NSDictionary<FIRConsentType, FIRConsentStatus> *)consentSettings; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h b/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h old mode 100755 new mode 100644 index b7a2860..c9ce4e0 --- a/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +++ b/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h @@ -25,14 +25,26 @@ /// <li>ad_activeview</li> /// <li>ad_click</li> /// <li>ad_exposure</li> -/// <li>ad_impression</li> /// <li>ad_query</li> +/// <li>ad_reward</li> /// <li>adunit_exposure</li> +/// <li>app_background</li> /// <li>app_clear_data</li> +/// <li>app_exception</li> /// <li>app_remove</li> +/// <li>app_store_refund</li> +/// <li>app_store_subscription_cancel</li> +/// <li>app_store_subscription_convert</li> +/// <li>app_store_subscription_renew</li> /// <li>app_update</li> +/// <li>app_upgrade</li> +/// <li>dynamic_link_app_open</li> +/// <li>dynamic_link_app_update</li> +/// <li>dynamic_link_first_open</li> /// <li>error</li> +/// <li>firebase_campaign</li> /// <li>first_open</li> +/// <li>first_visit</li> /// <li>in_app_purchase</li> /// <li>notification_dismiss</li> /// <li>notification_foreground</li> @@ -40,6 +52,7 @@ /// <li>notification_receive</li> /// <li>os_update</li> /// <li>session_start</li> +/// <li>session_start_with_rollout</li> /// <li>user_engagement</li> /// </ul> /// @@ -128,8 +141,11 @@ /// session terminates. + (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; -/// The unique ID for this instance of the application. -+ (NSString *)appInstanceID; +/// Returns the unique ID for this instance of the application or nil if +/// `ConsentType.analyticsStorage` has been set to `ConsentStatus.denied`. +/// +/// @see `FIRAnalytics+Consent.h` ++ (nullable NSString *)appInstanceID; /// Clears all analytics data for this instance from the device and resets the app instance ID. /// FIRAnalyticsConfiguration values will be reset to the default values. @@ -149,6 +165,9 @@ /// that parameter. Passing in a nil dictionary will clear all parameters. + (void)setDefaultEventParameters:(nullable NSDictionary<NSString *, id> *)parameters; +/// Unavailable. +- (instancetype)init NS_UNAVAILABLE; + @end NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h b/frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h old mode 100755 new mode 100644 index f43350f..a362afd --- a/frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +++ b/frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h @@ -52,6 +52,21 @@ static NSString *const kFIREventAddToWishlist NS_SWIFT_NAME(AnalyticsEventAddToWishlist) = @"add_to_wishlist"; +/// Ad Impression event. This event signifies when a user sees an ad impression. Note: If you supply +/// the @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency parameter +/// so that revenue metrics can be computed accurately. Params: +/// +/// <ul> +/// <li>@c kFIRParameterAdPlatform (NSString) (optional)</li> +/// <li>@c kFIRParameterAdFormat (NSString) (optional)</li> +/// <li>@c kFIRParameterAdSource (NSString) (optional)</li> +/// <li>@c kFIRParameterAdUnitName (NSString) (optional)</li> +/// <li>@c kFIRParameterCurrency (NSString) (optional)</li> +/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li> +/// </ul> +static NSString *const kFIREventAdImpression NS_SWIFT_NAME(AnalyticsEventAdImpression) = + @"ad_impression"; + /// App Open event. By logging this event when an App becomes active, developers can understand how /// often users leave and return during the course of a Session. Although Sessions are automatically /// reported, this event can provide further clarification around the continuous engagement of diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h b/frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h old mode 100755 new mode 100644 index 7221305..8dbf4b1 --- a/frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +++ b/frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h @@ -22,6 +22,17 @@ static NSString *const kFIRParameterAchievementID NS_SWIFT_NAME(AnalyticsParameterAchievementID) = @"achievement_id"; +/// The ad format (e.g. Banner, Interstitial, Rewarded, Native, Rewarded Interstitial, Instream). +/// (NSString). +/// <pre> +/// NSDictionary *params = @{ +/// kFIRParameterAdFormat : @"Banner", +/// // ... +/// }; +/// </pre> +static NSString *const kFIRParameterAdFormat NS_SWIFT_NAME(AnalyticsParameterAdFormat) = + @"ad_format"; + /// Ad Network Click ID (NSString). Used for network-specific click IDs which vary in format. /// <pre> /// NSDictionary *params = @{ @@ -32,6 +43,36 @@ static NSString *const kFIRParameterAdNetworkClickID NS_SWIFT_NAME(AnalyticsParameterAdNetworkClickID) = @"aclid"; +/// The ad platform (e.g. MoPub, IronSource) (NSString). +/// <pre> +/// NSDictionary *params = @{ +/// kFIRParameterAdPlatform : @"MoPub", +/// // ... +/// }; +/// </pre> +static NSString *const kFIRParameterAdPlatform NS_SWIFT_NAME(AnalyticsParameterAdPlatform) = + @"ad_platform"; + +/// The ad source (e.g. AdColony) (NSString). +/// <pre> +/// NSDictionary *params = @{ +/// kFIRParameterAdSource : @"AdColony", +/// // ... +/// }; +/// </pre> +static NSString *const kFIRParameterAdSource NS_SWIFT_NAME(AnalyticsParameterAdSource) = + @"ad_source"; + +/// The ad unit name (e.g. Banner_03) (NSString). +/// <pre> +/// NSDictionary *params = @{ +/// kFIRParameterAdUnitName : @"Banner_03", +/// // ... +/// }; +/// </pre> +static NSString *const kFIRParameterAdUnitName NS_SWIFT_NAME(AnalyticsParameterAdUnitName) = + @"ad_unit_name"; + /// A product affiliation to designate a supplying company or brick and mortar store location /// (NSString). <pre> /// NSDictionary *params = @{ diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h b/frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h old mode 100755 new mode 100644 diff --git a/frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h b/frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h old mode 100755 new mode 100644 index ed7588a..368f79c --- a/frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +++ b/frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h @@ -1,4 +1,5 @@ #import "FIRAnalytics+AppDelegate.h" +#import "FIRAnalytics+Consent.h" #import "FIRAnalytics.h" #import "FIREventNames.h" #import "FIRParameterNames.h" diff --git a/frameworks/FirebaseAnalytics.framework/Info.plist b/frameworks/FirebaseAnalytics.framework/Info.plist new file mode 100644 index 0000000..df3a9c8 --- /dev/null +++ b/frameworks/FirebaseAnalytics.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>FirebaseAnalytics</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-FirebaseAnalytics</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>FirebaseAnalytics</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.4.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/FirebaseAnalytics.framework/Modules/module.modulemap b/frameworks/FirebaseAnalytics.framework/Modules/module.modulemap old mode 100755 new mode 100644 index d7c5905..aa72782 --- a/frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +++ b/frameworks/FirebaseAnalytics.framework/Modules/module.modulemap @@ -1,12 +1,13 @@ framework module FirebaseAnalytics { - umbrella header "FirebaseAnalytics.h" - export * - module * { export * } - link "sqlite3" - link "z" - link framework "CoreData" +umbrella header "FirebaseAnalytics.h" +export * +module * { export * } + link framework "CoreTelephony" + link framework "Foundation" link framework "Security" - link framework "StoreKit" link framework "SystemConfiguration" link framework "UIKit" + link "c++" + link "sqlite3" + link "z" } diff --git a/frameworks/FirebaseCore.framework/FirebaseCore b/frameworks/FirebaseCore.framework/FirebaseCore index 7774ad9..0c33f7c 100644 --- a/frameworks/FirebaseCore.framework/FirebaseCore +++ b/frameworks/FirebaseCore.framework/FirebaseCore Binary files differ diff --git a/frameworks/FirebaseCore.framework/Headers/FIROptions.h b/frameworks/FirebaseCore.framework/Headers/FIROptions.h index 67fbe5b..afabbf1 100644 --- a/frameworks/FirebaseCore.framework/Headers/FIROptions.h +++ b/frameworks/FirebaseCore.framework/Headers/FIROptions.h @@ -106,7 +106,7 @@ * FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; * Returns nil if the plist file does not exist or is invalid. */ -- (nullable instancetype)initWithContentsOfFile:(NSString *)plistPath; +- (nullable instancetype)initWithContentsOfFile:(NSString *)plistPath NS_DESIGNATED_INITIALIZER; /** * Initializes a customized instance of FIROptions with required fields. Use the mutable properties @@ -115,9 +115,12 @@ // clang-format off - (instancetype)initWithGoogleAppID:(NSString *)googleAppID GCMSenderID:(NSString *)GCMSenderID - NS_SWIFT_NAME(init(googleAppID:gcmSenderID:)); + NS_SWIFT_NAME(init(googleAppID:gcmSenderID:)) NS_DESIGNATED_INITIALIZER; // clang-format on +/** Unavailable. Please use `init(contentsOfFile:)` or `init(googleAppID:gcmSenderID:)` instead. */ +- (instancetype)init NS_UNAVAILABLE; + @end NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h b/frameworks/FirebaseCore.framework/Headers/FIRVersion.h similarity index 80% rename from frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h rename to frameworks/FirebaseCore.framework/Headers/FIRVersion.h index 8cdf677..7fcca4b 100644 --- a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h +++ b/frameworks/FirebaseCore.framework/Headers/FIRVersion.h @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,4 +16,9 @@ #import <Foundation/Foundation.h> -FOUNDATION_EXPORT const char *const FIRInstallationsVersionStr; +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(FirebaseVersion()) +NSString* FIRFirebaseVersion(void); + +NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseCore.framework/Headers/FirebaseCore.h b/frameworks/FirebaseCore.framework/Headers/FirebaseCore.h index 95119ae..680d604 100644 --- a/frameworks/FirebaseCore.framework/Headers/FirebaseCore.h +++ b/frameworks/FirebaseCore.framework/Headers/FirebaseCore.h @@ -18,3 +18,4 @@ #import "FIRConfiguration.h" #import "FIRLoggerLevel.h" #import "FIROptions.h" +#import "FIRVersion.h" diff --git a/frameworks/FirebaseCore.framework/Info.plist b/frameworks/FirebaseCore.framework/Info.plist new file mode 100644 index 0000000..62ca71f --- /dev/null +++ b/frameworks/FirebaseCore.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>FirebaseCore</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-FirebaseCore</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>FirebaseCore</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.4.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics b/frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics index 8f7dd89..dab5a54 100644 --- a/frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics +++ b/frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics Binary files differ diff --git a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h similarity index 75% copy from frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h copy to frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h index 8cdf677..5076d6b 100644 --- a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h +++ b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnostics.h @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,6 +14,5 @@ * limitations under the License. */ -#import <Foundation/Foundation.h> - -FOUNDATION_EXPORT const char *const FIRInstallationsVersionStr; +// There are no actual public headers in the lib. This is a dummy public header to prevent Cocoapods +// from adding all internal headers as public. diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsData.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsData.h deleted file mode 100644 index 69c4072..0000000 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsData.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -NS_ASSUME_NONNULL_BEGIN - -/** If present, is a BOOL wrapped in an NSNumber. */ -#define kFIRCDIsDataCollectionDefaultEnabledKey @"FIRCDIsDataCollectionDefaultEnabledKey" - -/** If present, is an int32_t wrapped in an NSNumber. */ -#define kFIRCDConfigurationTypeKey @"FIRCDConfigurationTypeKey" - -/** If present, is an NSString. */ -#define kFIRCDSdkNameKey @"FIRCDSdkNameKey" - -/** If present, is an NSString. */ -#define kFIRCDSdkVersionKey @"FIRCDSdkVersionKey" - -/** If present, is an int32_t wrapped in an NSNumber. */ -#define kFIRCDllAppsCountKey @"FIRCDllAppsCountKey" - -/** If present, is an NSString. */ -#define kFIRCDGoogleAppIDKey @"FIRCDGoogleAppIDKey" - -/** If present, is an NSString. */ -#define kFIRCDBundleIDKey @"FIRCDBundleID" - -/** If present, is a BOOL wrapped in an NSNumber. */ -#define kFIRCDUsingOptionsFromDefaultPlistKey @"FIRCDUsingOptionsFromDefaultPlistKey" - -/** If present, is an NSString. */ -#define kFIRCDLibraryVersionIDKey @"FIRCDLibraryVersionIDKey" - -/** If present, is an NSString. */ -#define kFIRCDFirebaseUserAgentKey @"FIRCDFirebaseUserAgentKey" - -/** Defines the interface of a data object needed to log diagnostics data. */ -@protocol FIRCoreDiagnosticsData <NSObject> - -@required - -/** A dictionary containing data (non-exhaustive) to be logged in diagnostics. */ -@property(nonatomic) NSDictionary<NSString *, id> *diagnosticObjects; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsInterop.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsInterop.h deleted file mode 100644 index 2b0eb71..0000000 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FIRCoreDiagnosticsInterop.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "FIRCoreDiagnosticsData.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Allows the interoperation of FirebaseCore and FirebaseCoreDiagnostics. */ -@protocol FIRCoreDiagnosticsInterop <NSObject> - -/** Sends the given diagnostics data. - * - * @param diagnosticsData The diagnostics data object to send. - */ -+ (void)sendDiagnosticsData:(id<FIRCoreDiagnosticsData>)diagnosticsData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h index 72a5d03..a27569f 100644 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h +++ b/frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h @@ -10,16 +10,7 @@ #endif #endif -#import "firebasecore.nanopb.h" -#import "GoogleDataTransportInternal.h" -#import "GULAppEnvironmentUtil.h" -#import "GULHeartbeatDateStorage.h" -#import "GULKeychainStorage.h" -#import "GULKeychainUtils.h" -#import "GULSecureCoding.h" -#import "GULLogger.h" -#import "FIRCoreDiagnosticsData.h" -#import "FIRCoreDiagnosticsInterop.h" +#import "FIRCoreDiagnostics.h" FOUNDATION_EXPORT double FirebaseCoreDiagnosticsVersionNumber; FOUNDATION_EXPORT const unsigned char FirebaseCoreDiagnosticsVersionString[]; diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GoogleDataTransportInternal.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/GoogleDataTransportInternal.h deleted file mode 100644 index a002e5c..0000000 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GoogleDataTransportInternal.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// An umbrella header, for any other libraries in this repo to access Firebase Public and Private -// headers. Any package manager complexity should be handled here. - -#import <GoogleDataTransport/GoogleDataTransport.h> diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/firebasecore.nanopb.h b/frameworks/FirebaseCoreDiagnostics.framework/Headers/firebasecore.nanopb.h deleted file mode 100644 index 0c5beec..0000000 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/firebasecore.nanopb.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.3.9.6 */ - -#ifndef PB_LOGS_PROTO_MOBILESDK_IOS_FIREBASECORE_NANOPB_H_INCLUDED -#define PB_LOGS_PROTO_MOBILESDK_IOS_FIREBASECORE_NANOPB_H_INCLUDED -#include <nanopb/pb.h> - -/* @@protoc_insertion_point(includes) */ -#if PB_PROTO_HEADER_VERSION != 30 -#error Regenerate this file with the current version of nanopb generator. -#endif - - -/* Enum definitions */ -typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType { - logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_UNKNOWN_CONFIGURATION_TYPE = 0, - logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_CORE = 1, - logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK = 2 -} logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType; -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_UNKNOWN_CONFIGURATION_TYPE -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType)(logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK+1)) - -typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType { - logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_UNKNOWN_BUILD_TYPE = 0, - logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_INTERNAL = 1, - logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_EAP = 2, - logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD = 3 -} logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType; -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_UNKNOWN_BUILD_TYPE -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType)(logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD+1)) - -typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType { - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_UNKNOWN_SDK_SERVICE = 0, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ICORE = 1, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ADMOB = 2, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_APP_INVITE = 3, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_SIGN_IN = 5, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_GCM = 6, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MAPS = 7, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_SCION = 8, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ANALYTICS = 9, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_APP_INDEXING = 10, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_CONFIG = 11, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DURABLE_DEEP_LINKS = 12, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_CRASH = 13, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH = 14, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DATABASE = 15, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_STORAGE = 16, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MESSAGING = 17, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MEASUREMENT = 18, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_REMOTE_CONFIG = 19, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DYNAMIC_LINKS = 20, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_INVITES = 21, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH_UI = 22, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FIRESTORE = 23, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_PERFORMANCE = 24, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_FACE = 26, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_BARCODE = 27, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_TEXT = 28, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_LABEL = 29, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_MODEL_INTERPRETER = 30, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_IN_APP_MESSAGING = 31, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FUNCTIONS = 32, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_NATURAL_LANGUAGE = 33, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_AUTOML = 34, - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION = 35 -} logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType; -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_UNKNOWN_SDK_SERVICE -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType)(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION+1)) - -typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName { - logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_UNKNOWN_POD_NAME = 0, - logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_GOOGLE = 1, - logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE = 2 -} logs_proto_mobilesdk_ios_ICoreConfiguration_PodName; -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_UNKNOWN_POD_NAME -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_PodName)(logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE+1)) - -typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType { - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_UNKNOWN = 0, - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_COCOAPODS = 1, - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_ZIP_FILE = 2, - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_CARTHAGE = 3, - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM = 4 -} logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType; -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_UNKNOWN -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM -#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType)(logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM+1)) - -/* Struct definitions */ -typedef struct _logs_proto_mobilesdk_ios_ICoreConfiguration { - bool has_configuration_type; - logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType configuration_type; - pb_size_t sdk_service_installed_count; - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType *sdk_service_installed; - pb_bytes_array_t *device_model; - pb_bytes_array_t *app_id; - pb_bytes_array_t *bundle_id; - bool has_pod_name; - logs_proto_mobilesdk_ios_ICoreConfiguration_PodName pod_name; - pb_bytes_array_t *icore_version; - pb_bytes_array_t *sdk_version; - bool has_sdk_name; - logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType sdk_name; - bool has_app_count; - int32_t app_count; - pb_bytes_array_t *os_version; - pb_bytes_array_t *min_supported_ios_version; - bool has_use_default_app; - bool use_default_app; - bool has_deployed_in_app_store; - bool deployed_in_app_store; - bool has_dynamic_framework_count; - int32_t dynamic_framework_count; - pb_bytes_array_t *apple_framework_version; - bool has_using_zip_file; - bool using_zip_file; - bool has_deployment_type; - logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType deployment_type; - pb_bytes_array_t *platform_info; - bool has_swizzling_enabled; - bool swizzling_enabled; - bool has_using_gdt; - bool using_gdt; -/* @@protoc_insertion_point(struct:logs_proto_mobilesdk_ios_ICoreConfiguration) */ -} logs_proto_mobilesdk_ios_ICoreConfiguration; - -/* Default values for struct fields */ - -/* Initializer values for message structs */ -#define logs_proto_mobilesdk_ios_ICoreConfiguration_init_default {false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN, 0, NULL, NULL, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN, false, 0, NULL, NULL, false, 0, false, 0, false, 0, NULL, false, 0, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN, NULL, false, 0, false, 0} -#define logs_proto_mobilesdk_ios_ICoreConfiguration_init_zero {false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN, 0, NULL, NULL, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN, false, 0, NULL, NULL, false, 0, false, 0, false, 0, NULL, false, 0, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN, NULL, false, 0, false, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define logs_proto_mobilesdk_ios_ICoreConfiguration_pod_name_tag 16 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_configuration_type_tag 1 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_icore_version_tag 18 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_version_tag 19 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_service_installed_tag 7 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_name_tag 20 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_device_model_tag 9 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_os_version_tag 22 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_app_id_tag 10 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_bundle_id_tag 12 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_min_supported_ios_version_tag 24 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_use_default_app_tag 25 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_app_count_tag 21 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_deployed_in_app_store_tag 26 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_dynamic_framework_count_tag 27 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_apple_framework_version_tag 28 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_using_zip_file_tag 29 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_deployment_type_tag 30 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_platform_info_tag 31 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_swizzling_enabled_tag 33 -#define logs_proto_mobilesdk_ios_ICoreConfiguration_using_gdt_tag 36 - -/* Struct field encoding specification for nanopb */ -extern const pb_field_t logs_proto_mobilesdk_ios_ICoreConfiguration_fields[22]; - -/* Maximum encoded size of messages (where known) */ -/* logs_proto_mobilesdk_ios_ICoreConfiguration_size depends on runtime parameters */ - -/* Message IDs (where set with "msgid" option) */ -#ifdef PB_MSGID - -#define FIREBASECORE_MESSAGES \ - - -#endif - -/* @@protoc_insertion_point(eof) */ - -#endif diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Info.plist b/frameworks/FirebaseCoreDiagnostics.framework/Info.plist new file mode 100644 index 0000000..2b97522 --- /dev/null +++ b/frameworks/FirebaseCoreDiagnostics.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>FirebaseCoreDiagnostics</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-FirebaseCoreDiagnostics</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>FirebaseCoreDiagnostics</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.4.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/FirebaseInstallations.framework/FirebaseInstallations b/frameworks/FirebaseInstallations.framework/FirebaseInstallations index 1f5360b..46eb2fa 100644 --- a/frameworks/FirebaseInstallations.framework/FirebaseInstallations +++ b/frameworks/FirebaseInstallations.framework/FirebaseInstallations Binary files differ diff --git a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallations.h b/frameworks/FirebaseInstallations.framework/Headers/FIRInstallations.h index 4839b4e..fdb56c4 100644 --- a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallations.h +++ b/frameworks/FirebaseInstallations.framework/Headers/FIRInstallations.h @@ -22,9 +22,11 @@ NS_ASSUME_NONNULL_BEGIN /** A notification with this name is sent each time an installation is created or deleted. */ -FOUNDATION_EXPORT const NSNotificationName FIRInstallationIDDidChangeNotification; +FOUNDATION_EXPORT const NSNotificationName FIRInstallationIDDidChangeNotification + NS_SWIFT_NAME(InstallationIDDidChange); /** `userInfo` key for the `FirebaseApp.name` in `FIRInstallationIDDidChangeNotification`. */ -FOUNDATION_EXPORT NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey; +FOUNDATION_EXPORT NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey + NS_SWIFT_NAME(InstallationIDDidChangeAppNameKey); /** * An installation ID handler block. @@ -83,9 +85,9 @@ - (void)installationIDWithCompletion:(FIRInstallationsIDHandler)completion; /** - * Retrieves (locally if it exists or from the server) a valid authorization token. An existing - * token may be invalidated or expired, so it is recommended to fetch the auth token before each - * server request. The method does the same as `Installations.authTokenForcingRefresh(:, + * Retrieves (locally if it exists or from the server) a valid installation auth token. An existing + * token may be invalidated or expired, so it is recommended to fetch the installation auth token + * before each server request. The method does the same as `Installations.authTokenForcingRefresh(:, * completion:)` with forcing refresh `NO`. * @param completion A completion handler which is invoked when the operation completes. See * `InstallationsTokenHandler` for additional details. @@ -93,13 +95,14 @@ - (void)authTokenWithCompletion:(FIRInstallationsTokenHandler)completion; /** - * Retrieves (locally or from the server depending on `forceRefresh` value) a valid authorization - * token. An existing token may be invalidated or expire, so it is recommended to fetch the auth - * token before each server request. This method should be used with `forceRefresh == YES` when e.g. - * a request with the previously fetched auth token failed with "Not Authorized" error. - * @param forceRefresh If `YES` then the locally cached auth token will be ignored and a new one - * will be requested from the server. If `NO`, then the locally cached auth token will be returned - * if exists and has not expired yet. + * Retrieves (locally or from the server depending on `forceRefresh` value) a valid installation + * auth token. An existing token may be invalidated or expire, so it is recommended to fetch the + * installation auth token before each server request. This method should be used with `forceRefresh + * == YES` when e.g. a request with the previously fetched installation auth token failed with "Not + * Authorized" error. + * @param forceRefresh If `YES` then the locally cached installation auth token will be ignored and + * a new one will be requested from the server. If `NO`, then the locally cached installation auth + * token will be returned if exists and has not expired yet. * @param completion A completion handler which is invoked when the operation completes. See * `InstallationsTokenHandler` for additional details. */ diff --git a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h b/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h index 7753132..501ac4e 100644 --- a/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h +++ b/frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h @@ -18,14 +18,14 @@ NS_ASSUME_NONNULL_BEGIN -/** The class represents a result of the auth token request. */ +/** The class represents a result of the installation auth token request. */ NS_SWIFT_NAME(InstallationsAuthTokenResult) @interface FIRInstallationsAuthTokenResult : NSObject -/** The authorization token string. */ +/** The installation auth token string. */ @property(nonatomic, readonly) NSString *authToken; -/** The auth token expiration date. */ +/** The installation auth token expiration date. */ @property(nonatomic, readonly) NSDate *expirationDate; @end diff --git a/frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h b/frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h index accc9ac..8a9b3c1 100644 --- a/frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h +++ b/frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h @@ -17,4 +17,3 @@ #import "FIRInstallations.h" #import "FIRInstallationsAuthTokenResult.h" #import "FIRInstallationsErrors.h" -#import "FIRInstallationsVersion.h" diff --git a/frameworks/FirebaseInstallations.framework/Info.plist b/frameworks/FirebaseInstallations.framework/Info.plist new file mode 100644 index 0000000..8adbc79 --- /dev/null +++ b/frameworks/FirebaseInstallations.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>FirebaseInstallations</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-FirebaseInstallations</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>FirebaseInstallations</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.4.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement b/frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement old mode 100755 new mode 100644 index c7128f4..2dbce72 --- a/frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement +++ b/frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement Binary files differ diff --git a/frameworks/GoogleAppMeasurement.framework/Info.plist b/frameworks/GoogleAppMeasurement.framework/Info.plist new file mode 100644 index 0000000..7b7f33a --- /dev/null +++ b/frameworks/GoogleAppMeasurement.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>GoogleAppMeasurement</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-GoogleAppMeasurement</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>GoogleAppMeasurement</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.4.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap b/frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap old mode 100755 new mode 100644 index de80e9e..d3499f0 --- a/frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap +++ b/frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap @@ -1,11 +1,10 @@ framework module GoogleAppMeasurement { - export * - module * { export * } +umbrella header "GoogleAppMeasurement-umbrella.h" +export * +module * { export * } + link framework "Security" + link framework "SystemConfiguration" + link "c++" link "sqlite3" link "z" - link framework "CoreData" - link framework "Security" - link framework "StoreKit" - link framework "SystemConfiguration" - link framework "UIKit" } diff --git a/frameworks/GoogleDataTransport.framework/GoogleDataTransport b/frameworks/GoogleDataTransport.framework/GoogleDataTransport index a7dbb14..6a03506 100644 --- a/frameworks/GoogleDataTransport.framework/GoogleDataTransport +++ b/frameworks/GoogleDataTransport.framework/GoogleDataTransport Binary files differ diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORAssert.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORAssert.h deleted file mode 100644 index d920f54..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORAssert.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORConsoleLogger.h" - -NS_ASSUME_NONNULL_BEGIN - -/** A block type that could be run instead of normal assertion logging. No return type, no params. - */ -typedef void (^GDTCORAssertionBlock)(void); - -/** Returns the result of executing a soft-linked method present in unit tests that allows a block - * to be run instead of normal assertion logging. This helps ameliorate issues with catching - * exceptions that occur on a dispatch_queue. - * - * @return A block that can be run instead of normal assert printing. - */ -FOUNDATION_EXPORT GDTCORAssertionBlock _Nullable GDTCORAssertionBlockToRunInstead(void); - -#if defined(NS_BLOCK_ASSERTIONS) - -#define GDTCORAssert(condition, ...) \ - do { \ - } while (0); - -#define GDTCORFatalAssert(condition, ...) \ - do { \ - } while (0); - -#else // defined(NS_BLOCK_ASSERTIONS) - -/** Asserts using a console log, unless a block was specified to be run instead. - * - * @param condition The condition you'd expect to be YES. - */ -#define GDTCORAssert(condition, format, ...) \ - do { \ - __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \ - if (__builtin_expect(!(condition), 0)) { \ - GDTCORAssertionBlock assertionBlock = GDTCORAssertionBlockToRunInstead(); \ - if (assertionBlock) { \ - assertionBlock(); \ - } else { \ - NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; \ - __assert_file__ = __assert_file__ ? __assert_file__ : @"<Unknown File>"; \ - GDTCORLogAssert(NO, __assert_file__, __LINE__, format, ##__VA_ARGS__); \ - __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \ - } \ - } \ - } while (0); - -/** Asserts by logging to the console and throwing an exception if NS_BLOCK_ASSERTIONS is not - * defined. - * - * @param condition The condition you'd expect to be YES. - */ -#define GDTCORFatalAssert(condition, format, ...) \ - do { \ - __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \ - if (__builtin_expect(!(condition), 0)) { \ - GDTCORAssertionBlock assertionBlock = GDTCORAssertionBlockToRunInstead(); \ - if (assertionBlock) { \ - assertionBlock(); \ - } else { \ - NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; \ - __assert_file__ = __assert_file__ ? __assert_file__ : @"<Unknown File>"; \ - GDTCORLogAssert(YES, __assert_file__, __LINE__, format, ##__VA_ARGS__); \ - [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd \ - object:self \ - file:__assert_file__ \ - lineNumber:__LINE__ \ - description:format, ##__VA_ARGS__]; \ - __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \ - } \ - } \ - } while (0); - -#endif // defined(NS_BLOCK_ASSERTIONS) - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h new file mode 100644 index 0000000..836a454 --- /dev/null +++ b/frameworks/GoogleDataTransport.framework/Headers/GDTCOREndpoints.h @@ -0,0 +1,36 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> +#import "GDTCORTargets.h" + +NS_ASSUME_NONNULL_BEGIN + +/* Class that manages the endpoints used by Google data transport library. */ +@interface GDTCOREndpoints : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Returns the upload URL for a target specified. If the target is not available, returns nil. + * + * @param target GoogleDataTransport target for which the upload URL is being looked up for. + * @return URL that will be used for uploading the events for the provided target. + */ ++ (nullable NSURL *)uploadURLForTarget:(GDTCORTarget)target; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORLifecycle.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORLifecycle.h deleted file mode 100644 index ac04fd6..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORLifecycle.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORPlatform.h" - -@class GDTCOREvent; - -NS_ASSUME_NONNULL_BEGIN - -/** A protocol defining the lifecycle events objects in the library must respond to immediately. */ -@protocol GDTCORLifecycleProtocol <NSObject> - -@optional - -/** Indicates an imminent app termination in the rare occurrence when -applicationWillTerminate: has - * been called. - * - * @param app The GDTCORApplication instance. - */ -- (void)appWillTerminate:(GDTCORApplication *)app; - -/** Indicates that the app is moving to background and eventual suspension or the current UIScene is - * deactivating. - * - * @param app The GDTCORApplication instance. - */ -- (void)appWillBackground:(GDTCORApplication *)app; - -/** Indicates that the app is resuming operation or a UIScene is activating. - * - * @param app The GDTCORApplication instance. - */ -- (void)appWillForeground:(GDTCORApplication *)app; - -@end - -/** This class manages the library's response to app lifecycle events. - * - * When backgrounding, the library doesn't stop processing events, it's just that several background - * tasks will end up being created for every event that's sent, and the stateful objects of the - * library (GDTCORStorage and GDTCORUploadCoordinator instances) will deserialize themselves from - * and to disk before and after every operation, respectively. - */ -@interface GDTCORLifecycle : NSObject <GDTCORApplicationDelegate> - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORPlatform.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORPlatform.h deleted file mode 100644 index 951204b..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORPlatform.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright 2019 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#if !TARGET_OS_WATCH -#import <SystemConfiguration/SystemConfiguration.h> -#endif - -#if TARGET_OS_IOS || TARGET_OS_TV -#import <UIKit/UIKit.h> -#elif TARGET_OS_OSX -#import <AppKit/AppKit.h> -#elif TARGET_OS_WATCH -#import <WatchKit/WatchKit.h> -#endif // TARGET_OS_IOS || TARGET_OS_TV - -#if TARGET_OS_IOS -#import <CoreTelephony/CTTelephonyNetworkInfo.h> -#endif - -NS_ASSUME_NONNULL_BEGIN - -/** The GoogleDataTransport library version. */ -FOUNDATION_EXPORT NSString *const kGDTCORVersion; - -/** A notification sent out if the app is backgrounding. */ -FOUNDATION_EXPORT NSString *const kGDTCORApplicationDidEnterBackgroundNotification; - -/** A notification sent out if the app is foregrounding. */ -FOUNDATION_EXPORT NSString *const kGDTCORApplicationWillEnterForegroundNotification; - -/** A notification sent out if the app is terminating. */ -FOUNDATION_EXPORT NSString *const kGDTCORApplicationWillTerminateNotification; - -/** The different possible network connection type. */ -typedef NS_ENUM(NSInteger, GDTCORNetworkType) { - GDTCORNetworkTypeUNKNOWN = 0, - GDTCORNetworkTypeWIFI = 1, - GDTCORNetworkTypeMobile = 2, -}; - -/** The different possible network connection mobile subtype. */ -typedef NS_ENUM(NSInteger, GDTCORNetworkMobileSubtype) { - GDTCORNetworkMobileSubtypeUNKNOWN = 0, - GDTCORNetworkMobileSubtypeGPRS = 1, - GDTCORNetworkMobileSubtypeEdge = 2, - GDTCORNetworkMobileSubtypeWCDMA = 3, - GDTCORNetworkMobileSubtypeHSDPA = 4, - GDTCORNetworkMobileSubtypeHSUPA = 5, - GDTCORNetworkMobileSubtypeCDMA1x = 6, - GDTCORNetworkMobileSubtypeCDMAEVDORev0 = 7, - GDTCORNetworkMobileSubtypeCDMAEVDORevA = 8, - GDTCORNetworkMobileSubtypeCDMAEVDORevB = 9, - GDTCORNetworkMobileSubtypeHRPD = 10, - GDTCORNetworkMobileSubtypeLTE = 11, -}; - -#if !TARGET_OS_WATCH -/** Define SCNetworkReachabilityFlags as GDTCORNetworkReachabilityFlags on non-watchOS. */ -typedef SCNetworkReachabilityFlags GDTCORNetworkReachabilityFlags; - -/** Define SCNetworkReachabilityRef as GDTCORNetworkReachabilityRef on non-watchOS. */ -typedef SCNetworkReachabilityRef GDTCORNetworkReachabilityRef; - -#else -/** The different possible reachabilityFlags option on watchOS. */ -typedef NS_OPTIONS(uint32_t, GDTCORNetworkReachabilityFlags) { - kGDTCORNetworkReachabilityFlagsReachable = 1 << 1, - // TODO(doudounan): Add more options on watchOS if watchOS network connection information relative - // APIs available in the future. -}; - -/** Define a struct as GDTCORNetworkReachabilityRef on watchOS to store network connection - * information. */ -typedef struct { - // TODO(doudounan): Store network connection information on watchOS if watchOS network connection - // information relative APIs available in the future. -} GDTCORNetworkReachabilityRef; -#endif - -/** Returns a URL to the root directory under which all GDT-associated data must be saved. - * - * @return A URL to the root directory under which all GDT-associated data must be saved. - */ -NSURL *GDTCORRootDirectory(void); - -/** Compares flags with the reachable flag (on non-watchos with both reachable and - * connectionRequired flags), if available, and returns YES if network reachable. - * - * @param flags The set of reachability flags. - * @return YES if the network is reachable, NO otherwise. - */ -BOOL GDTCORReachabilityFlagsReachable(GDTCORNetworkReachabilityFlags flags); - -/** Compares flags with the WWAN reachability flag, if available, and returns YES if present. - * - * @param flags The set of reachability flags. - * @return YES if the WWAN flag is set, NO otherwise. - */ -BOOL GDTCORReachabilityFlagsContainWWAN(GDTCORNetworkReachabilityFlags flags); - -/** Generates an enum message GDTCORNetworkType representing network connection type. - * - * @return A GDTCORNetworkType representing network connection type. - */ -GDTCORNetworkType GDTCORNetworkTypeMessage(void); - -/** Generates an enum message GDTCORNetworkMobileSubtype representing network connection mobile - * subtype. - * - * @return A GDTCORNetworkMobileSubtype representing network connection mobile subtype. - */ -GDTCORNetworkMobileSubtype GDTCORNetworkMobileSubTypeMessage(void); - -/** Identifies the model of the device on which the library is currently working on. - * - * @return A NSString representing the device model. - */ -NSString *_Nonnull GDTCORDeviceModel(void); - -/** Writes the given object to the given fileURL and populates the given error if it fails. - * - * @param obj The object to encode. - * @param filePath The path to write the object to. Can be nil if you just need the data. - * @param error The error to populate if something goes wrong. - * @return The data of the archive. If error is nil, it's been written to disk. - */ -NSData *_Nullable GDTCOREncodeArchive(id<NSSecureCoding> obj, - NSString *_Nullable filePath, - NSError *_Nullable *error); - -/** Decodes an object of the given class from the given archive path or data and populates the given - * error if it fails. - * - * @param archiveClass The class of the archive's root object. - * @param archivePath The path to the archived data. Don't use with the archiveData param. - * @param archiveData The data to decode. Don't use with the archivePath param. - * @param error The error to populate if something goes wrong. - */ -id<NSSecureCoding> _Nullable GDTCORDecodeArchive(Class archiveClass, - NSString *_Nullable archivePath, - NSData *_Nullable archiveData, - NSError *_Nullable *error); - -/** A typedef identify background identifiers. */ -typedef volatile NSUInteger GDTCORBackgroundIdentifier; - -/** A background task's invalid sentinel value. */ -FOUNDATION_EXPORT const GDTCORBackgroundIdentifier GDTCORBackgroundIdentifierInvalid; - -#if TARGET_OS_IOS || TARGET_OS_TV -/** A protocol that wraps UIApplicationDelegate, WKExtensionDelegate or NSObject protocol, depending - * on the platform. - */ -@protocol GDTCORApplicationDelegate <UIApplicationDelegate> -#elif TARGET_OS_OSX -@protocol GDTCORApplicationDelegate <NSApplicationDelegate> -#elif TARGET_OS_WATCH -@protocol GDTCORApplicationDelegate <WKExtensionDelegate> -#else -@protocol GDTCORApplicationDelegate <NSObject> -#endif // TARGET_OS_IOS || TARGET_OS_TV - -@end - -/** A cross-platform application class. */ -@interface GDTCORApplication : NSObject <GDTCORApplicationDelegate> - -/** Flag to determine if the application is running in the background. */ -@property(atomic, readonly) BOOL isRunningInBackground; - -/** Creates and/or returns the shared application instance. - * - * @return The shared application instance. - */ -+ (nullable GDTCORApplication *)sharedApplication; - -/** Creates a background task with the returned identifier if on a suitable platform. - * - * @name name The name of the task, useful for debugging which background tasks are running. - * @param handler The handler block that is called if the background task expires. - * @return An identifier for the background task, or GDTCORBackgroundIdentifierInvalid if one - * couldn't be created. - */ -- (GDTCORBackgroundIdentifier)beginBackgroundTaskWithName:(NSString *)name - expirationHandler:(void (^__nullable)(void))handler; - -/** Ends the background task if the identifier is valid. - * - * @param bgID The background task to end. - */ -- (void)endBackgroundTask:(GDTCORBackgroundIdentifier)bgID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORRegistrar.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORRegistrar.h deleted file mode 100644 index 4f8d73e..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORRegistrar.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORStorageProtocol.h" -#import "GDTCORTargets.h" -#import "GDTCORUploader.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Manages the registration of targets with the transport SDK. */ -@interface GDTCORRegistrar : NSObject <GDTCORLifecycleProtocol> - -/** Creates and/or returns the singleton instance. - * - * @return The singleton instance of this class. - */ -+ (instancetype)sharedInstance; - -/** Registers a backend implementation with the GoogleDataTransport infrastructure. - * - * @param backend The backend object to register. - * @param target The target this backend object will be responsible for. - */ -- (void)registerUploader:(id<GDTCORUploader>)backend target:(GDTCORTarget)target; - -/** Registers a storage implementation with the GoogleDataTransport infrastructure. - * - * @param storage The storage instance to be associated with this uploader and target. - * @param target The target this backend object will be responsible for. - */ -- (void)registerStorage:(id<GDTCORStorageProtocol>)storage target:(GDTCORTarget)target; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageEventSelector.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageEventSelector.h deleted file mode 100644 index e839fb1..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageEventSelector.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORTargets.h" - -NS_ASSUME_NONNULL_BEGIN - -/** This class enables the finding of events by matching events with the properties of this class. - */ -@interface GDTCORStorageEventSelector : NSObject - -/** The target to find events for. Required. */ -@property(readonly, nonatomic) GDTCORTarget selectedTarget; - -/** Finds a specific event. */ -@property(nullable, readonly, nonatomic) NSSet<NSString *> *selectedEventIDs; - -/** Finds all events of a mappingID. */ -@property(nullable, readonly, nonatomic) NSSet<NSString *> *selectedMappingIDs; - -/** Finds all events matching the qosTiers in this list. */ -@property(nullable, readonly, nonatomic) NSSet<NSNumber *> *selectedQosTiers; - -/** Initializes an event selector that will find all events for the given target. - * - * @param target The selected target. - * @return An immutable event selector instance. - */ -+ (instancetype)eventSelectorForTarget:(GDTCORTarget)target; - -/** Instantiates an event selector. - * - * @param target The selected target. - * @param eventIDs Optional param to find an event matching this eventID. - * @param mappingIDs Optional param to find events matching this mappingID. - * @param qosTiers Optional param to find events matching the given QoS tiers. - * @return An immutable event selector instance. - */ -- (instancetype)initWithTarget:(GDTCORTarget)target - eventIDs:(nullable NSSet<NSString *> *)eventIDs - mappingIDs:(nullable NSSet<NSString *> *)mappingIDs - qosTiers:(nullable NSSet<NSNumber *> *)qosTiers; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageProtocol.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageProtocol.h deleted file mode 100644 index 2c5af6d..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORStorageProtocol.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORLifecycle.h" -#import "GDTCORStorageEventSelector.h" -#import "GDTCORTargets.h" - -@class GDTCOREvent; -@class GDTCORClock; - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^GDTCORStorageBatchBlock)(NSNumber *_Nullable newBatchID, - NSSet<GDTCOREvent *> *_Nullable batchEvents); - -/** Defines the interface a storage subsystem is expected to implement. */ -@protocol GDTCORStorageProtocol <NSObject, GDTCORLifecycleProtocol> - -@required - -/** Stores an event and calls onComplete with a non-nil error if anything went wrong. - * - * @param event The event to store - * @param completion The completion block to call after an attempt to store the event has been made. - */ -- (void)storeEvent:(GDTCOREvent *)event - onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; - -/** Returns YES if some events have been stored for the given target, NO otherwise. - * - * @param onComplete The completion block to invoke when determining if there are events is done. - */ -- (void)hasEventsForTarget:(GDTCORTarget)target onComplete:(void (^)(BOOL hasEvents))onComplete; - -/** Constructs an event batch with the given event selector. Events in this batch will not be - * returned in any queries or other batches until the batch is removed. - * - * @param eventSelector The event selector used to find the events. - * @param expiration The expiration time of the batch. If removeBatchWithID:deleteEvents:onComplete: - * is not called within this time frame, the batch will be removed with its events deleted. - * @param onComplete The completion handler to be called when the events have been fetched. - */ -- (void)batchWithEventSelector:(nonnull GDTCORStorageEventSelector *)eventSelector - batchExpiration:(nonnull NSDate *)expiration - onComplete:(nonnull GDTCORStorageBatchBlock)onComplete; - -/** Removes the event batch. - * - * @param batchID The batchID to remove. - * @param deleteEvents If YES, the events in this batch are deleted. - * @param onComplete The completion handler to call when the batch removal process has completed. - */ -- (void)removeBatchWithID:(NSNumber *)batchID - deleteEvents:(BOOL)deleteEvents - onComplete:(void (^_Nullable)(void))onComplete; - -/** Finds the batchIDs for the given target and calls the callback block. - * - * @param target The target. - * @param onComplete The block to invoke with the set of current batchIDs. - */ -- (void)batchIDsForTarget:(GDTCORTarget)target - onComplete:(void (^)(NSSet<NSNumber *> *_Nullable batchIDs))onComplete; - -/** Checks the storage for expired events and batches, deletes them if they're expired. */ -- (void)checkForExpirations; - -/** Persists the given data with the given key. - * - * @param data The data to store. - * @param key The unique key to store it to. - * @param onComplete An block to be run when storage of the data is complete. - */ -- (void)storeLibraryData:(NSData *)data - forKey:(NSString *)key - onComplete:(nullable void (^)(NSError *_Nullable error))onComplete; - -/** Retrieves the stored data for the given key and optionally sets a new value. - * - * @param key The key corresponding to the desired data. - * @param onFetchComplete The callback to invoke with the data once it's retrieved. - * @param setValueBlock This optional block can provide a new value to set. - */ -- (void)libraryDataForKey:(nonnull NSString *)key - onFetchComplete:(nonnull void (^)(NSData *_Nullable data, - NSError *_Nullable error))onFetchComplete - setNewValue:(NSData *_Nullable (^_Nullable)(void))setValueBlock; - -/** Removes data from storage and calls the callback when complete. - * - * @param key The key of the data to remove. - * @param onComplete The callback that will be invoked when removing the data is complete. - */ -- (void)removeLibraryDataForKey:(NSString *)key - onComplete:(void (^)(NSError *_Nullable error))onComplete; - -/** Calculates and returns the total disk size that this storage consumes. - * - * @param onComplete The callback that will be invoked once storage size calculation is complete. - */ -- (void)storageSizeWithCallback:(void (^)(uint64_t storageSize))onComplete; - -@end - -/** Retrieves the storage instance for the given target. - * - * @param target The target. - * * @return The storage instance registered for the target, or nil if there is none. - */ -FOUNDATION_EXPORT -id<GDTCORStorageProtocol> _Nullable GDTCORStorageInstanceForTarget(GDTCORTarget target); - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORUploader.h b/frameworks/GoogleDataTransport.framework/Headers/GDTCORUploader.h deleted file mode 100644 index 3945cd3..0000000 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORUploader.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -#import "GDTCORClock.h" -#import "GDTCORLifecycle.h" -#import "GDTCORTargets.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Options that define a set of upload conditions. This is used to help minimize end user data - * consumption impact. - */ -typedef NS_OPTIONS(NSInteger, GDTCORUploadConditions) { - - /** An upload shouldn't be attempted, because there's no network. */ - GDTCORUploadConditionNoNetwork = 1 << 0, - - /** An upload would likely use mobile data. */ - GDTCORUploadConditionMobileData = 1 << 1, - - /** An upload would likely use wifi data. */ - GDTCORUploadConditionWifiData = 1 << 2, - - /** An upload uses some sort of network connection, but it's unclear which. */ - GDTCORUploadConditionUnclearConnection = 1 << 3, - - /** A high priority event has occurred. */ - GDTCORUploadConditionHighPriority = 1 << 4, -}; - -/** This protocol defines the common interface for uploader implementations. */ -@protocol GDTCORUploader <NSObject, GDTCORLifecycleProtocol> - -@required - -/** Uploads events to the backend using this specific backend's chosen format. - * - * @param conditions The conditions that the upload attempt is likely to occur under. - */ -- (void)uploadTarget:(GDTCORTarget)target withConditions:(GDTCORUploadConditions)conditions; - -@end - -NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h b/frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h index 3e8905f..0bd39dc 100644 --- a/frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h +++ b/frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h @@ -16,11 +16,9 @@ #import "GDTCORClock.h" #import "GDTCORConsoleLogger.h" +#import "GDTCOREndpoints.h" #import "GDTCOREvent.h" #import "GDTCOREventDataObject.h" #import "GDTCOREventTransformer.h" -#import "GDTCORLifecycle.h" -#import "GDTCORRegistrar.h" #import "GDTCORTargets.h" #import "GDTCORTransport.h" -#import "GDTCORUploader.h" diff --git a/frameworks/GoogleDataTransport.framework/Info.plist b/frameworks/GoogleDataTransport.framework/Info.plist new file mode 100644 index 0000000..b964ebb --- /dev/null +++ b/frameworks/GoogleDataTransport.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>GoogleDataTransport</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-GoogleDataTransport</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>GoogleDataTransport</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>8.2.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/GoogleUtilities.framework/GoogleUtilities b/frameworks/GoogleUtilities.framework/GoogleUtilities index e28a0ce..7bec6d6 100644 --- a/frameworks/GoogleUtilities.framework/GoogleUtilities +++ b/frameworks/GoogleUtilities.framework/GoogleUtilities Binary files differ diff --git a/frameworks/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h b/frameworks/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h new file mode 100644 index 0000000..58dec49 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULAppDelegateSwizzler.h @@ -0,0 +1,107 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GULApplication.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString *const GULAppDelegateInterceptorID; + +/** This class contains methods that isa swizzle the app delegate. */ +@interface GULAppDelegateSwizzler : NSProxy + +/** Registers an app delegate interceptor whose methods will be invoked as they're invoked on the + * original app delegate. + * + * @param interceptor An instance of a class that conforms to the application delegate protocol. + * The interceptor is NOT retained. + * @return A unique GULAppDelegateInterceptorID if interceptor was successfully registered; nil + * if it fails. + */ ++ (nullable GULAppDelegateInterceptorID)registerAppDelegateInterceptor: + (id<GULApplicationDelegate>)interceptor; + +/** Unregisters an interceptor with the given ID if it exists. + * + * @param interceptorID The object that was generated when the interceptor was registered. + */ ++ (void)unregisterAppDelegateInterceptorWithID:(GULAppDelegateInterceptorID)interceptorID; + +/** This method ensures that the original app delegate has been proxied. Call this before + * registering your interceptor. This method is safe to call multiple times (but it only proxies + * the app delegate once). + * + * This method doesn't proxy APNS related methods: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * To proxy these methods use +[GULAppDelegateSwizzler + * proxyOriginalDelegateIncludingAPNSMethods]. The methods have to be proxied separately to + * avoid potential warnings from Apple review about missing Push Notification Entitlement (e.g. + * https://github.com/firebase/firebase-ios-sdk/issues/2807) + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegateIncludingAPNSMethods + */ ++ (void)proxyOriginalDelegate; + +/** This method ensures that the original app delegate has been proxied including APNS related + * methods. Call this before registering your interceptor. This method is safe to call multiple + * times (but it only proxies the app delegate once) or + * after +[GULAppDelegateSwizzler proxyOriginalDelegate] + * + * This method calls +[GULAppDelegateSwizzler proxyOriginalDelegate] under the hood. + * After calling this method the following App Delegate methods will be proxied in addition to + * the methods proxied by proxyOriginalDelegate: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegate + */ ++ (void)proxyOriginalDelegateIncludingAPNSMethods; + +/** Indicates whether app delegate proxy is explicitly disabled or enabled. Enabled by default. + * + * @return YES if AppDelegateProxy is Enabled, NO otherwise. + */ ++ (BOOL)isAppDelegateProxyEnabled; + +/** Returns the current sharedApplication. + * + * @return the current application instance if in an app, or nil if in extension or if it doesn't + * exist. + */ ++ (nullable GULApplication *)sharedApplication; + +/** Do not initialize this class. */ +- (instancetype)init NS_UNAVAILABLE; + +NS_ASSUME_NONNULL_END + +@end diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULAppEnvironmentUtil.h b/frameworks/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h similarity index 80% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULAppEnvironmentUtil.h rename to frameworks/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h index 2fb1622..d2bb935 100644 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULAppEnvironmentUtil.h +++ b/frameworks/GoogleUtilities.framework/Headers/GULAppEnvironmentUtil.h @@ -16,6 +16,8 @@ #import <Foundation/Foundation.h> +NS_ASSUME_NONNULL_BEGIN + @interface GULAppEnvironmentUtil : NSObject /// Indicates whether the app is from Apple Store or not. Returns NO if the app is on simulator, @@ -31,7 +33,7 @@ + (BOOL)isSimulator; /// The current device model. Returns an empty string if device model cannot be retrieved. -+ (NSString *)deviceModel; ++ (nullable NSString *)deviceModel; /// The current operating system version. Returns an empty string if the system version cannot be /// retrieved. @@ -44,4 +46,15 @@ + (BOOL)isIOS7OrHigher DEPRECATED_MSG_ATTRIBUTE( "Always `YES` because only iOS 8 and higher supported. The method will be removed."); +/// @return YES if Swift runtime detected in the app. ++ (BOOL)hasSwiftRuntime; + +/// @return An Apple platform. Possible values "ios", "tvos", "macos", "watchos", "maccatalyst". ++ (NSString *)applePlatform; + +/// @return The way the library was added to the app, e.g. "swiftpm", "cocoapods", etc. ++ (NSString *)deploymentType; + @end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleUtilities.framework/Headers/GULApplication.h b/frameworks/GoogleUtilities.framework/Headers/GULApplication.h new file mode 100644 index 0000000..8067212 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULApplication.h @@ -0,0 +1,50 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#if TARGET_OS_IOS || TARGET_OS_TV + +#import <UIKit/UIKit.h> + +#define GULApplication UIApplication +#define GULApplicationDelegate UIApplicationDelegate +#define GULUserActivityRestoring UIUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"UIApplication"; + +#elif TARGET_OS_OSX + +#import <AppKit/AppKit.h> + +#define GULApplication NSApplication +#define GULApplicationDelegate NSApplicationDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"NSApplication"; + +#elif TARGET_OS_WATCH + +#import <WatchKit/WatchKit.h> + +// We match the according watchOS API but swizzling should not work in watch +#define GULApplication WKExtension +#define GULApplicationDelegate WKExtensionDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"WKExtension"; + +#endif diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULHeartbeatDateStorage.h b/frameworks/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h similarity index 100% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULHeartbeatDateStorage.h rename to frameworks/GoogleUtilities.framework/Headers/GULHeartbeatDateStorage.h diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULKeychainStorage.h b/frameworks/GoogleUtilities.framework/Headers/GULKeychainStorage.h similarity index 100% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULKeychainStorage.h rename to frameworks/GoogleUtilities.framework/Headers/GULKeychainStorage.h diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULKeychainUtils.h b/frameworks/GoogleUtilities.framework/Headers/GULKeychainUtils.h similarity index 100% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULKeychainUtils.h rename to frameworks/GoogleUtilities.framework/Headers/GULKeychainUtils.h diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULLogger.h b/frameworks/GoogleUtilities.framework/Headers/GULLogger.h similarity index 96% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULLogger.h rename to frameworks/GoogleUtilities.framework/Headers/GULLogger.h index 1146ee2..6797399 100644 --- a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULLogger.h +++ b/frameworks/GoogleUtilities.framework/Headers/GULLogger.h @@ -16,11 +16,7 @@ #import <Foundation/Foundation.h> -#if SWIFT_PACKAGE -@import GoogleUtilities_Logger; -#else -#import <GoogleUtilities/GULLoggerLevel.h> -#endif +#import "GULLoggerLevel.h" NS_ASSUME_NONNULL_BEGIN @@ -65,7 +61,7 @@ * Register version to include in logs. * (required) version */ -extern void GULLoggerRegisterVersion(const char *version); +extern void GULLoggerRegisterVersion(NSString *version); /** * Logs a message to the Xcode console and the device log. If running from AppStore, will diff --git a/frameworks/GoogleUtilities.framework/Headers/GULLoggerCodes.h b/frameworks/GoogleUtilities.framework/Headers/GULLoggerCodes.h deleted file mode 100644 index 053ce84..0000000 --- a/frameworks/GoogleUtilities.framework/Headers/GULLoggerCodes.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import <Foundation/Foundation.h> - -typedef NS_ENUM(NSInteger, GULSwizzlerMessageCode) { - // App Delegate Swizzling. - kGULSwizzlerMessageCodeAppDelegateSwizzling000 = 1000, // I-SWZ001000 - kGULSwizzlerMessageCodeAppDelegateSwizzling001 = 1001, // I-SWZ001001 - kGULSwizzlerMessageCodeAppDelegateSwizzling002 = 1002, // I-SWZ001002 - kGULSwizzlerMessageCodeAppDelegateSwizzling003 = 1003, // I-SWZ001003 - kGULSwizzlerMessageCodeAppDelegateSwizzling004 = 1004, // I-SWZ001004 - kGULSwizzlerMessageCodeAppDelegateSwizzling005 = 1005, // I-SWZ001005 - kGULSwizzlerMessageCodeAppDelegateSwizzling006 = 1006, // I-SWZ001006 - kGULSwizzlerMessageCodeAppDelegateSwizzling007 = 1007, // I-SWZ001007 - kGULSwizzlerMessageCodeAppDelegateSwizzling008 = 1008, // I-SWZ001008 - kGULSwizzlerMessageCodeAppDelegateSwizzling009 = 1009, // I-SWZ001009 - kGULSwizzlerMessageCodeAppDelegateSwizzling010 = 1010, // I-SWZ001010 - kGULSwizzlerMessageCodeAppDelegateSwizzling011 = 1011, // I-SWZ001011 - kGULSwizzlerMessageCodeAppDelegateSwizzling012 = 1012, // I-SWZ001012 - kGULSwizzlerMessageCodeAppDelegateSwizzling013 = 1013, // I-SWZ001013 - kGULSwizzlerMessageCodeAppDelegateSwizzlingInvalidAppDelegate = 1014, // I-SWZ001014 - - // Scene Delegate Swizzling. - kGULSwizzlerMessageCodeSceneDelegateSwizzling000 = 1100, // I-SWZ001100 - kGULSwizzlerMessageCodeSceneDelegateSwizzling001 = 1101, // I-SWZ001101 - kGULSwizzlerMessageCodeSceneDelegateSwizzling002 = 1102, // I-SWZ001102 - kGULSwizzlerMessageCodeSceneDelegateSwizzling003 = 1103, // I-SWZ001103 - kGULSwizzlerMessageCodeSceneDelegateSwizzling004 = 1104, // I-SWZ001104 - kGULSwizzlerMessageCodeSceneDelegateSwizzling005 = 1105, // I-SWZ001105 - kGULSwizzlerMessageCodeSceneDelegateSwizzling006 = 1106, // I-SWZ001106 - kGULSwizzlerMessageCodeSceneDelegateSwizzling007 = 1107, // I-SWZ001107 - kGULSwizzlerMessageCodeSceneDelegateSwizzling008 = 1108, // I-SWZ001108 - kGULSwizzlerMessageCodeSceneDelegateSwizzling009 = 1109, // I-SWZ001109 - kGULSwizzlerMessageCodeSceneDelegateSwizzling010 = 1110, // I-SWZ001110 - kGULSwizzlerMessageCodeSceneDelegateSwizzling011 = 1111, // I-SWZ001111 - kGULSwizzlerMessageCodeSceneDelegateSwizzling012 = 1112, // I-SWZ001112 - kGULSwizzlerMessageCodeSceneDelegateSwizzling013 = 1113, // I-SWZ001113 - kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate = 1114, // I-SWZ001114 - - // Method Swizzling. - kGULSwizzlerMessageCodeMethodSwizzling000 = 2000, // I-SWZ002000 -}; diff --git a/frameworks/GoogleUtilities.framework/Headers/GULMutableDictionary.h b/frameworks/GoogleUtilities.framework/Headers/GULMutableDictionary.h new file mode 100644 index 0000000..a8cc45b --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULMutableDictionary.h @@ -0,0 +1,46 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +/// A mutable dictionary that provides atomic accessor and mutators. +@interface GULMutableDictionary : NSObject + +/// Returns an object given a key in the dictionary or nil if not found. +- (id)objectForKey:(id)key; + +/// Updates the object given its key or adds it to the dictionary if it is not in the dictionary. +- (void)setObject:(id)object forKey:(id<NSCopying>)key; + +/// Removes the object given its session ID from the dictionary. +- (void)removeObjectForKey:(id)key; + +/// Removes all objects. +- (void)removeAllObjects; + +/// Returns the number of current objects in the dictionary. +- (NSUInteger)count; + +/// Returns an object given a key in the dictionary or nil if not found. +- (id)objectForKeyedSubscript:(id<NSCopying>)key; + +/// Updates the object given its key or adds it to the dictionary if it is not in the dictionary. +- (void)setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key; + +/// Returns the immutable dictionary. +- (NSDictionary *)dictionary; + +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULNetwork.h b/frameworks/GoogleUtilities.framework/Headers/GULNetwork.h new file mode 100644 index 0000000..0e75ae5 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULNetwork.h @@ -0,0 +1,87 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GULNetworkConstants.h" +#import "GULNetworkLoggerProtocol.h" +#import "GULNetworkURLSession.h" + +/// Delegate protocol for GULNetwork events. +@protocol GULNetworkReachabilityDelegate + +/// Tells the delegate to handle events when the network reachability changes to connected or not +/// connected. +- (void)reachabilityDidChange; + +@end + +/// The Network component that provides network status and handles network requests and responses. +/// This is not thread safe. +/// +/// NOTE: +/// User must add FIRAnalytics handleEventsForBackgroundURLSessionID:completionHandler to the +/// AppDelegate application:handleEventsForBackgroundURLSession:completionHandler: +@interface GULNetwork : NSObject + +/// Indicates if network connectivity is available. +@property(nonatomic, readonly, getter=isNetworkConnected) BOOL networkConnected; + +/// Indicates if there are any uploads in progress. +@property(nonatomic, readonly, getter=hasUploadInProgress) BOOL uploadInProgress; + +/// An optional delegate that can be used in the event when network reachability changes. +@property(nonatomic, weak) id<GULNetworkReachabilityDelegate> reachabilityDelegate; + +/// An optional delegate that can be used to log messages, warnings or errors that occur in the +/// network operations. +@property(nonatomic, weak) id<GULNetworkLoggerDelegate> loggerDelegate; + +/// Indicates whether the logger should display debug messages. +@property(nonatomic, assign) BOOL isDebugModeEnabled; + +/// The time interval in seconds for the network request to timeout. +@property(nonatomic, assign) NSTimeInterval timeoutInterval; + +/// Initializes with the default reachability host. +- (instancetype)init; + +/// Initializes with a custom reachability host. +- (instancetype)initWithReachabilityHost:(NSString *)reachabilityHost; + +/// Handles events when background session with the given ID has finished. ++ (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID + completionHandler:(GULNetworkSystemCompletionHandler)completionHandler; + +/// Compresses and sends a POST request with the provided data to the URL. The session will be +/// background session if usingBackgroundSession is YES. Otherwise, the POST session is default +/// session. Returns a session ID or nil if an error occurs. +- (NSString *)postURL:(NSURL *)url + payload:(NSData *)payload + queue:(dispatch_queue_t)queue + usingBackgroundSession:(BOOL)usingBackgroundSession + completionHandler:(GULNetworkCompletionHandler)handler; + +/// Sends a GET request with the provided data to the URL. The session will be background session +/// if usingBackgroundSession is YES. Otherwise, the GET session is default session. Returns a +/// session ID or nil if an error occurs. +- (NSString *)getURL:(NSURL *)url + headers:(NSDictionary *)headers + queue:(dispatch_queue_t)queue + usingBackgroundSession:(BOOL)usingBackgroundSession + completionHandler:(GULNetworkCompletionHandler)handler; + +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULNetworkConstants.h b/frameworks/GoogleUtilities.framework/Headers/GULNetworkConstants.h new file mode 100644 index 0000000..1cbedd1 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULNetworkConstants.h @@ -0,0 +1,71 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +/// Error codes in Firebase Network error domain. +/// Note: these error codes should never change. It would make it harder to decode the errors if +/// we inadvertently altered any of these codes in a future SDK version. +typedef NS_ENUM(NSInteger, GULNetworkErrorCode) { + /// Unknown error. + GULNetworkErrorCodeUnknown = 0, + /// Error occurs when the request URL is invalid. + GULErrorCodeNetworkInvalidURL = 1, + /// Error occurs when request cannot be constructed. + GULErrorCodeNetworkRequestCreation = 2, + /// Error occurs when payload cannot be compressed. + GULErrorCodeNetworkPayloadCompression = 3, + /// Error occurs when session task cannot be created. + GULErrorCodeNetworkSessionTaskCreation = 4, + /// Error occurs when there is no response. + GULErrorCodeNetworkInvalidResponse = 5 +}; + +#pragma mark - Network constants + +/// The prefix of the ID of the background session. +extern NSString *const kGULNetworkBackgroundSessionConfigIDPrefix; + +/// The sub directory to store the files of data that is being uploaded in the background. +extern NSString *const kGULNetworkApplicationSupportSubdirectory; + +/// Name of the temporary directory that stores files for background uploading. +extern NSString *const kGULNetworkTempDirectoryName; + +/// The period when the temporary uploading file can stay. +extern const NSTimeInterval kGULNetworkTempFolderExpireTime; + +/// The default network request timeout interval. +extern const NSTimeInterval kGULNetworkTimeOutInterval; + +/// The host to check the reachability of the network. +extern NSString *const kGULNetworkReachabilityHost; + +/// The key to get the error context of the UserInfo. +extern NSString *const kGULNetworkErrorContext; + +#pragma mark - Network Status Code + +extern const int kGULNetworkHTTPStatusOK; +extern const int kGULNetworkHTTPStatusNoContent; +extern const int kGULNetworkHTTPStatusCodeMultipleChoices; +extern const int kGULNetworkHTTPStatusCodeMovedPermanently; +extern const int kGULNetworkHTTPStatusCodeFound; +extern const int kGULNetworkHTTPStatusCodeNotModified; +extern const int kGULNetworkHTTPStatusCodeMovedTemporarily; +extern const int kGULNetworkHTTPStatusCodeNotFound; +extern const int kGULNetworkHTTPStatusCodeCannotAcceptTraffic; +extern const int kGULNetworkHTTPStatusCodeUnavailable; diff --git a/frameworks/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h b/frameworks/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h new file mode 100644 index 0000000..425c073 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULNetworkLoggerProtocol.h @@ -0,0 +1,49 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GULNetworkMessageCode.h" + +/// The log levels used by GULNetworkLogger. +typedef NS_ENUM(NSInteger, GULNetworkLogLevel) { + kGULNetworkLogLevelError = 3, + kGULNetworkLogLevelWarning = 4, + kGULNetworkLogLevelInfo = 6, + kGULNetworkLogLevelDebug = 7, +}; + +@protocol GULNetworkLoggerDelegate <NSObject> + +@required +/// Tells the delegate to log a message with an array of contexts and the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message + contexts:(NSArray *)contexts; + +/// Tells the delegate to log a message with a context and the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message + context:(id)context; + +/// Tells the delegate to log a message with the log level. +- (void)GULNetwork_logWithLevel:(GULNetworkLogLevel)logLevel + messageCode:(GULNetworkMessageCode)messageCode + message:(NSString *)message; + +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h b/frameworks/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h new file mode 100644 index 0000000..507bc5a --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULNetworkMessageCode.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +// Make sure these codes do not overlap with any contained in the FIRAMessageCode enum. +typedef NS_ENUM(NSInteger, GULNetworkMessageCode) { + // GULNetwork.m + kGULNetworkMessageCodeNetwork000 = 900000, // I-NET900000 + kGULNetworkMessageCodeNetwork001 = 900001, // I-NET900001 + kGULNetworkMessageCodeNetwork002 = 900002, // I-NET900002 + kGULNetworkMessageCodeNetwork003 = 900003, // I-NET900003 + // GULNetworkURLSession.m + kGULNetworkMessageCodeURLSession000 = 901000, // I-NET901000 + kGULNetworkMessageCodeURLSession001 = 901001, // I-NET901001 + kGULNetworkMessageCodeURLSession002 = 901002, // I-NET901002 + kGULNetworkMessageCodeURLSession003 = 901003, // I-NET901003 + kGULNetworkMessageCodeURLSession004 = 901004, // I-NET901004 + kGULNetworkMessageCodeURLSession005 = 901005, // I-NET901005 + kGULNetworkMessageCodeURLSession006 = 901006, // I-NET901006 + kGULNetworkMessageCodeURLSession007 = 901007, // I-NET901007 + kGULNetworkMessageCodeURLSession008 = 901008, // I-NET901008 + kGULNetworkMessageCodeURLSession009 = 901009, // I-NET901009 + kGULNetworkMessageCodeURLSession010 = 901010, // I-NET901010 + kGULNetworkMessageCodeURLSession011 = 901011, // I-NET901011 + kGULNetworkMessageCodeURLSession012 = 901012, // I-NET901012 + kGULNetworkMessageCodeURLSession013 = 901013, // I-NET901013 + kGULNetworkMessageCodeURLSession014 = 901014, // I-NET901014 + kGULNetworkMessageCodeURLSession015 = 901015, // I-NET901015 + kGULNetworkMessageCodeURLSession016 = 901016, // I-NET901016 + kGULNetworkMessageCodeURLSession017 = 901017, // I-NET901017 + kGULNetworkMessageCodeURLSession018 = 901018, // I-NET901018 + kGULNetworkMessageCodeURLSession019 = 901019, // I-NET901019 +}; diff --git a/frameworks/GoogleUtilities.framework/Headers/GULNetworkURLSession.h b/frameworks/GoogleUtilities.framework/Headers/GULNetworkURLSession.h new file mode 100644 index 0000000..3f9f7f9 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULNetworkURLSession.h @@ -0,0 +1,62 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +#import "GULNetworkLoggerProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void (^GULNetworkCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, + NSError *_Nullable error); +typedef void (^GULNetworkURLSessionCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, + NSString *sessionID, + NSError *_Nullable error); +typedef void (^GULNetworkSystemCompletionHandler)(void); + +/// The protocol that uses NSURLSession for iOS >= 7.0 to handle requests and responses. +@interface GULNetworkURLSession : NSObject + +/// Indicates whether the background network is enabled. Default value is NO. +@property(nonatomic, getter=isBackgroundNetworkEnabled) BOOL backgroundNetworkEnabled; + +/// The logger delegate to log message, errors or warnings that occur during the network operations. +@property(nonatomic, weak, nullable) id<GULNetworkLoggerDelegate> loggerDelegate; + +/// Calls the system provided completion handler after the background session is finished. ++ (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID + completionHandler:(GULNetworkSystemCompletionHandler)completionHandler; + +/// Initializes with logger delegate. +- (instancetype)initWithNetworkLoggerDelegate: + (nullable id<GULNetworkLoggerDelegate>)networkLoggerDelegate NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +/// Sends an asynchronous POST request and calls the provided completion handler when the request +/// completes or when errors occur, and returns an ID of the session/connection. +- (nullable NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; + +/// Sends an asynchronous GET request and calls the provided completion handler when the request +/// completes or when errors occur, and returns an ID of the session. +- (nullable NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; + +NS_ASSUME_NONNULL_END +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULObjectSwizzler.h b/frameworks/GoogleUtilities.framework/Headers/GULObjectSwizzler.h new file mode 100644 index 0000000..b0a692a --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULObjectSwizzler.h @@ -0,0 +1,123 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** Enums that map to their OBJC-prefixed counterparts. */ +typedef OBJC_ENUM(uintptr_t, GUL_ASSOCIATION){ + + // Is a weak association. + GUL_ASSOCIATION_ASSIGN, + + // Is a nonatomic strong association. + GUL_ASSOCIATION_RETAIN_NONATOMIC, + + // Is a nonatomic copy association. + GUL_ASSOCIATION_COPY_NONATOMIC, + + // Is an atomic strong association. + GUL_ASSOCIATION_RETAIN, + + // Is an atomic copy association. + GUL_ASSOCIATION_COPY}; + +/** This class handles swizzling a specific instance of a class by generating a + * dynamic subclass and installing selectors and properties onto the dynamic + * subclass. Then, the instance's class is set to the dynamic subclass. There + * should be a 1:1 ratio of object swizzlers to swizzled instances. + */ +@interface GULObjectSwizzler : NSObject + +/** The subclass that is generated. */ +@property(nullable, nonatomic, readonly) Class generatedClass; + +/** Sets an associated object in the runtime. This mechanism can be used to + * simulate adding properties. + * + * @param object The object that will be queried for the associated object. + * @param key The key of the associated object. + * @param value The value to associate to the swizzled object. + * @param association The mechanism to use when associating the objects. + */ ++ (void)setAssociatedObject:(id)object + key:(NSString *)key + value:(nullable id)value + association:(GUL_ASSOCIATION)association; + +/** Gets an associated object in the runtime. This mechanism can be used to + * simulate adding properties. + * + * @param object The object that will be queried for the associated object. + * @param key The key of the associated object. + */ ++ (nullable id)getAssociatedObject:(id)object key:(NSString *)key; + +/** Please use the designated initializer. */ +- (instancetype)init NS_UNAVAILABLE; + +/** Instantiates an object swizzler using an object it will operate on. + * Generates a new class pair. + * + * @note There is no need to store this object. After calling -swizzle, this + * object can be found by calling -gul_objectSwizzler + * + * @param object The object to be swizzled. + * @return An instance of this class. + */ +- (instancetype)initWithObject:(id)object NS_DESIGNATED_INITIALIZER; + +/** Sets an associated object in the runtime. This mechanism can be used to + * simulate adding properties. + * + * @param key The key of the associated object. + * @param value The value to associate to the swizzled object. + * @param association The mechanism to use when associating the objects. + */ +- (void)setAssociatedObjectWithKey:(NSString *)key + value:(id)value + association:(GUL_ASSOCIATION)association; + +/** Gets an associated object in the runtime. This mechanism can be used to + * simulate adding properties. + * + * @param key The key of the associated object. + */ +- (nullable id)getAssociatedObjectForKey:(NSString *)key; + +/** Copies a selector from an existing class onto the generated dynamic subclass + * that this object will adopt. This mechanism can be used to add methods to + * specific instances of a class. + * + * @note Should not be called after calling -swizzle. + * @param selector The selector to add to the instance. + * @param aClass The class supplying an implementation of the method. + * @param isClassSelector A BOOL specifying whether the selector is a class or + * instance selector. + */ +- (void)copySelector:(SEL)selector fromClass:(Class)aClass isClassSelector:(BOOL)isClassSelector; + +/** Swizzles the object, changing its class to the generated class. Registers + * the class pair. */ +- (void)swizzle; + +/** @return The value of -[objectBeingSwizzled isProxy] */ +- (BOOL)isSwizzlingProxyObject; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleUtilities.framework/Headers/GULOriginalIMPConvenienceMacros.h b/frameworks/GoogleUtilities.framework/Headers/GULOriginalIMPConvenienceMacros.h new file mode 100644 index 0000000..a33262a --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULOriginalIMPConvenienceMacros.h @@ -0,0 +1,207 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * GULOriginalIMPConvenienceMacros.h + * + * This header contains convenience macros for invoking the original IMP of a swizzled method. + */ + +/** + * Invokes original IMP when the original selector takes no arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + */ +#define GUL_INVOKE_ORIGINAL_IMP0(__receivingObject, __swizzledSEL, __returnType, __originalIMP) \ + ((__returnType(*)(id, SEL))__originalIMP)(__receivingObject, __swizzledSEL) + +/** + * Invokes original IMP when the original selector takes 1 argument. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP1(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1)))__originalIMP)(__receivingObject, __swizzledSEL, \ + __arg1) + +/** + * Invokes original IMP when the original selector takes 2 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP2(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2) + +/** + * Invokes original IMP when the original selector takes 3 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP3(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), \ + __typeof__(__arg3)))__originalIMP)(__receivingObject, __swizzledSEL, __arg1, \ + __arg2, __arg3) + +/** + * Invokes original IMP when the original selector takes 4 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP4(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4)))__originalIMP)(__receivingObject, __swizzledSEL, __arg1, \ + __arg2, __arg3, __arg4) + +/** + * Invokes original IMP when the original selector takes 5 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + * @param __arg5 The fifth argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP5(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4, __arg5) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4), __typeof__(__arg5)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5) + +/** + * Invokes original IMP when the original selector takes 6 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + * @param __arg5 The fifth argument. + * @param __arg6 The sixth argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP6(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) + +/** + * Invokes original IMP when the original selector takes 7 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + * @param __arg5 The fifth argument. + * @param __arg6 The sixth argument. + * @param __arg7 The seventh argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP7(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \ + __typeof__(__arg7)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7) + +/** + * Invokes original IMP when the original selector takes 8 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + * @param __arg5 The fifth argument. + * @param __arg6 The sixth argument. + * @param __arg7 The seventh argument. + * @param __arg8 The eighth argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP8(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, __arg8) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \ + __typeof__(__arg7), __typeof__(__arg8)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, \ + __arg8) + +/** + * Invokes original IMP when the original selector takes 9 arguments. + * + * @param __receivingObject The object on which the IMP is invoked. + * @param __swizzledSEL The selector used for swizzling. + * @param __returnType The return type of the original implementation. + * @param __originalIMP The original IMP. + * @param __arg1 The first argument. + * @param __arg2 The second argument. + * @param __arg3 The third argument. + * @param __arg4 The fourth argument. + * @param __arg5 The fifth argument. + * @param __arg6 The sixth argument. + * @param __arg7 The seventh argument. + * @param __arg8 The eighth argument. + * @param __arg9 The ninth argument. + */ +#define GUL_INVOKE_ORIGINAL_IMP9(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \ + __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, __arg8, \ + __arg9) \ + ((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \ + __typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \ + __typeof__(__arg7), __typeof__(__arg8), __typeof__(__arg9)))__originalIMP)( \ + __receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, \ + __arg8, __arg9) diff --git a/frameworks/GoogleUtilities.framework/Headers/GULReachabilityChecker.h b/frameworks/GoogleUtilities.framework/Headers/GULReachabilityChecker.h new file mode 100644 index 0000000..0c70c05 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULReachabilityChecker.h @@ -0,0 +1,79 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> +#if !TARGET_OS_WATCH +#import <SystemConfiguration/SystemConfiguration.h> +#endif + +/// Reachability Status +typedef enum { + kGULReachabilityUnknown, ///< Have not yet checked or been notified whether host is reachable. + kGULReachabilityNotReachable, ///< Host is not reachable. + kGULReachabilityViaWifi, ///< Host is reachable via Wifi. + kGULReachabilityViaCellular, ///< Host is reachable via cellular. +} GULReachabilityStatus; + +const NSString *GULReachabilityStatusString(GULReachabilityStatus status); + +@class GULReachabilityChecker; + +/// Google Analytics iOS Reachability Checker. +@protocol GULReachabilityDelegate +@required +/// Called when network status has changed. +- (void)reachability:(GULReachabilityChecker *)reachability + statusChanged:(GULReachabilityStatus)status; +@end + +/// Google Analytics iOS Network Status Checker. +@interface GULReachabilityChecker : NSObject + +/// The last known reachability status, or GULReachabilityStatusUnknown if the +/// checker is not active. +@property(nonatomic, readonly) GULReachabilityStatus reachabilityStatus; +/// The host to which reachability status is to be checked. +@property(nonatomic, copy, readonly) NSString *host; +/// The delegate to be notified of reachability status changes. +@property(nonatomic, weak) id<GULReachabilityDelegate> reachabilityDelegate; +/// `YES` if the reachability checker is active, `NO` otherwise. +@property(nonatomic, readonly) BOOL isActive; + +/// Initialize the reachability checker. Note that you must call start to begin checking for and +/// receiving notifications about network status changes. +/// +/// @param reachabilityDelegate The delegate to be notified when reachability status to host +/// changes. +/// +/// @param host The name of the host. +/// +- (instancetype)initWithReachabilityDelegate:(id<GULReachabilityDelegate>)reachabilityDelegate + withHost:(NSString *)host; + +- (instancetype)init NS_UNAVAILABLE; + +/// Start checking for reachability to the specified host. This has no effect if the status +/// checker is already checking for connectivity. +/// +/// @return `YES` if initiating status checking was successful or the status checking has already +/// been initiated, `NO` otherwise. +- (BOOL)start; + +/// Stop checking for reachability to the specified host. This has no effect if the status +/// checker is not checking for connectivity. +- (void)stop; + +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h b/frameworks/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h new file mode 100644 index 0000000..ed080a3 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULSceneDelegateSwizzler.h @@ -0,0 +1,76 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> +#import <TargetConditionals.h> + +#if !TARGET_OS_OSX +#import <UIKit/UIKit.h> +#endif // !TARGET_OS_OSX + +#if ((TARGET_OS_IOS || TARGET_OS_TV) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= 130000)) +#define UISCENE_SUPPORTED 1 +#endif + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString *const GULSceneDelegateInterceptorID; + +/** This class contains methods that isa swizzle the scene delegate. */ +@interface GULSceneDelegateSwizzler : NSProxy + +#if UISCENE_SUPPORTED + +/** Registers a scene delegate interceptor whose methods will be invoked as they're invoked on the + * original scene delegate. + * + * @param interceptor An instance of a class that conforms to the application delegate protocol. + * The interceptor is NOT retained. + * @return A unique GULSceneDelegateInterceptorID if interceptor was successfully registered; nil + * if it fails. + */ ++ (nullable GULSceneDelegateInterceptorID)registerSceneDelegateInterceptor: + (id<UISceneDelegate>)interceptor API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Unregisters an interceptor with the given ID if it exists. + * + * @param interceptorID The object that was generated when the interceptor was registered. + */ ++ (void)unregisterSceneDelegateInterceptorWithID:(GULSceneDelegateInterceptorID)interceptorID + API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Do not initialize this class. */ +- (instancetype)init NS_UNAVAILABLE; + +#endif // UISCENE_SUPPORTED + +/** This method ensures that the original scene delegate has been proxied. Call this before + * registering your interceptor. This method is safe to call multiple times (but it only proxies + * the scene delegate once). + * + * The method has no effect for extensions. + */ ++ (void)proxyOriginalSceneDelegate; + +/** Indicates whether scene delegate proxy is explicitly disabled or enabled. Enabled by default. + * + * @return YES if SceneDelegateProxy is Enabled, NO otherwise. + */ ++ (BOOL)isSceneDelegateProxyEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/FirebaseCoreDiagnostics.framework/Headers/GULSecureCoding.h b/frameworks/GoogleUtilities.framework/Headers/GULSecureCoding.h similarity index 100% rename from frameworks/FirebaseCoreDiagnostics.framework/Headers/GULSecureCoding.h rename to frameworks/GoogleUtilities.framework/Headers/GULSecureCoding.h diff --git a/frameworks/GoogleUtilities.framework/Headers/GULSwizzledObject.h b/frameworks/GoogleUtilities.framework/Headers/GULSwizzledObject.h new file mode 100644 index 0000000..314ceec --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULSwizzledObject.h @@ -0,0 +1,44 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +@class GULObjectSwizzler; + +FOUNDATION_EXPORT NSString *kSwizzlerAssociatedObjectKey; + +/** This class exists as a method donor. These methods will be added to all objects that are + * swizzled by the object swizzler. This class should not be instantiated. + */ +@interface GULSwizzledObject : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** Copies the methods below to the swizzled object. + * + * @param objectSwizzler The swizzler to use when adding the methods below. + */ ++ (void)copyDonorSelectorsUsingObjectSwizzler:(GULObjectSwizzler *)objectSwizzler; + +#pragma mark - Donor methods. + +/** @return The generated subclass. Used in respondsToSelector: calls. */ +- (Class)gul_class; + +/** @return The object swizzler that manages this object. */ +- (GULObjectSwizzler *)gul_objectSwizzler; + +@end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULSwizzler.h b/frameworks/GoogleUtilities.framework/Headers/GULSwizzler.h new file mode 100644 index 0000000..26949c8 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULSwizzler.h @@ -0,0 +1,71 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/** This class handles the runtime manipulation necessary to instrument selectors. It stores the + * classes and selectors that have been swizzled, and runs all operations on its own queue. + */ +@interface GULSwizzler : NSObject + +/** Manipulates the Objective-C runtime to replace the original IMP with the supplied block. + * + * @param aClass The class to swizzle. + * @param selector The selector of the class to swizzle. + * @param isClassSelector A BOOL specifying whether the selector is a class or instance selector. + * @param block The block that replaces the original IMP. + */ ++ (void)swizzleClass:(Class)aClass + selector:(SEL)selector + isClassSelector:(BOOL)isClassSelector + withBlock:(nullable id)block; + +/** Returns the current IMP for the given class and selector. + * + * @param aClass The class to use. + * @param selector The selector to find the implementation of. + * @param isClassSelector A BOOL specifying whether the selector is a class or instance selector. + * @return The implementation of the selector in the runtime. + */ ++ (nullable IMP)currentImplementationForClass:(Class)aClass + selector:(SEL)selector + isClassSelector:(BOOL)isClassSelector; + +/** Checks the runtime to see if a selector exists on a class. If a property is declared as + * @dynamic, we have a reverse swizzling situation, where the implementation of a method exists + * only in concrete subclasses, and NOT in the superclass. We can detect that situation using + * this helper method. Similarly, we can detect situations where a class doesn't implement a + * protocol method. + * + * @param selector The selector to check for. + * @param aClass The class to check. + * @param isClassSelector A BOOL specifying whether the selector is a class or instance selector. + * @return YES if the method was found in this selector/class combination, NO otherwise. + */ ++ (BOOL)selector:(SEL)selector existsInClass:(Class)aClass isClassSelector:(BOOL)isClassSelector; + +/** Returns a list of all Objective-C (and not primitive) ivars contained by the given object. + * + * @param object The object whose ivars will be iterated. + * @return The list of ivar objects. + */ ++ (NSArray<id> *)ivarObjectsForObject:(id)object; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleDataTransport.framework/Headers/GDTCORReachability.h b/frameworks/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h similarity index 63% rename from frameworks/GoogleDataTransport.framework/Headers/GDTCORReachability.h rename to frameworks/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h index 840f02a..e88eb67 100644 --- a/frameworks/GoogleDataTransport.framework/Headers/GDTCORReachability.h +++ b/frameworks/GoogleUtilities.framework/Headers/GULURLSessionDataResponse.h @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +16,15 @@ #import <Foundation/Foundation.h> -#import "GDTCORPlatform.h" - NS_ASSUME_NONNULL_BEGIN -/** This class helps determine upload conditions by determining connectivity. */ -@interface GDTCORReachability : NSObject +/** The class represents HTTP response received from `NSURLSession`. */ +@interface GULURLSessionDataResponse : NSObject -/** The current set flags indicating network conditions */ -+ (GDTCORNetworkReachabilityFlags)currentFlags; +@property(nonatomic, readonly) NSHTTPURLResponse *HTTPResponse; +@property(nonatomic, nullable, readonly) NSData *HTTPBody; + +- (instancetype)initWithResponse:(NSHTTPURLResponse *)response HTTPBody:(nullable NSData *)body; @end diff --git a/frameworks/GoogleUtilities.framework/Headers/GULUserDefaults.h b/frameworks/GoogleUtilities.framework/Headers/GULUserDefaults.h new file mode 100644 index 0000000..0d04781 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/GULUserDefaults.h @@ -0,0 +1,110 @@ +// Copyright 2018 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +/// A thread-safe user defaults that uses C functions from CFPreferences.h instead of +/// `NSUserDefaults`. This is to avoid sending an `NSNotification` when it's changed from a +/// background thread to avoid crashing. // TODO: Insert radar number here. +@interface GULUserDefaults : NSObject + +/// A shared user defaults similar to +[NSUserDefaults standardUserDefaults] and accesses the same +/// data of the standardUserDefaults. ++ (GULUserDefaults *)standardUserDefaults; + +/// Initializes preferences with a suite name that is the same with the NSUserDefaults' suite name. +/// Both of CFPreferences and NSUserDefaults share the same plist file so their data will exactly +/// the same. +/// +/// @param suiteName The name of the suite of the user defaults. +- (instancetype)initWithSuiteName:(nullable NSString *)suiteName; + +#pragma mark - Getters + +/// Searches the receiver's search list for a default with the key 'defaultName' and return it. If +/// another process has changed defaults in the search list, NSUserDefaults will automatically +/// update to the latest values. If the key in question has been marked as ubiquitous via a Defaults +/// Configuration File, the latest value may not be immediately available, and the registered value +/// will be returned instead. +- (nullable id)objectForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will return nil if the value is not an NSArray. +- (nullable NSArray *)arrayForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will return nil if the value +/// is not an NSDictionary. +- (nullable NSDictionary<NSString *, id> *)dictionaryForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it will convert NSNumber values to their NSString +/// representation. If a non-string non-number value is found, nil will be returned. +- (nullable NSString *)stringForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it converts the returned value to an NSInteger. If the +/// value is an NSNumber, the result of -integerValue will be returned. If the value is an NSString, +/// it will be converted to NSInteger if possible. If the value is a boolean, it will be converted +/// to either 1 for YES or 0 for NO. If the value is absent or can't be converted to an integer, 0 +/// will be returned. +- (NSInteger)integerForKey:(NSString *)defaultName; + +/// Similar to -integerForKey:, except that it returns a float, and boolean values will not be +/// converted. +- (float)floatForKey:(NSString *)defaultName; + +/// Similar to -integerForKey:, except that it returns a double, and boolean values will not be +/// converted. +- (double)doubleForKey:(NSString *)defaultName; + +/// Equivalent to -objectForKey:, except that it converts the returned value to a BOOL. If the value +/// is an NSNumber, NO will be returned if the value is 0, YES otherwise. If the value is an +/// NSString, values of "YES" or "1" will return YES, and values of "NO", "0", or any other string +/// will return NO. If the value is absent or can't be converted to a BOOL, NO will be returned. +- (BOOL)boolForKey:(NSString *)defaultName; + +#pragma mark - Setters + +/// Immediately stores a value (or removes the value if `nil` is passed as the value) for the +/// provided key in the search list entry for the receiver's suite name in the current user and any +/// host, then asynchronously stores the value persistently, where it is made available to other +/// processes. +- (void)setObject:(nullable id)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a float to an NSNumber. +- (void)setFloat:(float)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a double to an +/// NSNumber. +- (void)setDouble:(double)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from an NSInteger to an +/// NSNumber. +- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName; + +/// Equivalent to -setObject:forKey: except that the value is converted from a BOOL to an NSNumber. +- (void)setBool:(BOOL)value forKey:(NSString *)defaultName; + +#pragma mark - Removing Defaults + +/// Equivalent to -[... setObject:nil forKey:defaultName] +- (void)removeObjectForKey:(NSString *)defaultName; + +#pragma mark - Save data + +/// Blocks the calling thread until all in-progress set operations have completed. +- (void)synchronize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h b/frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h index 508e631..eb2e472 100644 --- a/frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h +++ b/frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h @@ -10,9 +10,31 @@ #endif #endif +#import "GULAppDelegateSwizzler.h" +#import "GULApplication.h" +#import "GULSceneDelegateSwizzler.h" +#import "GULAppEnvironmentUtil.h" +#import "GULHeartbeatDateStorage.h" +#import "GULKeychainStorage.h" +#import "GULKeychainUtils.h" +#import "GULSecureCoding.h" +#import "GULURLSessionDataResponse.h" +#import "NSURLSession+GULPromises.h" +#import "GULObjectSwizzler.h" +#import "GULSwizzledObject.h" +#import "GULLogger.h" #import "GULLoggerLevel.h" -#import "GULLoggerCodes.h" +#import "GULOriginalIMPConvenienceMacros.h" +#import "GULSwizzler.h" #import "GULNSData+zlib.h" +#import "GULMutableDictionary.h" +#import "GULNetwork.h" +#import "GULNetworkConstants.h" +#import "GULNetworkLoggerProtocol.h" +#import "GULNetworkMessageCode.h" +#import "GULNetworkURLSession.h" +#import "GULReachabilityChecker.h" +#import "GULUserDefaults.h" FOUNDATION_EXPORT double GoogleUtilitiesVersionNumber; FOUNDATION_EXPORT const unsigned char GoogleUtilitiesVersionString[]; diff --git a/frameworks/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h b/frameworks/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h new file mode 100644 index 0000000..7bed005 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Headers/NSURLSession+GULPromises.h @@ -0,0 +1,37 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import <Foundation/Foundation.h> + +@class FBLPromise<Value>; +@class GULURLSessionDataResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** Promise based API for `NSURLSession`. */ +@interface NSURLSession (GULPromises) + +/** Creates a promise wrapping `-[NSURLSession dataTaskWithRequest:completionHandler:]` method. + * @param URLRequest The request to create a data task with. + * @return A promise that is fulfilled when an HTTP response is received (with any response code), + * or is rejected with the error passed to the task completion. + */ +- (FBLPromise<GULURLSessionDataResponse *> *)gul_dataTaskPromiseWithRequest: + (NSURLRequest *)URLRequest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/frameworks/GoogleUtilities.framework/Info.plist b/frameworks/GoogleUtilities.framework/Info.plist new file mode 100644 index 0000000..b541bc2 --- /dev/null +++ b/frameworks/GoogleUtilities.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>GoogleUtilities</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-GoogleUtilities</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>GoogleUtilities</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>7.2.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/PromisesObjC.framework/Info.plist b/frameworks/PromisesObjC.framework/Info.plist new file mode 100644 index 0000000..9ed334a --- /dev/null +++ b/frameworks/PromisesObjC.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>PromisesObjC</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-PromisesObjC</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>PromisesObjC</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>1.2.12</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/PromisesObjC.framework/PromisesObjC b/frameworks/PromisesObjC.framework/PromisesObjC index 317831b..f68c9c2 100644 --- a/frameworks/PromisesObjC.framework/PromisesObjC +++ b/frameworks/PromisesObjC.framework/PromisesObjC Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/Headers/WAFirebaseImpl.h b/frameworks/WAFirebaseImpl.framework/Headers/WAFirebaseImpl.h index a31d8b0..93542bc 100644 --- a/frameworks/WAFirebaseImpl.framework/Headers/WAFirebaseImpl.h +++ b/frameworks/WAFirebaseImpl.framework/Headers/WAFirebaseImpl.h @@ -16,5 +16,5 @@ // In this header, you should import all the public headers of your framework using statements like #import <WAFirebaseImpl/PublicHeader.h> -//time:2020/09/02 15:35 ver:3.8.5 +//time:2021/01/23 15:35 ver:3.9.2 diff --git a/frameworks/WAFirebaseImpl.framework/Info.plist b/frameworks/WAFirebaseImpl.framework/Info.plist index 55b6dc2..0a30365 100644 --- a/frameworks/WAFirebaseImpl.framework/Info.plist +++ b/frameworks/WAFirebaseImpl.framework/Info.plist Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/WAFirebaseImpl b/frameworks/WAFirebaseImpl.framework/WAFirebaseImpl index 8185afb..f0928c6 100644 --- a/frameworks/WAFirebaseImpl.framework/WAFirebaseImpl +++ b/frameworks/WAFirebaseImpl.framework/WAFirebaseImpl Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeDirectory b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeDirectory index 4a7312c..4e70c49 100644 --- a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeDirectory +++ b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeDirectory Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements index 3111b7f..67c094c 100644 --- a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements +++ b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements-1 b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements-1 index 4ae7a0c..39c7ce8 100644 --- a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements-1 +++ b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeRequirements-1 Binary files differ diff --git a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeResources b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeResources index 1166fc4..a253374 100644 --- a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeResources +++ b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeResources @@ -6,11 +6,11 @@ <dict> <key>Headers/WAFirebaseImpl.h</key> <data> - YhnbGibSGVOxkRJEuf+snerysE8= + Wx5f2IC8qtXRoup68duE3SJK+kc= </data> <key>Info.plist</key> <data> - lp6enMqCBh6AT50+6kOOIfDIUZs= + fXO/Dl9htAtsbV3X04RKPOzZ79s= </data> <key>Modules/module.modulemap</key> <data> @@ -23,11 +23,11 @@ <dict> <key>hash</key> <data> - YhnbGibSGVOxkRJEuf+snerysE8= + Wx5f2IC8qtXRoup68duE3SJK+kc= </data> <key>hash2</key> <data> - P417On82s+y0oTLzN0vf1IPKFklRGzegntW5zQ/cjB8= + yNUrjWlplqIKkC1nH60MH2jp40kDXkQZwO2GKRd0/8o= </data> </dict> <key>Modules/module.modulemap</key> diff --git a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeSignature b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeSignature index 2b968f7..35de5b3 100644 --- a/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeSignature +++ b/frameworks/WAFirebaseImpl.framework/_CodeSignature/CodeSignature Binary files differ diff --git a/frameworks/nanopb.framework/Headers/pb.h b/frameworks/nanopb.framework/Headers/pb.h index 2ba6c63..929bfa1 100644 --- a/frameworks/nanopb.framework/Headers/pb.h +++ b/frameworks/nanopb.framework/Headers/pb.h @@ -51,7 +51,7 @@ /* Version of the nanopb library. Just in case you want to check it in * your own program. */ -#define NANOPB_VERSION nanopb-0.3.9.6 +#define NANOPB_VERSION nanopb-0.3.9.7 /* Include all the system headers needed by nanopb. You will need the * definitions of the following: diff --git a/frameworks/nanopb.framework/Headers/pb_encode.h b/frameworks/nanopb.framework/Headers/pb_encode.h index 8bf78dd..b1d822f 100644 --- a/frameworks/nanopb.framework/Headers/pb_encode.h +++ b/frameworks/nanopb.framework/Headers/pb_encode.h @@ -123,7 +123,7 @@ * structure. Call this from the callback before writing out field contents. */ bool pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_t *field); -/* Encode field header by manually specifing wire type. You need to use this +/* Encode field header by manually specifying wire type. You need to use this * if you want to write out packed arrays from a callback field. */ bool pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number); diff --git a/frameworks/nanopb.framework/Info.plist b/frameworks/nanopb.framework/Info.plist new file mode 100644 index 0000000..de818a8 --- /dev/null +++ b/frameworks/nanopb.framework/Info.plist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>nanopb</string> + <key>CFBundleIdentifier</key> + <string>com.firebase.Firebase-nanopb</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>nanopb</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleVersion</key> + <string>2.30907.0</string> + <key>DTSDKName</key> + <string>iphonesimulator11.2</string> +</dict> +</plist> diff --git a/frameworks/nanopb.framework/nanopb b/frameworks/nanopb.framework/nanopb index 75ea27b..85b16ae 100644 --- a/frameworks/nanopb.framework/nanopb +++ b/frameworks/nanopb.framework/nanopb Binary files differ -- Gitblit v1.8.0