cocoapods-catalyst-validator 0.1.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +107 -0
- data/LICENSE.txt +22 -0
- data/README.md +18 -0
- data/Rakefile +13 -0
- data/cocoapods-catalyst-validator.gemspec +23 -0
- data/examples/AExample/AExample/AExample.entitlements +10 -0
- data/examples/AExample/AExample/AppDelegate.h +14 -0
- data/examples/AExample/AExample/AppDelegate.m +40 -0
- data/examples/AExample/AExample/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- data/examples/AExample/AExample/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
- data/examples/AExample/AExample/Assets.xcassets/Contents.json +6 -0
- data/examples/AExample/AExample/Base.lproj/LaunchScreen.storyboard +25 -0
- data/examples/AExample/AExample/Base.lproj/Main.storyboard +24 -0
- data/examples/AExample/AExample/Info.plist +25 -0
- data/examples/AExample/AExample/SceneDelegate.h +15 -0
- data/examples/AExample/AExample/SceneDelegate.m +57 -0
- data/examples/AExample/AExample/ViewController.h +14 -0
- data/examples/AExample/AExample/ViewController.m +22 -0
- data/examples/AExample/AExample/main.m +18 -0
- data/examples/AExample/AExample.xcodeproj/project.pbxproj +664 -0
- data/examples/AExample/AExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/examples/AExample/AExample.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
- data/examples/AExample/AExample.xcworkspace/contents.xcworkspacedata +10 -0
- data/examples/AExample/AExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/examples/AExample/AExample.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/examples/AExample/AExampleCP/AppDelegate.h +14 -0
- data/examples/AExample/AExampleCP/AppDelegate.m +40 -0
- data/examples/AExample/AExampleCP/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- data/examples/AExample/AExampleCP/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
- data/examples/AExample/AExampleCP/Assets.xcassets/Contents.json +6 -0
- data/examples/AExample/AExampleCP/Base.lproj/LaunchScreen.storyboard +25 -0
- data/examples/AExample/AExampleCP/Base.lproj/Main.storyboard +24 -0
- data/examples/AExample/AExampleCP/Info.plist +25 -0
- data/examples/AExample/AExampleCP/SceneDelegate.h +15 -0
- data/examples/AExample/AExampleCP/SceneDelegate.m +57 -0
- data/examples/AExample/AExampleCP/ViewController.h +14 -0
- data/examples/AExample/AExampleCP/ViewController.m +22 -0
- data/examples/AExample/AExampleCP/main.m +18 -0
- data/examples/AExample/Podfile +24 -0
- data/examples/AExample/Podfile.lock +112 -0
- data/examples/AExample/Pods/Bugly/Bugly.framework/Bugly +0 -0
- data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/Bugly.h +163 -0
- data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h +149 -0
- data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h +78 -0
- data/examples/AExample/Pods/Bugly/Bugly.framework/Modules/module.modulemap +12 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/Info.plist +97 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
- data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.h +56 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m +62 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m +856 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.h +49 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m +47 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h +53 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m +79 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m +65 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m +214 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainerInternal.h +49 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m +28 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m +46 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfigurationInternal.h +29 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m +61 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m +44 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.h +35 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m +66 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.h +36 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.m +107 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m +72 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m +174 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m +498 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m +32 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h +127 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h +45 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h +38 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h +126 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h +25 -0
- data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FirebaseCore.h +21 -0
- data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
- data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
- data/examples/AExample/Pods/FirebaseCore/LICENSE +202 -0
- data/examples/AExample/Pods/FirebaseCore/README.md +319 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m +551 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c +60 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h +193 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h +18 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/LICENSE +202 -0
- data/examples/AExample/Pods/FirebaseCoreDiagnostics/README.md +319 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h +65 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m +145 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h +53 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m +79 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m +282 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m +30 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h +27 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h +93 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m +161 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h +52 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m +50 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h +48 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m +242 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h +36 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m +158 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h +62 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m +380 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h +53 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m +142 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.h +27 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.m +23 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h +54 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.m +132 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h +44 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m +531 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h +58 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m +75 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h +35 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h +71 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m +126 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h +58 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m +77 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h +51 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m +80 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h +19 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallations.h +127 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsAuthTokenResult.h +33 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsErrors.h +34 -0
- data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h +19 -0
- data/examples/AExample/Pods/FirebaseInstallations/LICENSE +202 -0
- data/examples/AExample/Pods/FirebaseInstallations/README.md +319 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/Info.plist +97 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/Info.plist +97 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
- data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTCompressionHelper.m +95 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTNanopbHelpers.m +270 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m +573 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploader.m +210 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCOREvent+GDTCCTSupport.m +240 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h +40 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h +128 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploadOperation.h +76 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploader.h +45 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c +128 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h +281 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Public/GDTCOREvent+GDTCCTSupport.h +51 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m +36 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m +178 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m +55 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDirectorySizeTracker.m +101 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREndpoints.m +92 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m +153 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage+Promises.m +104 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage.m +826 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m +119 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m +604 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m +125 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m +157 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorageEventSelector.m +39 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m +111 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m +92 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadBatch.m +30 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m +176 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORAssert.h +95 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORDirectorySizeTracker.h +66 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORLifecycle.h +63 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORPlatform.h +225 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORReachability.h +31 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORRegistrar.h +50 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageEventSelector.h +61 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageProtocol.h +171 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORUploader.h +59 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREndpoints_Private.h +27 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h +33 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage+Promises.h +28 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage.h +158 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h +30 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h +35 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h +57 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h +37 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h +39 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadBatch.h +37 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h +68 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORClock.h +66 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORConsoleLogger.h +144 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREndpoints.h +36 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREvent.h +87 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventDataObject.h +36 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventTransformer.h +38 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTargets.h +40 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTransport.h +92 -0
- data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GoogleDataTransport.h +24 -0
- data/examples/AExample/Pods/GoogleDataTransport/LICENSE +202 -0
- data/examples/AExample/Pods/GoogleDataTransport/README.md +231 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m +1070 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULSceneDelegateSwizzler.m +439 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h +55 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h +48 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h +107 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULApplication.h +50 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h +76 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h +56 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m +153 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorageUserDefaults.m +68 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m +103 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h +60 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorable.h +40 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorage.h +54 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorageUserDefaults.h +51 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h +79 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h +61 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULSecureCoding.h +36 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULURLSessionDataResponse.h +31 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/NSURLSession+GULPromises.h +37 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m +192 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m +113 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/GULURLSessionDataResponse.m +30 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/NSURLSession+GULPromises.m +46 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m +333 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m +215 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h +159 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h +37 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m +153 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULOriginalIMPConvenienceMacros.h +207 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULSwizzler.h +71 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m +207 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/Public/GoogleUtilities/GULNSData+zlib.h +49 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m +101 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m +390 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m +41 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkInternal.h +24 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m +766 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h +46 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetwork.h +87 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkConstants.h +71 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkLoggerProtocol.h +49 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkMessageCode.h +47 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkURLSession.h +62 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h +48 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m +263 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityMessageCode.h +29 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/Public/GoogleUtilities/GULReachabilityChecker.h +79 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m +213 -0
- data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h +110 -0
- data/examples/AExample/Pods/GoogleUtilities/LICENSE +247 -0
- data/examples/AExample/Pods/GoogleUtilities/README.md +189 -0
- data/examples/AExample/Pods/Manifest.lock +112 -0
- data/examples/AExample/Pods/Pods.xcodeproj/project.pbxproj +3670 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseAnalytics.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCore.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCoreDiagnostics.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseInstallations.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleAppMeasurement.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleDataTransport.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleUtilities.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample-AExampleCP.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/PromisesObjC.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/nanopb.xcscheme +58 -0
- data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +66 -0
- data/examples/AExample/Pods/PromisesObjC/LICENSE +202 -0
- data/examples/AExample/Pods/PromisesObjC/README.md +60 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+All.m +86 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Always.m +58 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Any.m +112 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Async.m +70 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Await.m +48 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Catch.m +55 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Delay.m +59 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Do.m +59 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Race.m +65 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Recover.m +54 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Reduce.m +61 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Retry.m +128 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Testing.m +55 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Then.m +50 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Timeout.m +64 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Validate.m +56 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Wrap.m +420 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise.m +299 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromiseError.m +19 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+All.h +63 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Always.h +54 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Any.h +69 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Async.h +60 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Await.h +32 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Catch.h +59 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Delay.h +59 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Do.h +55 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Race.h +62 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Recover.h +60 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Reduce.h +71 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Retry.h +165 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Testing.h +57 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Then.h +63 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Timeout.h +57 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Validate.h +60 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h +316 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise.h +93 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromiseError.h +43 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromisePrivate.h +66 -0
- data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromises.h +32 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-input-files.xcfilelist +2 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-output-files.xcfilelist +1 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh +109 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.debug.xcconfig +13 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.release.xcconfig +13 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-umbrella.h +22 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig +16 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig +16 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-umbrella.h +17 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.debug.xcconfig +17 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.release.xcconfig +17 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-umbrella.h +20 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.debug.xcconfig +15 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.release.xcconfig +15 -0
- data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-input-files.xcfilelist +3 -0
- data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-output-files.xcfilelist +2 -0
- data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh +110 -0
- data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.debug.xcconfig +13 -0
- data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.release.xcconfig +13 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-umbrella.h +25 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.debug.xcconfig +16 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.release.xcconfig +16 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-umbrella.h +41 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.debug.xcconfig +15 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.release.xcconfig +15 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.markdown +1316 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.plist +1396 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-input-files.xcfilelist +8 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-output-files.xcfilelist +7 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-input-files.xcfilelist +8 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-output-files.xcfilelist +7 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks.sh +198 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-umbrella.h +16 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.debug.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.release.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.markdown +1316 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.plist +1396 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-input-files.xcfilelist +8 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-output-files.xcfilelist +7 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-input-files.xcfilelist +8 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-output-files.xcfilelist +7 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks.sh +198 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-umbrella.h +16 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.debug.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.release.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-umbrella.h +36 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.debug.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.release.xcconfig +12 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-Info.plist +26 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-dummy.m +5 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-prefix.pch +12 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-umbrella.h +26 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.debug.xcconfig +11 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.modulemap +6 -0
- data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.release.xcconfig +11 -0
- data/examples/AExample/Pods/nanopb/LICENSE.txt +20 -0
- data/examples/AExample/Pods/nanopb/README.md +71 -0
- data/examples/AExample/Pods/nanopb/pb.h +599 -0
- data/examples/AExample/Pods/nanopb/pb_common.c +97 -0
- data/examples/AExample/Pods/nanopb/pb_common.h +42 -0
- data/examples/AExample/Pods/nanopb/pb_decode.c +1564 -0
- data/examples/AExample/Pods/nanopb/pb_decode.h +178 -0
- data/examples/AExample/Pods/nanopb/pb_encode.c +913 -0
- data/examples/AExample/Pods/nanopb/pb_encode.h +170 -0
- data/lib/cocoapods-catalyst-validator/cocoapods-catalyst-validator.rb +110 -0
- data/lib/cocoapods-catalyst-validator/gem_version.rb +3 -0
- data/lib/cocoapods_plugin.rb +3 -0
- data/spec/command/validator_spec.rb +12 -0
- data/spec/spec_helper.rb +50 -0
- metadata +601 -0
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2019 Google
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#import "FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h"
|
|
18
|
+
|
|
19
|
+
#if __has_include(<FBLPromises/FBLPromises.h>)
|
|
20
|
+
#import <FBLPromises/FBLPromises.h>
|
|
21
|
+
#else
|
|
22
|
+
#import "FBLPromises.h"
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
#import <GoogleUtilities/GULKeychainStorage.h>
|
|
26
|
+
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
|
|
27
|
+
|
|
28
|
+
#import "FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h"
|
|
29
|
+
#import "FirebaseInstallations/Source/Library/FIRInstallationsItem.h"
|
|
30
|
+
#import "FirebaseInstallations/Source/Library/FIRInstallationsLogger.h"
|
|
31
|
+
#import "FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h"
|
|
32
|
+
#import "FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h"
|
|
33
|
+
#import "FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h"
|
|
34
|
+
#import "FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h"
|
|
35
|
+
#import "FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h"
|
|
36
|
+
#import "FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h"
|
|
37
|
+
|
|
38
|
+
#import "FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h"
|
|
39
|
+
#import "FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h"
|
|
40
|
+
|
|
41
|
+
const NSNotificationName FIRInstallationIDDidChangeNotification =
|
|
42
|
+
@"FIRInstallationIDDidChangeNotification";
|
|
43
|
+
NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey =
|
|
44
|
+
@"FIRInstallationIDDidChangeNotification";
|
|
45
|
+
|
|
46
|
+
NSTimeInterval const kFIRInstallationsTokenExpirationThreshold = 60 * 60; // 1 hour.
|
|
47
|
+
|
|
48
|
+
static NSString *const kKeychainService = @"com.firebase.FIRInstallations.installations";
|
|
49
|
+
|
|
50
|
+
@interface FIRInstallationsIDController ()
|
|
51
|
+
@property(nonatomic, readonly) NSString *appID;
|
|
52
|
+
@property(nonatomic, readonly) NSString *appName;
|
|
53
|
+
|
|
54
|
+
@property(nonatomic, readonly) FIRInstallationsStore *installationsStore;
|
|
55
|
+
@property(nonatomic, readonly) FIRInstallationsIIDStore *IIDStore;
|
|
56
|
+
@property(nonatomic, readonly) FIRInstallationsIIDTokenStore *IIDTokenStore;
|
|
57
|
+
|
|
58
|
+
@property(nonatomic, readonly) FIRInstallationsAPIService *APIService;
|
|
59
|
+
|
|
60
|
+
@property(nonatomic, readonly) id<FIRInstallationsBackoffControllerProtocol> backoffController;
|
|
61
|
+
|
|
62
|
+
@property(nonatomic, readonly) FIRInstallationsSingleOperationPromiseCache<FIRInstallationsItem *>
|
|
63
|
+
*getInstallationPromiseCache;
|
|
64
|
+
@property(nonatomic, readonly)
|
|
65
|
+
FIRInstallationsSingleOperationPromiseCache<FIRInstallationsItem *> *authTokenPromiseCache;
|
|
66
|
+
@property(nonatomic, readonly) FIRInstallationsSingleOperationPromiseCache<FIRInstallationsItem *>
|
|
67
|
+
*authTokenForcingRefreshPromiseCache;
|
|
68
|
+
@property(nonatomic, readonly)
|
|
69
|
+
FIRInstallationsSingleOperationPromiseCache<NSNull *> *deleteInstallationPromiseCache;
|
|
70
|
+
@end
|
|
71
|
+
|
|
72
|
+
@implementation FIRInstallationsIDController
|
|
73
|
+
|
|
74
|
+
- (instancetype)initWithGoogleAppID:(NSString *)appID
|
|
75
|
+
appName:(NSString *)appName
|
|
76
|
+
APIKey:(NSString *)APIKey
|
|
77
|
+
projectID:(NSString *)projectID
|
|
78
|
+
GCMSenderID:(NSString *)GCMSenderID
|
|
79
|
+
accessGroup:(nullable NSString *)accessGroup {
|
|
80
|
+
NSString *serviceName = [FIRInstallationsIDController keychainServiceWithAppID:appID];
|
|
81
|
+
GULKeychainStorage *secureStorage = [[GULKeychainStorage alloc] initWithService:serviceName];
|
|
82
|
+
FIRInstallationsStore *installationsStore =
|
|
83
|
+
[[FIRInstallationsStore alloc] initWithSecureStorage:secureStorage accessGroup:accessGroup];
|
|
84
|
+
|
|
85
|
+
FIRInstallationsAPIService *apiService =
|
|
86
|
+
[[FIRInstallationsAPIService alloc] initWithAPIKey:APIKey projectID:projectID];
|
|
87
|
+
|
|
88
|
+
FIRInstallationsIIDStore *IIDStore = [[FIRInstallationsIIDStore alloc] init];
|
|
89
|
+
FIRInstallationsIIDTokenStore *IIDCheckingStore =
|
|
90
|
+
[[FIRInstallationsIIDTokenStore alloc] initWithGCMSenderID:GCMSenderID];
|
|
91
|
+
|
|
92
|
+
FIRInstallationsBackoffController *backoffController =
|
|
93
|
+
[[FIRInstallationsBackoffController alloc] init];
|
|
94
|
+
|
|
95
|
+
return [self initWithGoogleAppID:appID
|
|
96
|
+
appName:appName
|
|
97
|
+
installationsStore:installationsStore
|
|
98
|
+
APIService:apiService
|
|
99
|
+
IIDStore:IIDStore
|
|
100
|
+
IIDTokenStore:IIDCheckingStore
|
|
101
|
+
backoffController:backoffController];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/// The initializer is supposed to be used by tests to inject `installationsStore`.
|
|
105
|
+
- (instancetype)initWithGoogleAppID:(NSString *)appID
|
|
106
|
+
appName:(NSString *)appName
|
|
107
|
+
installationsStore:(FIRInstallationsStore *)installationsStore
|
|
108
|
+
APIService:(FIRInstallationsAPIService *)APIService
|
|
109
|
+
IIDStore:(FIRInstallationsIIDStore *)IIDStore
|
|
110
|
+
IIDTokenStore:(FIRInstallationsIIDTokenStore *)IIDTokenStore
|
|
111
|
+
backoffController:
|
|
112
|
+
(id<FIRInstallationsBackoffControllerProtocol>)backoffController {
|
|
113
|
+
self = [super init];
|
|
114
|
+
if (self) {
|
|
115
|
+
_appID = appID;
|
|
116
|
+
_appName = appName;
|
|
117
|
+
_installationsStore = installationsStore;
|
|
118
|
+
_APIService = APIService;
|
|
119
|
+
_IIDStore = IIDStore;
|
|
120
|
+
_IIDTokenStore = IIDTokenStore;
|
|
121
|
+
_backoffController = backoffController;
|
|
122
|
+
|
|
123
|
+
__weak FIRInstallationsIDController *weakSelf = self;
|
|
124
|
+
|
|
125
|
+
_getInstallationPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc]
|
|
126
|
+
initWithNewOperationHandler:^FBLPromise *_Nonnull {
|
|
127
|
+
FIRInstallationsIDController *strongSelf = weakSelf;
|
|
128
|
+
return [strongSelf createGetInstallationItemPromise];
|
|
129
|
+
}];
|
|
130
|
+
|
|
131
|
+
_authTokenPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc]
|
|
132
|
+
initWithNewOperationHandler:^FBLPromise *_Nonnull {
|
|
133
|
+
FIRInstallationsIDController *strongSelf = weakSelf;
|
|
134
|
+
return [strongSelf installationWithValidAuthTokenForcingRefresh:NO];
|
|
135
|
+
}];
|
|
136
|
+
|
|
137
|
+
_authTokenForcingRefreshPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc]
|
|
138
|
+
initWithNewOperationHandler:^FBLPromise *_Nonnull {
|
|
139
|
+
FIRInstallationsIDController *strongSelf = weakSelf;
|
|
140
|
+
return [strongSelf installationWithValidAuthTokenForcingRefresh:YES];
|
|
141
|
+
}];
|
|
142
|
+
|
|
143
|
+
_deleteInstallationPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc]
|
|
144
|
+
initWithNewOperationHandler:^FBLPromise *_Nonnull {
|
|
145
|
+
FIRInstallationsIDController *strongSelf = weakSelf;
|
|
146
|
+
return [strongSelf createDeleteInstallationPromise];
|
|
147
|
+
}];
|
|
148
|
+
}
|
|
149
|
+
return self;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
#pragma mark - Get Installation.
|
|
153
|
+
|
|
154
|
+
- (FBLPromise<FIRInstallationsItem *> *)getInstallationItem {
|
|
155
|
+
return [self.getInstallationPromiseCache getExistingPendingOrCreateNewPromise];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
- (FBLPromise<FIRInstallationsItem *> *)createGetInstallationItemPromise {
|
|
159
|
+
FIRLogDebug(kFIRLoggerInstallations,
|
|
160
|
+
kFIRInstallationsMessageCodeNewGetInstallationOperationCreated, @"%s, appName: %@",
|
|
161
|
+
__PRETTY_FUNCTION__, self.appName);
|
|
162
|
+
|
|
163
|
+
FBLPromise<FIRInstallationsItem *> *installationItemPromise =
|
|
164
|
+
[self getStoredInstallation].recover(^id(NSError *error) {
|
|
165
|
+
return [self createAndSaveFID];
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// Initiate registration process on success if needed, but return the installation without waiting
|
|
169
|
+
// for it.
|
|
170
|
+
installationItemPromise.then(^id(FIRInstallationsItem *installation) {
|
|
171
|
+
[self getAuthTokenForcingRefresh:NO];
|
|
172
|
+
return nil;
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
return installationItemPromise;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
- (FBLPromise<FIRInstallationsItem *> *)getStoredInstallation {
|
|
179
|
+
return [self.installationsStore installationForAppID:self.appID appName:self.appName].validate(
|
|
180
|
+
^BOOL(FIRInstallationsItem *installation) {
|
|
181
|
+
NSError *validationError;
|
|
182
|
+
BOOL isValid = [installation isValid:&validationError];
|
|
183
|
+
|
|
184
|
+
if (!isValid) {
|
|
185
|
+
FIRLogWarning(
|
|
186
|
+
kFIRLoggerInstallations, kFIRInstallationsMessageCodeCorruptedStoredInstallation,
|
|
187
|
+
@"Stored installation validation error: %@", validationError.localizedDescription);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return isValid;
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- (FBLPromise<FIRInstallationsItem *> *)createAndSaveFID {
|
|
195
|
+
return [self migrateOrGenerateInstallation]
|
|
196
|
+
.then(^FBLPromise<FIRInstallationsItem *> *(FIRInstallationsItem *installation) {
|
|
197
|
+
return [self saveInstallation:installation];
|
|
198
|
+
})
|
|
199
|
+
.then(^FIRInstallationsItem *(FIRInstallationsItem *installation) {
|
|
200
|
+
[self postFIDDidChangeNotification];
|
|
201
|
+
return installation;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
- (FBLPromise<FIRInstallationsItem *> *)saveInstallation:(FIRInstallationsItem *)installation {
|
|
206
|
+
return [self.installationsStore saveInstallation:installation].then(
|
|
207
|
+
^FIRInstallationsItem *(NSNull *result) {
|
|
208
|
+
return installation;
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Tries to migrate IID data stored by FirebaseInstanceID SDK or generates a new Installation ID if
|
|
214
|
+
* not found.
|
|
215
|
+
*/
|
|
216
|
+
- (FBLPromise<FIRInstallationsItem *> *)migrateOrGenerateInstallation {
|
|
217
|
+
if (![self isDefaultApp]) {
|
|
218
|
+
// Existing IID should be used only for default FirebaseApp.
|
|
219
|
+
FIRInstallationsItem *installation =
|
|
220
|
+
[self createInstallationWithFID:[FIRInstallationsItem generateFID] IIDDefaultToken:nil];
|
|
221
|
+
return [FBLPromise resolvedWith:installation];
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return [[[FBLPromise
|
|
225
|
+
all:@[ [self.IIDStore existingIID], [self.IIDTokenStore existingIIDDefaultToken] ]]
|
|
226
|
+
then:^id _Nullable(NSArray *_Nullable results) {
|
|
227
|
+
NSString *existingIID = results[0];
|
|
228
|
+
NSString *IIDDefaultToken = results[1];
|
|
229
|
+
|
|
230
|
+
return [self createInstallationWithFID:existingIID IIDDefaultToken:IIDDefaultToken];
|
|
231
|
+
}] recover:^id _Nullable(NSError *_Nonnull error) {
|
|
232
|
+
return [self createInstallationWithFID:[FIRInstallationsItem generateFID] IIDDefaultToken:nil];
|
|
233
|
+
}];
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
- (FIRInstallationsItem *)createInstallationWithFID:(NSString *)FID
|
|
237
|
+
IIDDefaultToken:(nullable NSString *)IIDDefaultToken {
|
|
238
|
+
FIRInstallationsItem *installation = [[FIRInstallationsItem alloc] initWithAppID:self.appID
|
|
239
|
+
firebaseAppName:self.appName];
|
|
240
|
+
installation.firebaseInstallationID = FID;
|
|
241
|
+
installation.IIDDefaultToken = IIDDefaultToken;
|
|
242
|
+
installation.registrationStatus = FIRInstallationStatusUnregistered;
|
|
243
|
+
return installation;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#pragma mark - FID registration
|
|
247
|
+
|
|
248
|
+
- (FBLPromise<FIRInstallationsItem *> *)registerInstallationIfNeeded:
|
|
249
|
+
(FIRInstallationsItem *)installation {
|
|
250
|
+
switch (installation.registrationStatus) {
|
|
251
|
+
case FIRInstallationStatusRegistered:
|
|
252
|
+
// Already registered. Do nothing.
|
|
253
|
+
return [FBLPromise resolvedWith:installation];
|
|
254
|
+
|
|
255
|
+
case FIRInstallationStatusUnknown:
|
|
256
|
+
case FIRInstallationStatusUnregistered:
|
|
257
|
+
// Registration required. Proceed.
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Check for backoff.
|
|
262
|
+
if (![self.backoffController isNextRequestAllowed]) {
|
|
263
|
+
return [FIRInstallationsErrorUtil
|
|
264
|
+
rejectedPromiseWithError:[FIRInstallationsErrorUtil backoffIntervalWaitError]];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return [self.APIService registerInstallation:installation]
|
|
268
|
+
.catch(^(NSError *_Nonnull error) {
|
|
269
|
+
[self updateBackoffWithSuccess:NO APIError:error];
|
|
270
|
+
|
|
271
|
+
if ([self doesRegistrationErrorRequireConfigChange:error]) {
|
|
272
|
+
FIRLogError(kFIRLoggerInstallations,
|
|
273
|
+
kFIRInstallationsMessageCodeInvalidFirebaseConfiguration,
|
|
274
|
+
@"Firebase Installation registration failed for app with name: %@, error:\n"
|
|
275
|
+
@"%@\nPlease make sure you use valid GoogleService-Info.plist",
|
|
276
|
+
self.appName, error.userInfo[NSLocalizedFailureReasonErrorKey]);
|
|
277
|
+
}
|
|
278
|
+
})
|
|
279
|
+
.then(^id(FIRInstallationsItem *registeredInstallation) {
|
|
280
|
+
[self updateBackoffWithSuccess:YES APIError:nil];
|
|
281
|
+
return [self saveInstallation:registeredInstallation];
|
|
282
|
+
})
|
|
283
|
+
.then(^FIRInstallationsItem *(FIRInstallationsItem *registeredInstallation) {
|
|
284
|
+
// Server may respond with a different FID if the sent one cannot be accepted.
|
|
285
|
+
if (![registeredInstallation.firebaseInstallationID
|
|
286
|
+
isEqualToString:installation.firebaseInstallationID]) {
|
|
287
|
+
[self postFIDDidChangeNotification];
|
|
288
|
+
}
|
|
289
|
+
return registeredInstallation;
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
- (BOOL)doesRegistrationErrorRequireConfigChange:(NSError *)error {
|
|
294
|
+
FIRInstallationsHTTPError *HTTPError = (FIRInstallationsHTTPError *)error;
|
|
295
|
+
if (![HTTPError isKindOfClass:[FIRInstallationsHTTPError class]]) {
|
|
296
|
+
return NO;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
switch (HTTPError.HTTPResponse.statusCode) {
|
|
300
|
+
// These are the errors that require Firebase configuration change.
|
|
301
|
+
case FIRInstallationsRegistrationHTTPCodeInvalidArgument:
|
|
302
|
+
case FIRInstallationsRegistrationHTTPCodeAPIKeyToProjectIDMismatch:
|
|
303
|
+
case FIRInstallationsRegistrationHTTPCodeProjectNotFound:
|
|
304
|
+
return YES;
|
|
305
|
+
|
|
306
|
+
default:
|
|
307
|
+
return NO;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
#pragma mark - Auth Token
|
|
312
|
+
|
|
313
|
+
- (FBLPromise<FIRInstallationsItem *> *)getAuthTokenForcingRefresh:(BOOL)forceRefresh {
|
|
314
|
+
if (forceRefresh || [self.authTokenForcingRefreshPromiseCache getExistingPendingPromise] != nil) {
|
|
315
|
+
return [self.authTokenForcingRefreshPromiseCache getExistingPendingOrCreateNewPromise];
|
|
316
|
+
} else {
|
|
317
|
+
return [self.authTokenPromiseCache getExistingPendingOrCreateNewPromise];
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
- (FBLPromise<FIRInstallationsItem *> *)installationWithValidAuthTokenForcingRefresh:
|
|
322
|
+
(BOOL)forceRefresh {
|
|
323
|
+
FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated,
|
|
324
|
+
@"-[FIRInstallationsIDController installationWithValidAuthTokenForcingRefresh:%@], "
|
|
325
|
+
@"appName: %@",
|
|
326
|
+
@(forceRefresh), self.appName);
|
|
327
|
+
|
|
328
|
+
return [self getInstallationItem]
|
|
329
|
+
.then(^FBLPromise<FIRInstallationsItem *> *(FIRInstallationsItem *installation) {
|
|
330
|
+
return [self registerInstallationIfNeeded:installation];
|
|
331
|
+
})
|
|
332
|
+
.then(^id(FIRInstallationsItem *registeredInstallation) {
|
|
333
|
+
BOOL isTokenExpiredOrExpiresSoon =
|
|
334
|
+
[registeredInstallation.authToken.expirationDate timeIntervalSinceDate:[NSDate date]] <
|
|
335
|
+
kFIRInstallationsTokenExpirationThreshold;
|
|
336
|
+
if (forceRefresh || isTokenExpiredOrExpiresSoon) {
|
|
337
|
+
return [self refreshAuthTokenForInstallation:registeredInstallation];
|
|
338
|
+
} else {
|
|
339
|
+
return registeredInstallation;
|
|
340
|
+
}
|
|
341
|
+
})
|
|
342
|
+
.recover(^id(NSError *error) {
|
|
343
|
+
return [self regenerateFIDOnRefreshTokenErrorIfNeeded:error];
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
- (FBLPromise<FIRInstallationsItem *> *)refreshAuthTokenForInstallation:
|
|
348
|
+
(FIRInstallationsItem *)installation {
|
|
349
|
+
// Check for backoff.
|
|
350
|
+
if (![self.backoffController isNextRequestAllowed]) {
|
|
351
|
+
return [FIRInstallationsErrorUtil
|
|
352
|
+
rejectedPromiseWithError:[FIRInstallationsErrorUtil backoffIntervalWaitError]];
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
return [[[self.APIService refreshAuthTokenForInstallation:installation]
|
|
356
|
+
then:^id _Nullable(FIRInstallationsItem *_Nullable refreshedInstallation) {
|
|
357
|
+
[self updateBackoffWithSuccess:YES APIError:nil];
|
|
358
|
+
return [self saveInstallation:refreshedInstallation];
|
|
359
|
+
}] recover:^id _Nullable(NSError *_Nonnull error) {
|
|
360
|
+
// Pass the error to the backoff controller.
|
|
361
|
+
[self updateBackoffWithSuccess:NO APIError:error];
|
|
362
|
+
return error;
|
|
363
|
+
}];
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
- (id)regenerateFIDOnRefreshTokenErrorIfNeeded:(NSError *)error {
|
|
367
|
+
if (![error isKindOfClass:[FIRInstallationsHTTPError class]]) {
|
|
368
|
+
// No recovery possible. Return the same error.
|
|
369
|
+
return error;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
FIRInstallationsHTTPError *HTTPError = (FIRInstallationsHTTPError *)error;
|
|
373
|
+
switch (HTTPError.HTTPResponse.statusCode) {
|
|
374
|
+
case FIRInstallationsAuthTokenHTTPCodeInvalidAuthentication:
|
|
375
|
+
case FIRInstallationsAuthTokenHTTPCodeFIDNotFound:
|
|
376
|
+
// The stored installation was damaged or blocked by the server.
|
|
377
|
+
// Delete the stored installation then generate and register a new one.
|
|
378
|
+
return [self getInstallationItem]
|
|
379
|
+
.then(^FBLPromise<NSNull *> *(FIRInstallationsItem *installation) {
|
|
380
|
+
return [self deleteInstallationLocally:installation];
|
|
381
|
+
})
|
|
382
|
+
.then(^FBLPromise<FIRInstallationsItem *> *(id result) {
|
|
383
|
+
return [self installationWithValidAuthTokenForcingRefresh:NO];
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
default:
|
|
387
|
+
// No recovery possible. Return the same error.
|
|
388
|
+
return error;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
#pragma mark - Delete FID
|
|
393
|
+
|
|
394
|
+
- (FBLPromise<NSNull *> *)deleteInstallation {
|
|
395
|
+
return [self.deleteInstallationPromiseCache getExistingPendingOrCreateNewPromise];
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
- (FBLPromise<NSNull *> *)createDeleteInstallationPromise {
|
|
399
|
+
FIRLogDebug(kFIRLoggerInstallations,
|
|
400
|
+
kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated, @"%s, appName: %@",
|
|
401
|
+
__PRETTY_FUNCTION__, self.appName);
|
|
402
|
+
|
|
403
|
+
// Check for ongoing requests first, if there is no a request, then check local storage for
|
|
404
|
+
// existing installation.
|
|
405
|
+
FBLPromise<FIRInstallationsItem *> *currentInstallationPromise =
|
|
406
|
+
[self mostRecentInstallationOperation] ?: [self getStoredInstallation];
|
|
407
|
+
|
|
408
|
+
return currentInstallationPromise
|
|
409
|
+
.then(^id(FIRInstallationsItem *installation) {
|
|
410
|
+
return [self sendDeleteInstallationRequestIfNeeded:installation];
|
|
411
|
+
})
|
|
412
|
+
.then(^id(FIRInstallationsItem *installation) {
|
|
413
|
+
// Remove the installation from the local storage.
|
|
414
|
+
return [self deleteInstallationLocally:installation];
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
- (FBLPromise<NSNull *> *)deleteInstallationLocally:(FIRInstallationsItem *)installation {
|
|
419
|
+
return [self.installationsStore removeInstallationForAppID:installation.appID
|
|
420
|
+
appName:installation.firebaseAppName]
|
|
421
|
+
.then(^FBLPromise<NSNull *> *(NSNull *result) {
|
|
422
|
+
return [self deleteExistingIIDIfNeeded];
|
|
423
|
+
})
|
|
424
|
+
.then(^NSNull *(NSNull *result) {
|
|
425
|
+
[self postFIDDidChangeNotification];
|
|
426
|
+
return result;
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
- (FBLPromise<FIRInstallationsItem *> *)sendDeleteInstallationRequestIfNeeded:
|
|
431
|
+
(FIRInstallationsItem *)installation {
|
|
432
|
+
switch (installation.registrationStatus) {
|
|
433
|
+
case FIRInstallationStatusUnknown:
|
|
434
|
+
case FIRInstallationStatusUnregistered:
|
|
435
|
+
// The installation is not registered, so it is safe to be deleted as is, so return early.
|
|
436
|
+
return [FBLPromise resolvedWith:installation];
|
|
437
|
+
break;
|
|
438
|
+
|
|
439
|
+
case FIRInstallationStatusRegistered:
|
|
440
|
+
// Proceed to de-register the installation on the server.
|
|
441
|
+
break;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
return [self.APIService deleteInstallation:installation].recover(^id(NSError *APIError) {
|
|
445
|
+
if ([FIRInstallationsErrorUtil isAPIError:APIError withHTTPCode:404]) {
|
|
446
|
+
// The installation was not found on the server.
|
|
447
|
+
// Return success.
|
|
448
|
+
return installation;
|
|
449
|
+
} else {
|
|
450
|
+
// Re-throw the error otherwise.
|
|
451
|
+
return APIError;
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
- (FBLPromise<NSNull *> *)deleteExistingIIDIfNeeded {
|
|
457
|
+
if ([self isDefaultApp]) {
|
|
458
|
+
return [self.IIDStore deleteExistingIID];
|
|
459
|
+
} else {
|
|
460
|
+
return [FBLPromise resolvedWith:[NSNull null]];
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
- (nullable FBLPromise<FIRInstallationsItem *> *)mostRecentInstallationOperation {
|
|
465
|
+
return [self.authTokenForcingRefreshPromiseCache getExistingPendingPromise]
|
|
466
|
+
?: [self.authTokenPromiseCache getExistingPendingPromise]
|
|
467
|
+
?: [self.getInstallationPromiseCache getExistingPendingPromise];
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
#pragma mark - Backoff
|
|
471
|
+
|
|
472
|
+
- (void)updateBackoffWithSuccess:(BOOL)success APIError:(nullable NSError *)APIError {
|
|
473
|
+
if (success) {
|
|
474
|
+
[self.backoffController registerEvent:FIRInstallationsBackoffEventSuccess];
|
|
475
|
+
} else if ([APIError isKindOfClass:[FIRInstallationsHTTPError class]]) {
|
|
476
|
+
FIRInstallationsHTTPError *HTTPResponseError = (FIRInstallationsHTTPError *)APIError;
|
|
477
|
+
NSInteger statusCode = HTTPResponseError.HTTPResponse.statusCode;
|
|
478
|
+
|
|
479
|
+
if (statusCode == FIRInstallationsAuthTokenHTTPCodeInvalidAuthentication ||
|
|
480
|
+
statusCode == FIRInstallationsAuthTokenHTTPCodeFIDNotFound) {
|
|
481
|
+
// These errors are explicitly excluded because they are handled by FIS SDK itself so don't
|
|
482
|
+
// require backoff.
|
|
483
|
+
} else if (statusCode == 400 || statusCode == 403) { // Explicitly unrecoverable errors.
|
|
484
|
+
[self.backoffController registerEvent:FIRInstallationsBackoffEventUnrecoverableFailure];
|
|
485
|
+
} else if (statusCode == 429 ||
|
|
486
|
+
(statusCode >= 500 && statusCode < 600)) { // Explicitly recoverable errors.
|
|
487
|
+
[self.backoffController registerEvent:FIRInstallationsBackoffEventRecoverableFailure];
|
|
488
|
+
} else { // Treat all unknown errors as recoverable.
|
|
489
|
+
[self.backoffController registerEvent:FIRInstallationsBackoffEventRecoverableFailure];
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
// If the error class is not `FIRInstallationsHTTPError` it indicates a connection error. Such
|
|
494
|
+
// errors should not change backoff interval.
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
#pragma mark - Notifications
|
|
498
|
+
|
|
499
|
+
- (void)postFIDDidChangeNotification {
|
|
500
|
+
[[NSNotificationCenter defaultCenter]
|
|
501
|
+
postNotificationName:FIRInstallationIDDidChangeNotification
|
|
502
|
+
object:nil
|
|
503
|
+
userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : self.appName}];
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
#pragma mark - Default App
|
|
507
|
+
|
|
508
|
+
- (BOOL)isDefaultApp {
|
|
509
|
+
return [self.appName isEqualToString:kFIRDefaultAppName];
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
#pragma mark - Keychain
|
|
513
|
+
|
|
514
|
+
+ (NSString *)keychainServiceWithAppID:(NSString *)appID {
|
|
515
|
+
#if TARGET_OS_MACCATALYST || TARGET_OS_OSX
|
|
516
|
+
// We need to keep service name unique per application on macOS.
|
|
517
|
+
// Applications on macOS may request access to Keychain items stored by other applications. It
|
|
518
|
+
// means that when the app looks up for a relevant Keychain item in the service scope it will
|
|
519
|
+
// request user password to grant access to the Keychain if there are other Keychain items from
|
|
520
|
+
// other applications stored under the same Keychain Service.
|
|
521
|
+
return [kKeychainService stringByAppendingFormat:@".%@", appID];
|
|
522
|
+
#else
|
|
523
|
+
// Use a constant Keychain service for non-macOS because:
|
|
524
|
+
// 1. Keychain items cannot be shared between apps until configured specifically so the service
|
|
525
|
+
// name collisions are not a concern
|
|
526
|
+
// 2. We don't want to change the service name to avoid doing a migration.
|
|
527
|
+
return kKeychainService;
|
|
528
|
+
#endif
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
@end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2019 Google
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#import <Foundation/Foundation.h>
|
|
18
|
+
|
|
19
|
+
@class FBLPromise<ValueType>;
|
|
20
|
+
|
|
21
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The class makes sure the a single operation (represented by a promise) is performed at a time. If
|
|
25
|
+
* there is an ongoing operation, then its existing corresponding promise will be returned instead
|
|
26
|
+
* of starting a new operation.
|
|
27
|
+
*/
|
|
28
|
+
@interface FIRInstallationsSingleOperationPromiseCache<__covariant ResultType> : NSObject
|
|
29
|
+
|
|
30
|
+
- (instancetype)init NS_UNAVAILABLE;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The designated initializer.
|
|
34
|
+
* @param newOperationHandler The block that must return a new promise representing the
|
|
35
|
+
* single-at-a-time operation. The promise should be fulfilled when the operation is completed. The
|
|
36
|
+
* factory block will be used to create a new promise when needed.
|
|
37
|
+
*/
|
|
38
|
+
- (instancetype)initWithNewOperationHandler:
|
|
39
|
+
(FBLPromise<ResultType> *_Nonnull (^)(void))newOperationHandler NS_DESIGNATED_INITIALIZER;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new promise or returns an existing pending one.
|
|
43
|
+
* @return Returns and existing pending promise if exists. If the pending promise does not exist
|
|
44
|
+
* then a new one will be created using the `factory` block passed in the initializer. Once the
|
|
45
|
+
* pending promise gets resolved, it is removed, so calling the method again will lead to creating
|
|
46
|
+
* and caching another promise.
|
|
47
|
+
*/
|
|
48
|
+
- (FBLPromise<ResultType> *)getExistingPendingOrCreateNewPromise;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Returns an existing pending promise or `nil`.
|
|
52
|
+
* @return Returns an existing pending promise if there is one or `nil` otherwise.
|
|
53
|
+
*/
|
|
54
|
+
- (nullable FBLPromise<ResultType> *)getExistingPendingPromise;
|
|
55
|
+
|
|
56
|
+
@end
|
|
57
|
+
|
|
58
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2019 Google
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#import "FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h"
|
|
18
|
+
|
|
19
|
+
#if __has_include(<FBLPromises/FBLPromises.h>)
|
|
20
|
+
#import <FBLPromises/FBLPromises.h>
|
|
21
|
+
#else
|
|
22
|
+
#import "FBLPromises.h"
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
@interface FIRInstallationsSingleOperationPromiseCache <ResultType>()
|
|
26
|
+
@property(nonatomic, readonly) FBLPromise *_Nonnull (^newOperationHandler)(void);
|
|
27
|
+
@property(nonatomic, nullable) FBLPromise *pendingPromise;
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
@implementation FIRInstallationsSingleOperationPromiseCache
|
|
31
|
+
|
|
32
|
+
- (instancetype)initWithNewOperationHandler:
|
|
33
|
+
(FBLPromise<id> *_Nonnull (^)(void))newOperationHandler {
|
|
34
|
+
if (newOperationHandler == nil) {
|
|
35
|
+
[NSException raise:NSInvalidArgumentException
|
|
36
|
+
format:@"`newOperationHandler` must not be `nil`."];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
self = [super init];
|
|
40
|
+
if (self) {
|
|
41
|
+
_newOperationHandler = [newOperationHandler copy];
|
|
42
|
+
}
|
|
43
|
+
return self;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (FBLPromise *)getExistingPendingOrCreateNewPromise {
|
|
47
|
+
@synchronized(self) {
|
|
48
|
+
if (!self.pendingPromise) {
|
|
49
|
+
self.pendingPromise = self.newOperationHandler();
|
|
50
|
+
|
|
51
|
+
self.pendingPromise
|
|
52
|
+
.then(^id(id result) {
|
|
53
|
+
@synchronized(self) {
|
|
54
|
+
self.pendingPromise = nil;
|
|
55
|
+
return nil;
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
.catch(^void(NSError *error) {
|
|
59
|
+
@synchronized(self) {
|
|
60
|
+
self.pendingPromise = nil;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return self.pendingPromise;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
- (nullable FBLPromise *)getExistingPendingPromise {
|
|
70
|
+
@synchronized(self) {
|
|
71
|
+
return self.pendingPromise;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@end
|