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