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.
Files changed (515) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/Gemfile +5 -0
  4. data/Gemfile.lock +107 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +18 -0
  7. data/Rakefile +13 -0
  8. data/cocoapods-catalyst-validator.gemspec +23 -0
  9. data/examples/AExample/AExample/AExample.entitlements +10 -0
  10. data/examples/AExample/AExample/AppDelegate.h +14 -0
  11. data/examples/AExample/AExample/AppDelegate.m +40 -0
  12. data/examples/AExample/AExample/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  13. data/examples/AExample/AExample/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  14. data/examples/AExample/AExample/Assets.xcassets/Contents.json +6 -0
  15. data/examples/AExample/AExample/Base.lproj/LaunchScreen.storyboard +25 -0
  16. data/examples/AExample/AExample/Base.lproj/Main.storyboard +24 -0
  17. data/examples/AExample/AExample/Info.plist +25 -0
  18. data/examples/AExample/AExample/SceneDelegate.h +15 -0
  19. data/examples/AExample/AExample/SceneDelegate.m +57 -0
  20. data/examples/AExample/AExample/ViewController.h +14 -0
  21. data/examples/AExample/AExample/ViewController.m +22 -0
  22. data/examples/AExample/AExample/main.m +18 -0
  23. data/examples/AExample/AExample.xcodeproj/project.pbxproj +664 -0
  24. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  25. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  26. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. data/examples/AExample/AExample.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  28. data/examples/AExample/AExample.xcworkspace/contents.xcworkspacedata +10 -0
  29. data/examples/AExample/AExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  30. data/examples/AExample/AExample.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  31. data/examples/AExample/AExampleCP/AppDelegate.h +14 -0
  32. data/examples/AExample/AExampleCP/AppDelegate.m +40 -0
  33. data/examples/AExample/AExampleCP/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  34. data/examples/AExample/AExampleCP/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  35. data/examples/AExample/AExampleCP/Assets.xcassets/Contents.json +6 -0
  36. data/examples/AExample/AExampleCP/Base.lproj/LaunchScreen.storyboard +25 -0
  37. data/examples/AExample/AExampleCP/Base.lproj/Main.storyboard +24 -0
  38. data/examples/AExample/AExampleCP/Info.plist +25 -0
  39. data/examples/AExample/AExampleCP/SceneDelegate.h +15 -0
  40. data/examples/AExample/AExampleCP/SceneDelegate.m +57 -0
  41. data/examples/AExample/AExampleCP/ViewController.h +14 -0
  42. data/examples/AExample/AExampleCP/ViewController.m +22 -0
  43. data/examples/AExample/AExampleCP/main.m +18 -0
  44. data/examples/AExample/Podfile +24 -0
  45. data/examples/AExample/Podfile.lock +112 -0
  46. data/examples/AExample/Pods/Bugly/Bugly.framework/Bugly +0 -0
  47. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/Bugly.h +163 -0
  48. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h +149 -0
  49. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h +78 -0
  50. data/examples/AExample/Pods/Bugly/Bugly.framework/Modules/module.modulemap +12 -0
  51. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/Info.plist +97 -0
  52. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  53. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  54. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  55. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  56. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  57. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  58. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  59. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  60. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Info.plist +20 -0
  61. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  62. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  63. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  64. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  65. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  66. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  67. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  68. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  69. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  70. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
  71. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  72. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  73. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  74. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  75. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  76. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  77. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  78. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  79. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  80. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Info.plist +20 -0
  81. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  82. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  83. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  84. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  85. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  86. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  87. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  88. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  89. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  90. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Info.plist +20 -0
  91. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  92. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  93. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  94. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  95. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  96. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  97. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  98. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  99. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  100. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Info.plist +20 -0
  101. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
  102. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  103. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  104. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  105. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  106. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  107. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  108. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  109. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  110. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
  111. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
  112. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.h +56 -0
  113. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m +62 -0
  114. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m +856 -0
  115. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.h +49 -0
  116. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m +47 -0
  117. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h +53 -0
  118. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m +79 -0
  119. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m +65 -0
  120. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m +214 -0
  121. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainerInternal.h +49 -0
  122. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m +28 -0
  123. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m +46 -0
  124. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfigurationInternal.h +29 -0
  125. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m +61 -0
  126. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m +44 -0
  127. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.h +35 -0
  128. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m +66 -0
  129. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.h +36 -0
  130. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.m +107 -0
  131. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m +72 -0
  132. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m +174 -0
  133. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m +498 -0
  134. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m +32 -0
  135. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
  136. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
  137. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
  138. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
  139. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
  140. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
  141. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
  142. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
  143. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
  144. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
  145. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
  146. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h +127 -0
  147. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h +45 -0
  148. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h +38 -0
  149. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h +126 -0
  150. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h +25 -0
  151. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FirebaseCore.h +21 -0
  152. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
  153. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
  154. data/examples/AExample/Pods/FirebaseCore/LICENSE +202 -0
  155. data/examples/AExample/Pods/FirebaseCore/README.md +319 -0
  156. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m +551 -0
  157. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c +60 -0
  158. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h +193 -0
  159. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h +18 -0
  160. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
  161. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
  162. data/examples/AExample/Pods/FirebaseCoreDiagnostics/LICENSE +202 -0
  163. data/examples/AExample/Pods/FirebaseCoreDiagnostics/README.md +319 -0
  164. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
  165. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
  166. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
  167. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
  168. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
  169. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
  170. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
  171. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
  172. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
  173. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
  174. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
  175. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h +65 -0
  176. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m +145 -0
  177. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h +53 -0
  178. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m +79 -0
  179. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m +282 -0
  180. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m +30 -0
  181. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h +27 -0
  182. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h +93 -0
  183. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m +161 -0
  184. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h +52 -0
  185. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m +50 -0
  186. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h +48 -0
  187. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m +242 -0
  188. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h +36 -0
  189. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m +158 -0
  190. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h +62 -0
  191. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m +380 -0
  192. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h +53 -0
  193. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m +142 -0
  194. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.h +27 -0
  195. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.m +23 -0
  196. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h +54 -0
  197. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.m +132 -0
  198. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h +44 -0
  199. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m +531 -0
  200. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h +58 -0
  201. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m +75 -0
  202. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h +35 -0
  203. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h +71 -0
  204. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m +126 -0
  205. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h +58 -0
  206. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m +77 -0
  207. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h +51 -0
  208. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m +80 -0
  209. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h +19 -0
  210. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallations.h +127 -0
  211. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsAuthTokenResult.h +33 -0
  212. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsErrors.h +34 -0
  213. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h +19 -0
  214. data/examples/AExample/Pods/FirebaseInstallations/LICENSE +202 -0
  215. data/examples/AExample/Pods/FirebaseInstallations/README.md +319 -0
  216. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/Info.plist +97 -0
  217. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  218. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Info.plist +20 -0
  219. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  220. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  221. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
  222. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  223. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  224. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Info.plist +20 -0
  225. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  226. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  227. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Info.plist +20 -0
  228. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  229. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  230. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Info.plist +20 -0
  231. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  232. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  233. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
  234. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  235. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/Info.plist +97 -0
  236. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  237. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  238. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  239. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  240. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  241. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  242. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  243. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  244. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  245. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  246. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  247. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  248. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  249. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  250. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  251. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  252. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  253. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  254. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTCompressionHelper.m +95 -0
  255. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTNanopbHelpers.m +270 -0
  256. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m +573 -0
  257. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploader.m +210 -0
  258. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCOREvent+GDTCCTSupport.m +240 -0
  259. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h +40 -0
  260. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h +128 -0
  261. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploadOperation.h +76 -0
  262. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploader.h +45 -0
  263. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c +128 -0
  264. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h +281 -0
  265. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Public/GDTCOREvent+GDTCCTSupport.h +51 -0
  266. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m +36 -0
  267. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m +178 -0
  268. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m +55 -0
  269. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDirectorySizeTracker.m +101 -0
  270. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREndpoints.m +92 -0
  271. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m +153 -0
  272. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage+Promises.m +104 -0
  273. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage.m +826 -0
  274. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m +119 -0
  275. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m +604 -0
  276. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m +125 -0
  277. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m +157 -0
  278. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorageEventSelector.m +39 -0
  279. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m +111 -0
  280. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m +92 -0
  281. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadBatch.m +30 -0
  282. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m +176 -0
  283. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORAssert.h +95 -0
  284. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORDirectorySizeTracker.h +66 -0
  285. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORLifecycle.h +63 -0
  286. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORPlatform.h +225 -0
  287. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORReachability.h +31 -0
  288. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORRegistrar.h +50 -0
  289. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageEventSelector.h +61 -0
  290. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageProtocol.h +171 -0
  291. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORUploader.h +59 -0
  292. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREndpoints_Private.h +27 -0
  293. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h +33 -0
  294. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage+Promises.h +28 -0
  295. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage.h +158 -0
  296. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h +30 -0
  297. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h +35 -0
  298. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h +57 -0
  299. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h +37 -0
  300. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h +39 -0
  301. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadBatch.h +37 -0
  302. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h +68 -0
  303. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORClock.h +66 -0
  304. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORConsoleLogger.h +144 -0
  305. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREndpoints.h +36 -0
  306. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREvent.h +87 -0
  307. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventDataObject.h +36 -0
  308. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventTransformer.h +38 -0
  309. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTargets.h +40 -0
  310. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTransport.h +92 -0
  311. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GoogleDataTransport.h +24 -0
  312. data/examples/AExample/Pods/GoogleDataTransport/LICENSE +202 -0
  313. data/examples/AExample/Pods/GoogleDataTransport/README.md +231 -0
  314. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m +1070 -0
  315. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULSceneDelegateSwizzler.m +439 -0
  316. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h +55 -0
  317. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h +48 -0
  318. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h +107 -0
  319. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULApplication.h +50 -0
  320. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h +76 -0
  321. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h +56 -0
  322. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m +153 -0
  323. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorageUserDefaults.m +68 -0
  324. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m +103 -0
  325. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h +60 -0
  326. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorable.h +40 -0
  327. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorage.h +54 -0
  328. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorageUserDefaults.h +51 -0
  329. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h +79 -0
  330. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h +61 -0
  331. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULSecureCoding.h +36 -0
  332. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULURLSessionDataResponse.h +31 -0
  333. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/NSURLSession+GULPromises.h +37 -0
  334. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m +192 -0
  335. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m +113 -0
  336. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/GULURLSessionDataResponse.m +30 -0
  337. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/NSURLSession+GULPromises.m +46 -0
  338. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m +333 -0
  339. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m +215 -0
  340. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h +159 -0
  341. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h +37 -0
  342. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m +153 -0
  343. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULOriginalIMPConvenienceMacros.h +207 -0
  344. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULSwizzler.h +71 -0
  345. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m +207 -0
  346. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/Public/GoogleUtilities/GULNSData+zlib.h +49 -0
  347. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m +101 -0
  348. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m +390 -0
  349. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m +41 -0
  350. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkInternal.h +24 -0
  351. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m +766 -0
  352. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h +46 -0
  353. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetwork.h +87 -0
  354. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkConstants.h +71 -0
  355. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkLoggerProtocol.h +49 -0
  356. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkMessageCode.h +47 -0
  357. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkURLSession.h +62 -0
  358. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h +48 -0
  359. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m +263 -0
  360. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityMessageCode.h +29 -0
  361. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/Public/GoogleUtilities/GULReachabilityChecker.h +79 -0
  362. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m +213 -0
  363. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h +110 -0
  364. data/examples/AExample/Pods/GoogleUtilities/LICENSE +247 -0
  365. data/examples/AExample/Pods/GoogleUtilities/README.md +189 -0
  366. data/examples/AExample/Pods/Manifest.lock +112 -0
  367. data/examples/AExample/Pods/Pods.xcodeproj/project.pbxproj +3670 -0
  368. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseAnalytics.xcscheme +58 -0
  369. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCore.xcscheme +58 -0
  370. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCoreDiagnostics.xcscheme +58 -0
  371. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseInstallations.xcscheme +58 -0
  372. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleAppMeasurement.xcscheme +58 -0
  373. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleDataTransport.xcscheme +58 -0
  374. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleUtilities.xcscheme +58 -0
  375. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample-AExampleCP.xcscheme +58 -0
  376. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample.xcscheme +58 -0
  377. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/PromisesObjC.xcscheme +58 -0
  378. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/nanopb.xcscheme +58 -0
  379. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +66 -0
  380. data/examples/AExample/Pods/PromisesObjC/LICENSE +202 -0
  381. data/examples/AExample/Pods/PromisesObjC/README.md +60 -0
  382. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+All.m +86 -0
  383. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Always.m +58 -0
  384. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Any.m +112 -0
  385. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Async.m +70 -0
  386. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Await.m +48 -0
  387. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Catch.m +55 -0
  388. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Delay.m +59 -0
  389. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Do.m +59 -0
  390. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Race.m +65 -0
  391. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Recover.m +54 -0
  392. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Reduce.m +61 -0
  393. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Retry.m +128 -0
  394. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Testing.m +55 -0
  395. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Then.m +50 -0
  396. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Timeout.m +64 -0
  397. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Validate.m +56 -0
  398. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Wrap.m +420 -0
  399. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise.m +299 -0
  400. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromiseError.m +19 -0
  401. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+All.h +63 -0
  402. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Always.h +54 -0
  403. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Any.h +69 -0
  404. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Async.h +60 -0
  405. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Await.h +32 -0
  406. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Catch.h +59 -0
  407. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Delay.h +59 -0
  408. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Do.h +55 -0
  409. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Race.h +62 -0
  410. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Recover.h +60 -0
  411. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Reduce.h +71 -0
  412. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Retry.h +165 -0
  413. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Testing.h +57 -0
  414. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Then.h +63 -0
  415. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Timeout.h +57 -0
  416. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Validate.h +60 -0
  417. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h +316 -0
  418. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise.h +93 -0
  419. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromiseError.h +43 -0
  420. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromisePrivate.h +66 -0
  421. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromises.h +32 -0
  422. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-input-files.xcfilelist +2 -0
  423. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-output-files.xcfilelist +1 -0
  424. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh +109 -0
  425. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.debug.xcconfig +13 -0
  426. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.release.xcconfig +13 -0
  427. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist +26 -0
  428. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-dummy.m +5 -0
  429. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-umbrella.h +22 -0
  430. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig +16 -0
  431. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.modulemap +6 -0
  432. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig +16 -0
  433. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-Info.plist +26 -0
  434. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-dummy.m +5 -0
  435. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-umbrella.h +17 -0
  436. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.debug.xcconfig +17 -0
  437. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.modulemap +6 -0
  438. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.release.xcconfig +17 -0
  439. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist +26 -0
  440. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-dummy.m +5 -0
  441. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-umbrella.h +20 -0
  442. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.debug.xcconfig +15 -0
  443. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap +6 -0
  444. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.release.xcconfig +15 -0
  445. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-input-files.xcfilelist +3 -0
  446. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-output-files.xcfilelist +2 -0
  447. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh +110 -0
  448. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.debug.xcconfig +13 -0
  449. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.release.xcconfig +13 -0
  450. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-Info.plist +26 -0
  451. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-dummy.m +5 -0
  452. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-umbrella.h +25 -0
  453. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.debug.xcconfig +16 -0
  454. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.modulemap +6 -0
  455. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.release.xcconfig +16 -0
  456. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist +26 -0
  457. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-dummy.m +5 -0
  458. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-umbrella.h +41 -0
  459. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.debug.xcconfig +15 -0
  460. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.modulemap +6 -0
  461. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.release.xcconfig +15 -0
  462. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-Info.plist +26 -0
  463. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.markdown +1316 -0
  464. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.plist +1396 -0
  465. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-dummy.m +5 -0
  466. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-input-files.xcfilelist +8 -0
  467. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-output-files.xcfilelist +7 -0
  468. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-input-files.xcfilelist +8 -0
  469. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-output-files.xcfilelist +7 -0
  470. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks.sh +198 -0
  471. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-umbrella.h +16 -0
  472. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.debug.xcconfig +12 -0
  473. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.modulemap +6 -0
  474. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.release.xcconfig +12 -0
  475. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-Info.plist +26 -0
  476. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.markdown +1316 -0
  477. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.plist +1396 -0
  478. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-dummy.m +5 -0
  479. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-input-files.xcfilelist +8 -0
  480. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-output-files.xcfilelist +7 -0
  481. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-input-files.xcfilelist +8 -0
  482. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-output-files.xcfilelist +7 -0
  483. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks.sh +198 -0
  484. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-umbrella.h +16 -0
  485. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.debug.xcconfig +12 -0
  486. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.modulemap +6 -0
  487. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.release.xcconfig +12 -0
  488. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-Info.plist +26 -0
  489. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-dummy.m +5 -0
  490. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-umbrella.h +36 -0
  491. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.debug.xcconfig +12 -0
  492. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.modulemap +6 -0
  493. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.release.xcconfig +12 -0
  494. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-Info.plist +26 -0
  495. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-dummy.m +5 -0
  496. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-prefix.pch +12 -0
  497. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-umbrella.h +26 -0
  498. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.debug.xcconfig +11 -0
  499. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.modulemap +6 -0
  500. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.release.xcconfig +11 -0
  501. data/examples/AExample/Pods/nanopb/LICENSE.txt +20 -0
  502. data/examples/AExample/Pods/nanopb/README.md +71 -0
  503. data/examples/AExample/Pods/nanopb/pb.h +599 -0
  504. data/examples/AExample/Pods/nanopb/pb_common.c +97 -0
  505. data/examples/AExample/Pods/nanopb/pb_common.h +42 -0
  506. data/examples/AExample/Pods/nanopb/pb_decode.c +1564 -0
  507. data/examples/AExample/Pods/nanopb/pb_decode.h +178 -0
  508. data/examples/AExample/Pods/nanopb/pb_encode.c +913 -0
  509. data/examples/AExample/Pods/nanopb/pb_encode.h +170 -0
  510. data/lib/cocoapods-catalyst-validator/cocoapods-catalyst-validator.rb +110 -0
  511. data/lib/cocoapods-catalyst-validator/gem_version.rb +3 -0
  512. data/lib/cocoapods_plugin.rb +3 -0
  513. data/spec/command/validator_spec.rb +12 -0
  514. data/spec/spec_helper.rb +50 -0
  515. metadata +601 -0
@@ -0,0 +1,856 @@
1
+ // Copyright 2017 Google
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include <sys/utsname.h>
16
+
17
+ #if __has_include(<UIKit/UIKit.h>)
18
+ #import <UIKit/UIKit.h>
19
+ #endif
20
+
21
+ #if __has_include(<AppKit/AppKit.h>)
22
+ #import <AppKit/AppKit.h>
23
+ #endif
24
+
25
+ #import "FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h"
26
+
27
+ #import "FirebaseCore/Sources/FIRAnalyticsConfiguration.h"
28
+ #import "FirebaseCore/Sources/FIRBundleUtil.h"
29
+ #import "FirebaseCore/Sources/FIRComponentContainerInternal.h"
30
+ #import "FirebaseCore/Sources/FIRConfigurationInternal.h"
31
+ #import "FirebaseCore/Sources/FIRFirebaseUserAgent.h"
32
+
33
+ #import "FirebaseCore/Sources/Private/FIRAppInternal.h"
34
+ #import "FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h"
35
+ #import "FirebaseCore/Sources/Private/FIRLibrary.h"
36
+ #import "FirebaseCore/Sources/Private/FIRLogger.h"
37
+ #import "FirebaseCore/Sources/Private/FIROptionsInternal.h"
38
+ #import "FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h"
39
+
40
+ #import <GoogleUtilities/GULAppEnvironmentUtil.h>
41
+
42
+ #import <objc/runtime.h>
43
+
44
+ // The kFIRService strings are only here while transitioning CoreDiagnostics from the Analytics
45
+ // pod to a Core dependency. These symbols are not used and should be deleted after the transition.
46
+ NSString *const kFIRServiceAdMob;
47
+ NSString *const kFIRServiceAuth;
48
+ NSString *const kFIRServiceAuthUI;
49
+ NSString *const kFIRServiceCrash;
50
+ NSString *const kFIRServiceDatabase;
51
+ NSString *const kFIRServiceDynamicLinks;
52
+ NSString *const kFIRServiceFirestore;
53
+ NSString *const kFIRServiceFunctions;
54
+ NSString *const kFIRServiceInstanceID;
55
+ NSString *const kFIRServiceInvites;
56
+ NSString *const kFIRServiceMessaging;
57
+ NSString *const kFIRServiceMeasurement;
58
+ NSString *const kFIRServicePerformance;
59
+ NSString *const kFIRServiceRemoteConfig;
60
+ NSString *const kFIRServiceStorage;
61
+ NSString *const kGGLServiceAnalytics;
62
+ NSString *const kGGLServiceSignIn;
63
+
64
+ NSString *const kFIRDefaultAppName = @"__FIRAPP_DEFAULT";
65
+ NSString *const kFIRAppReadyToConfigureSDKNotification = @"FIRAppReadyToConfigureSDKNotification";
66
+ NSString *const kFIRAppDeleteNotification = @"FIRAppDeleteNotification";
67
+ NSString *const kFIRAppIsDefaultAppKey = @"FIRAppIsDefaultAppKey";
68
+ NSString *const kFIRAppNameKey = @"FIRAppNameKey";
69
+ NSString *const kFIRGoogleAppIDKey = @"FIRGoogleAppIDKey";
70
+
71
+ NSString *const kFIRGlobalAppDataCollectionEnabledDefaultsKeyFormat =
72
+ @"/google/firebase/global_data_collection_enabled:%@";
73
+ NSString *const kFIRGlobalAppDataCollectionEnabledPlistKey =
74
+ @"FirebaseDataCollectionDefaultEnabled";
75
+
76
+ NSString *const kFIRAppDiagnosticsConfigurationTypeKey = @"ConfigType";
77
+ NSString *const kFIRAppDiagnosticsErrorKey = @"Error";
78
+ NSString *const kFIRAppDiagnosticsFIRAppKey = @"FIRApp";
79
+ NSString *const kFIRAppDiagnosticsSDKNameKey = @"SDKName";
80
+ NSString *const kFIRAppDiagnosticsSDKVersionKey = @"SDKVersion";
81
+ NSString *const kFIRAppDiagnosticsApplePlatformPrefix = @"apple-platform";
82
+
83
+ // Auth internal notification notification and key.
84
+ NSString *const FIRAuthStateDidChangeInternalNotification =
85
+ @"FIRAuthStateDidChangeInternalNotification";
86
+ NSString *const FIRAuthStateDidChangeInternalNotificationAppKey =
87
+ @"FIRAuthStateDidChangeInternalNotificationAppKey";
88
+ NSString *const FIRAuthStateDidChangeInternalNotificationTokenKey =
89
+ @"FIRAuthStateDidChangeInternalNotificationTokenKey";
90
+ NSString *const FIRAuthStateDidChangeInternalNotificationUIDKey =
91
+ @"FIRAuthStateDidChangeInternalNotificationUIDKey";
92
+
93
+ /**
94
+ * Error domain for exceptions and NSError construction.
95
+ */
96
+ NSString *const kFirebaseCoreErrorDomain = @"com.firebase.core";
97
+
98
+ /** The NSUserDefaults suite name for FirebaseCore, for those storage locations that use it. */
99
+ NSString *const kFirebaseCoreDefaultsSuiteName = @"com.firebase.core";
100
+
101
+ /**
102
+ * The URL to download plist files.
103
+ */
104
+ static NSString *const kPlistURL = @"https://console.firebase.google.com/";
105
+
106
+ /**
107
+ * An array of all classes that registered as `FIRCoreConfigurable` in order to receive lifecycle
108
+ * events from Core.
109
+ */
110
+ static NSMutableArray<Class<FIRLibrary>> *sRegisteredAsConfigurable;
111
+
112
+ @interface FIRApp ()
113
+
114
+ #ifdef DEBUG
115
+ @property(nonatomic) BOOL alreadyOutputDataCollectionFlag;
116
+ #endif // DEBUG
117
+
118
+ @end
119
+
120
+ @implementation FIRApp
121
+
122
+ // This is necessary since our custom getter prevents `_options` from being created.
123
+ @synthesize options = _options;
124
+
125
+ static NSMutableDictionary *sAllApps;
126
+ static FIRApp *sDefaultApp;
127
+
128
+ + (void)configure {
129
+ FIROptions *options = [FIROptions defaultOptions];
130
+ if (!options) {
131
+ [NSException raise:kFirebaseCoreErrorDomain
132
+ format:@"`FirebaseApp.configure()` could not find "
133
+ @"a valid GoogleService-Info.plist in your project. Please download one "
134
+ @"from %@.",
135
+ kPlistURL];
136
+ }
137
+ [FIRApp configureWithOptions:options];
138
+ }
139
+
140
+ + (void)configureWithOptions:(FIROptions *)options {
141
+ if (!options) {
142
+ [NSException raise:kFirebaseCoreErrorDomain
143
+ format:@"Options is nil. Please pass a valid options."];
144
+ }
145
+ [FIRApp configureWithName:kFIRDefaultAppName options:options];
146
+ }
147
+
148
+ + (NSCharacterSet *)applicationNameAllowedCharacters {
149
+ static NSCharacterSet *applicationNameAllowedCharacters;
150
+ static dispatch_once_t onceToken;
151
+ dispatch_once(&onceToken, ^{
152
+ NSMutableCharacterSet *allowedNameCharacters = [NSMutableCharacterSet alphanumericCharacterSet];
153
+ [allowedNameCharacters addCharactersInString:@"-_"];
154
+ applicationNameAllowedCharacters = [allowedNameCharacters copy];
155
+ });
156
+ return applicationNameAllowedCharacters;
157
+ }
158
+
159
+ + (void)configureWithName:(NSString *)name options:(FIROptions *)options {
160
+ if (!name || !options) {
161
+ [NSException raise:kFirebaseCoreErrorDomain format:@"Neither name nor options can be nil."];
162
+ }
163
+ if (name.length == 0) {
164
+ [NSException raise:kFirebaseCoreErrorDomain format:@"Name cannot be empty."];
165
+ }
166
+
167
+ if ([name isEqualToString:kFIRDefaultAppName]) {
168
+ if (sDefaultApp) {
169
+ // The default app already exists. Handle duplicate `configure` calls and return.
170
+ [self appWasConfiguredTwice:sDefaultApp usingOptions:options];
171
+ return;
172
+ }
173
+
174
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000001", @"Configuring the default app.");
175
+ } else {
176
+ // Validate the app name and ensure it hasn't been configured already.
177
+ NSCharacterSet *nameCharacters = [NSCharacterSet characterSetWithCharactersInString:name];
178
+
179
+ if (![[self applicationNameAllowedCharacters] isSupersetOfSet:nameCharacters]) {
180
+ [NSException raise:kFirebaseCoreErrorDomain
181
+ format:@"App name can only contain alphanumeric, "
182
+ @"hyphen (-), and underscore (_) characters"];
183
+ }
184
+
185
+ @synchronized(self) {
186
+ if (sAllApps && sAllApps[name]) {
187
+ // The app already exists. Handle a duplicate `configure` call and return.
188
+ [self appWasConfiguredTwice:sAllApps[name] usingOptions:options];
189
+ return;
190
+ }
191
+ }
192
+
193
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000002", @"Configuring app named %@", name);
194
+ }
195
+
196
+ @synchronized(self) {
197
+ FIRApp *app = [[FIRApp alloc] initInstanceWithName:name options:options];
198
+ if (app.isDefaultApp) {
199
+ sDefaultApp = app;
200
+ }
201
+
202
+ [FIRApp addAppToAppDictionary:app];
203
+
204
+ // The FIRApp instance is ready to go, `sDefaultApp` is assigned, other SDKs are now ready to be
205
+ // instantiated.
206
+ [app.container instantiateEagerComponents];
207
+ [FIRApp sendNotificationsToSDKs:app];
208
+ }
209
+ }
210
+
211
+ /// Called when `configure` has been called multiple times for the same app. This can either throw
212
+ /// an exception (most cases) or ignore the duplicate configuration in situations where it's allowed
213
+ /// like an extension.
214
+ + (void)appWasConfiguredTwice:(FIRApp *)app usingOptions:(FIROptions *)options {
215
+ // Only extensions should potentially be able to call `configure` more than once.
216
+ if (![GULAppEnvironmentUtil isAppExtension]) {
217
+ // Throw an exception since this is now an invalid state.
218
+ if (app.isDefaultApp) {
219
+ [NSException raise:kFirebaseCoreErrorDomain
220
+ format:@"Default app has already been configured."];
221
+ } else {
222
+ [NSException raise:kFirebaseCoreErrorDomain
223
+ format:@"App named %@ has already been configured.", app.name];
224
+ }
225
+ }
226
+
227
+ // In an extension, the entry point could be called multiple times. As long as the options are
228
+ // identical we should allow multiple `configure` calls.
229
+ if ([options isEqual:app.options]) {
230
+ // Everything is identical but the extension's lifecycle triggered `configure` twice.
231
+ // Ignore duplicate calls and return since everything should still be in a valid state.
232
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000035",
233
+ @"Ignoring second `configure` call in an extension.");
234
+ return;
235
+ } else {
236
+ [NSException raise:kFirebaseCoreErrorDomain
237
+ format:@"App named %@ has already been configured.", app.name];
238
+ }
239
+ }
240
+
241
+ + (FIRApp *)defaultApp {
242
+ if (sDefaultApp) {
243
+ return sDefaultApp;
244
+ }
245
+ FIRLogError(kFIRLoggerCore, @"I-COR000003",
246
+ @"The default Firebase app has not yet been "
247
+ @"configured. Add `FirebaseApp.configure()` to your "
248
+ @"application initialization. This can be done in "
249
+ @"in the App Delegate's application(_:didFinishLaunchingWithOptions:)` "
250
+ @"(or the `@main` struct's initializer in SwiftUI). "
251
+ @"Read more: https://goo.gl/ctyzm8.");
252
+ return nil;
253
+ }
254
+
255
+ + (FIRApp *)appNamed:(NSString *)name {
256
+ @synchronized(self) {
257
+ if (sAllApps) {
258
+ FIRApp *app = sAllApps[name];
259
+ if (app) {
260
+ return app;
261
+ }
262
+ }
263
+ FIRLogError(kFIRLoggerCore, @"I-COR000004", @"App with name %@ does not exist.", name);
264
+ return nil;
265
+ }
266
+ }
267
+
268
+ + (NSDictionary *)allApps {
269
+ @synchronized(self) {
270
+ if (!sAllApps) {
271
+ FIRLogError(kFIRLoggerCore, @"I-COR000005", @"No app has been configured yet.");
272
+ }
273
+ return [sAllApps copy];
274
+ }
275
+ }
276
+
277
+ // Public only for tests
278
+ + (void)resetApps {
279
+ @synchronized(self) {
280
+ sDefaultApp = nil;
281
+ [sAllApps removeAllObjects];
282
+ sAllApps = nil;
283
+ [[self userAgent] reset];
284
+ }
285
+ }
286
+
287
+ - (void)deleteApp:(FIRAppVoidBoolCallback)completion {
288
+ @synchronized([self class]) {
289
+ if (sAllApps && sAllApps[self.name]) {
290
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000006", @"Deleting app named %@", self.name);
291
+
292
+ // Remove all registered libraries from the container to avoid creating new instances.
293
+ [self.container removeAllComponents];
294
+ // Remove all cached instances from the container before deleting the app.
295
+ [self.container removeAllCachedInstances];
296
+
297
+ [sAllApps removeObjectForKey:self.name];
298
+ [self clearDataCollectionSwitchFromUserDefaults];
299
+ if ([self.name isEqualToString:kFIRDefaultAppName]) {
300
+ sDefaultApp = nil;
301
+ }
302
+ NSDictionary *appInfoDict = @{kFIRAppNameKey : self.name};
303
+ [[NSNotificationCenter defaultCenter] postNotificationName:kFIRAppDeleteNotification
304
+ object:[self class]
305
+ userInfo:appInfoDict];
306
+ completion(YES);
307
+ } else {
308
+ FIRLogError(kFIRLoggerCore, @"I-COR000007", @"App does not exist.");
309
+ completion(NO);
310
+ }
311
+ }
312
+ }
313
+
314
+ + (void)addAppToAppDictionary:(FIRApp *)app {
315
+ if (!sAllApps) {
316
+ sAllApps = [NSMutableDictionary dictionary];
317
+ }
318
+ if ([app configureCore]) {
319
+ sAllApps[app.name] = app;
320
+ } else {
321
+ [NSException raise:kFirebaseCoreErrorDomain
322
+ format:@"Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in "
323
+ @"GoogleService-Info.plist or set in the customized options."];
324
+ }
325
+ }
326
+
327
+ - (instancetype)initInstanceWithName:(NSString *)name options:(FIROptions *)options {
328
+ self = [super init];
329
+ if (self) {
330
+ _name = [name copy];
331
+ _options = [options copy];
332
+ _options.editingLocked = YES;
333
+ _isDefaultApp = [name isEqualToString:kFIRDefaultAppName];
334
+ _container = [[FIRComponentContainer alloc] initWithApp:self];
335
+ }
336
+ return self;
337
+ }
338
+
339
+ - (void)dealloc {
340
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
341
+ }
342
+
343
+ - (BOOL)configureCore {
344
+ [self checkExpectedBundleID];
345
+ if (![self isAppIDValid]) {
346
+ return NO;
347
+ }
348
+
349
+ // Initialize the Analytics once there is a valid options under default app. Analytics should
350
+ // always initialize first by itself before the other SDKs.
351
+ if ([self.name isEqualToString:kFIRDefaultAppName]) {
352
+ Class firAnalyticsClass = NSClassFromString(@"FIRAnalytics");
353
+ if (firAnalyticsClass) {
354
+ #pragma clang diagnostic push
355
+ #pragma clang diagnostic ignored "-Wundeclared-selector"
356
+ SEL startWithConfigurationSelector = @selector(startWithConfiguration:options:);
357
+ #pragma clang diagnostic pop
358
+ if ([firAnalyticsClass respondsToSelector:startWithConfigurationSelector]) {
359
+ #pragma clang diagnostic push
360
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
361
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
362
+ [firAnalyticsClass performSelector:startWithConfigurationSelector
363
+ withObject:[FIRConfiguration sharedInstance].analyticsConfiguration
364
+ withObject:_options];
365
+ #pragma clang diagnostic pop
366
+ }
367
+ }
368
+ }
369
+
370
+ [self subscribeForAppDidBecomeActiveNotifications];
371
+
372
+ return YES;
373
+ }
374
+
375
+ - (FIROptions *)options {
376
+ return [_options copy];
377
+ }
378
+
379
+ - (void)setDataCollectionDefaultEnabled:(BOOL)dataCollectionDefaultEnabled {
380
+ #ifdef DEBUG
381
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000034", @"Explicitly %@ data collection flag.",
382
+ dataCollectionDefaultEnabled ? @"enabled" : @"disabled");
383
+ self.alreadyOutputDataCollectionFlag = YES;
384
+ #endif // DEBUG
385
+
386
+ NSString *key =
387
+ [NSString stringWithFormat:kFIRGlobalAppDataCollectionEnabledDefaultsKeyFormat, self.name];
388
+ [[NSUserDefaults standardUserDefaults] setBool:dataCollectionDefaultEnabled forKey:key];
389
+
390
+ // Core also controls the FirebaseAnalytics flag, so check if the Analytics flags are set
391
+ // within FIROptions and change the Analytics value if necessary. Analytics only works with the
392
+ // default app, so return if this isn't the default app.
393
+ if (!self.isDefaultApp) {
394
+ return;
395
+ }
396
+
397
+ // Check if the Analytics flag is explicitly set. If so, no further actions are necessary.
398
+ if ([self.options isAnalyticsCollectionExplicitlySet]) {
399
+ return;
400
+ }
401
+
402
+ // The Analytics flag has not been explicitly set, so update with the value being set.
403
+ #pragma clang diagnostic push
404
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
405
+ [[FIRAnalyticsConfiguration sharedInstance]
406
+ setAnalyticsCollectionEnabled:dataCollectionDefaultEnabled
407
+ persistSetting:NO];
408
+ #pragma clang diagnostic pop
409
+ }
410
+
411
+ - (BOOL)isDataCollectionDefaultEnabled {
412
+ // Check if it's been manually set before in code, and use that as the higher priority value.
413
+ NSNumber *defaultsObject = [[self class] readDataCollectionSwitchFromUserDefaultsForApp:self];
414
+ if (defaultsObject != nil) {
415
+ #ifdef DEBUG
416
+ if (!self.alreadyOutputDataCollectionFlag) {
417
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000031", @"Data Collection flag is %@ in user defaults.",
418
+ [defaultsObject boolValue] ? @"enabled" : @"disabled");
419
+ self.alreadyOutputDataCollectionFlag = YES;
420
+ }
421
+ #endif // DEBUG
422
+ return [defaultsObject boolValue];
423
+ }
424
+
425
+ // Read the Info.plist to see if the flag is set. If it's not set, it should default to `YES`.
426
+ // As per the implementation of `readDataCollectionSwitchFromPlist`, it's a cached value and has
427
+ // no performance impact calling multiple times.
428
+ NSNumber *collectionEnabledPlistValue = [[self class] readDataCollectionSwitchFromPlist];
429
+ if (collectionEnabledPlistValue != nil) {
430
+ #ifdef DEBUG
431
+ if (!self.alreadyOutputDataCollectionFlag) {
432
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000032", @"Data Collection flag is %@ in plist.",
433
+ [collectionEnabledPlistValue boolValue] ? @"enabled" : @"disabled");
434
+ self.alreadyOutputDataCollectionFlag = YES;
435
+ }
436
+ #endif // DEBUG
437
+ return [collectionEnabledPlistValue boolValue];
438
+ }
439
+
440
+ #ifdef DEBUG
441
+ if (!self.alreadyOutputDataCollectionFlag) {
442
+ FIRLogDebug(kFIRLoggerCore, @"I-COR000033", @"Data Collection flag is not set.");
443
+ self.alreadyOutputDataCollectionFlag = YES;
444
+ }
445
+ #endif // DEBUG
446
+ return YES;
447
+ }
448
+
449
+ #pragma mark - private
450
+
451
+ + (void)sendNotificationsToSDKs:(FIRApp *)app {
452
+ // TODO: Remove this notification once all SDKs are registered with `FIRCoreConfigurable`.
453
+ NSNumber *isDefaultApp = [NSNumber numberWithBool:app.isDefaultApp];
454
+ NSDictionary *appInfoDict = @{
455
+ kFIRAppNameKey : app.name,
456
+ kFIRAppIsDefaultAppKey : isDefaultApp,
457
+ kFIRGoogleAppIDKey : app.options.googleAppID
458
+ };
459
+ [[NSNotificationCenter defaultCenter] postNotificationName:kFIRAppReadyToConfigureSDKNotification
460
+ object:self
461
+ userInfo:appInfoDict];
462
+
463
+ // This is the new way of sending information to SDKs.
464
+ // TODO: Do we want this on a background thread, maybe?
465
+ @synchronized(self) {
466
+ for (Class<FIRLibrary> library in sRegisteredAsConfigurable) {
467
+ [library configureWithApp:app];
468
+ }
469
+ }
470
+ }
471
+
472
+ + (NSError *)errorForMissingOptions {
473
+ NSDictionary *errorDict = @{
474
+ NSLocalizedDescriptionKey :
475
+ @"Unable to parse GoogleService-Info.plist in order to configure services.",
476
+ NSLocalizedRecoverySuggestionErrorKey :
477
+ @"Check formatting and location of GoogleService-Info.plist."
478
+ };
479
+ return [NSError errorWithDomain:kFirebaseCoreErrorDomain code:-100 userInfo:errorDict];
480
+ }
481
+
482
+ + (NSError *)errorForInvalidAppID {
483
+ NSDictionary *errorDict = @{
484
+ NSLocalizedDescriptionKey : @"Unable to validate Google App ID",
485
+ NSLocalizedRecoverySuggestionErrorKey :
486
+ @"Check formatting and location of GoogleService-Info.plist or GoogleAppID set in the "
487
+ @"customized options."
488
+ };
489
+ return [NSError errorWithDomain:kFirebaseCoreErrorDomain code:-101 userInfo:errorDict];
490
+ }
491
+
492
+ + (BOOL)isDefaultAppConfigured {
493
+ return (sDefaultApp != nil);
494
+ }
495
+
496
+ + (void)registerLibrary:(nonnull NSString *)name withVersion:(nonnull NSString *)version {
497
+ // Create the set of characters which aren't allowed, only if this feature is used.
498
+ NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet alphanumericCharacterSet];
499
+ [allowedSet addCharactersInString:@"-_."];
500
+ NSCharacterSet *disallowedSet = [allowedSet invertedSet];
501
+ // Make sure the library name and version strings do not contain unexpected characters, and
502
+ // add the name/version pair to the dictionary.
503
+ if ([name rangeOfCharacterFromSet:disallowedSet].location == NSNotFound &&
504
+ [version rangeOfCharacterFromSet:disallowedSet].location == NSNotFound) {
505
+ [[self userAgent] setValue:version forComponent:name];
506
+ } else {
507
+ FIRLogError(kFIRLoggerCore, @"I-COR000027",
508
+ @"The library name (%@) or version number (%@) contain invalid characters. "
509
+ @"Only alphanumeric, dash, underscore and period characters are allowed.",
510
+ name, version);
511
+ }
512
+ }
513
+
514
+ + (void)registerInternalLibrary:(nonnull Class<FIRLibrary>)library
515
+ withName:(nonnull NSString *)name {
516
+ [self registerInternalLibrary:library withName:name withVersion:FIRFirebaseVersion()];
517
+ }
518
+
519
+ + (void)registerInternalLibrary:(nonnull Class<FIRLibrary>)library
520
+ withName:(nonnull NSString *)name
521
+ withVersion:(nonnull NSString *)version {
522
+ // This is called at +load time, keep the work to a minimum.
523
+
524
+ // Ensure the class given conforms to the proper protocol.
525
+ if (![(Class)library conformsToProtocol:@protocol(FIRLibrary)] ||
526
+ ![(Class)library respondsToSelector:@selector(componentsToRegister)]) {
527
+ [NSException raise:NSInvalidArgumentException
528
+ format:@"Class %@ attempted to register components, but it does not conform to "
529
+ @"`FIRLibrary or provide a `componentsToRegister:` method.",
530
+ library];
531
+ }
532
+
533
+ [FIRComponentContainer registerAsComponentRegistrant:library];
534
+ if ([(Class)library respondsToSelector:@selector(configureWithApp:)]) {
535
+ static dispatch_once_t onceToken;
536
+ dispatch_once(&onceToken, ^{
537
+ sRegisteredAsConfigurable = [[NSMutableArray alloc] init];
538
+ });
539
+ @synchronized(self) {
540
+ [sRegisteredAsConfigurable addObject:library];
541
+ }
542
+ }
543
+ [self registerLibrary:name withVersion:version];
544
+ }
545
+
546
+ + (FIRFirebaseUserAgent *)userAgent {
547
+ static dispatch_once_t onceToken;
548
+ static FIRFirebaseUserAgent *_userAgent;
549
+ dispatch_once(&onceToken, ^{
550
+ _userAgent = [[FIRFirebaseUserAgent alloc] init];
551
+ [_userAgent setValue:FIRFirebaseVersion() forComponent:@"fire-ios"];
552
+ });
553
+ return _userAgent;
554
+ }
555
+
556
+ + (NSString *)firebaseUserAgent {
557
+ return [[self userAgent] firebaseUserAgent];
558
+ }
559
+
560
+ - (void)checkExpectedBundleID {
561
+ NSArray *bundles = [FIRBundleUtil relevantBundles];
562
+ NSString *expectedBundleID = [self expectedBundleID];
563
+ // The checking is only done when the bundle ID is provided in the serviceInfo dictionary for
564
+ // backward compatibility.
565
+ if (expectedBundleID != nil && ![FIRBundleUtil hasBundleIdentifierPrefix:expectedBundleID
566
+ inBundles:bundles]) {
567
+ FIRLogError(kFIRLoggerCore, @"I-COR000008",
568
+ @"The project's Bundle ID is inconsistent with "
569
+ @"either the Bundle ID in '%@.%@', or the Bundle ID in the options if you are "
570
+ @"using a customized options. To ensure that everything can be configured "
571
+ @"correctly, you may need to make the Bundle IDs consistent. To continue with this "
572
+ @"plist file, you may change your app's bundle identifier to '%@'. Or you can "
573
+ @"download a new configuration file that matches your bundle identifier from %@ "
574
+ @"and replace the current one.",
575
+ kServiceInfoFileName, kServiceInfoFileType, expectedBundleID, kPlistURL);
576
+ }
577
+ }
578
+
579
+ #pragma mark - private - App ID Validation
580
+
581
+ /**
582
+ * Validates the format and fingerprint of the app ID contained in GOOGLE_APP_ID in the plist file.
583
+ * This is the main method for validating app ID.
584
+ *
585
+ * @return YES if the app ID fulfills the expected format and fingerprint, NO otherwise.
586
+ */
587
+ - (BOOL)isAppIDValid {
588
+ NSString *appID = _options.googleAppID;
589
+ BOOL isValid = [FIRApp validateAppID:appID];
590
+ if (!isValid) {
591
+ NSString *expectedBundleID = [self expectedBundleID];
592
+ FIRLogError(kFIRLoggerCore, @"I-COR000009",
593
+ @"The GOOGLE_APP_ID either in the plist file "
594
+ @"'%@.%@' or the one set in the customized options is invalid. If you are using "
595
+ @"the plist file, use the iOS version of bundle identifier to download the file, "
596
+ @"and do not manually edit the GOOGLE_APP_ID. You may change your app's bundle "
597
+ @"identifier to '%@'. Or you can download a new configuration file that matches "
598
+ @"your bundle identifier from %@ and replace the current one.",
599
+ kServiceInfoFileName, kServiceInfoFileType, expectedBundleID, kPlistURL);
600
+ };
601
+ return isValid;
602
+ }
603
+
604
+ + (BOOL)validateAppID:(NSString *)appID {
605
+ // Failing validation only occurs when we are sure we are looking at a V2 app ID and it does not
606
+ // have a valid fingerprint, otherwise we just warn about the potential issue.
607
+ if (!appID.length) {
608
+ return NO;
609
+ }
610
+
611
+ NSScanner *stringScanner = [NSScanner scannerWithString:appID];
612
+ stringScanner.charactersToBeSkipped = nil;
613
+
614
+ NSString *appIDVersion;
615
+ if (![stringScanner scanCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet]
616
+ intoString:&appIDVersion]) {
617
+ return NO;
618
+ }
619
+
620
+ if (![stringScanner scanString:@":" intoString:NULL]) {
621
+ // appIDVersion must be separated by ":"
622
+ return NO;
623
+ }
624
+
625
+ NSArray *knownVersions = @[ @"1" ];
626
+ if (![knownVersions containsObject:appIDVersion]) {
627
+ // Permit unknown yet properly formatted app ID versions.
628
+ FIRLogInfo(kFIRLoggerCore, @"I-COR000010", @"Unknown GOOGLE_APP_ID version: %@", appIDVersion);
629
+ return YES;
630
+ }
631
+
632
+ if (![self validateAppIDFormat:appID withVersion:appIDVersion]) {
633
+ return NO;
634
+ }
635
+
636
+ if (![self validateAppIDFingerprint:appID withVersion:appIDVersion]) {
637
+ return NO;
638
+ }
639
+
640
+ return YES;
641
+ }
642
+
643
+ + (NSString *)actualBundleID {
644
+ return [[NSBundle mainBundle] bundleIdentifier];
645
+ }
646
+
647
+ /**
648
+ * Validates that the format of the app ID string is what is expected based on the supplied version.
649
+ * The version must end in ":".
650
+ *
651
+ * For v1 app ids the format is expected to be
652
+ * '<version #>:<project number>:ios:<fingerprint of bundle id>'.
653
+ *
654
+ * This method does not verify that the contents of the app id are correct, just that they fulfill
655
+ * the expected format.
656
+ *
657
+ * @param appID Contents of GOOGLE_APP_ID from the plist file.
658
+ * @param version Indicates what version of the app id format this string should be.
659
+ * @return YES if provided string fufills the expected format, NO otherwise.
660
+ */
661
+ + (BOOL)validateAppIDFormat:(NSString *)appID withVersion:(NSString *)version {
662
+ if (!appID.length || !version.length) {
663
+ return NO;
664
+ }
665
+
666
+ NSScanner *stringScanner = [NSScanner scannerWithString:appID];
667
+ stringScanner.charactersToBeSkipped = nil;
668
+
669
+ // Skip version part
670
+ // '*<version #>*:<project number>:ios:<fingerprint of bundle id>'
671
+ if (![stringScanner scanString:version intoString:NULL]) {
672
+ // The version part is missing or mismatched
673
+ return NO;
674
+ }
675
+
676
+ // Validate version part (see part between '*' symbols below)
677
+ // '<version #>*:*<project number>:ios:<fingerprint of bundle id>'
678
+ if (![stringScanner scanString:@":" intoString:NULL]) {
679
+ // appIDVersion must be separated by ":"
680
+ return NO;
681
+ }
682
+
683
+ // Validate version part (see part between '*' symbols below)
684
+ // '<version #>:*<project number>*:ios:<fingerprint of bundle id>'.
685
+ NSInteger projectNumber = NSNotFound;
686
+ if (![stringScanner scanInteger:&projectNumber]) {
687
+ // NO project number found.
688
+ return NO;
689
+ }
690
+
691
+ // Validate version part (see part between '*' symbols below)
692
+ // '<version #>:<project number>*:*ios:<fingerprint of bundle id>'.
693
+ if (![stringScanner scanString:@":" intoString:NULL]) {
694
+ // The project number must be separated by ":"
695
+ return NO;
696
+ }
697
+
698
+ // Validate version part (see part between '*' symbols below)
699
+ // '<version #>:<project number>:*ios*:<fingerprint of bundle id>'.
700
+ NSString *platform;
701
+ if (![stringScanner scanUpToString:@":" intoString:&platform]) {
702
+ return NO;
703
+ }
704
+
705
+ if (![platform isEqualToString:@"ios"]) {
706
+ // The platform must be @"ios"
707
+ return NO;
708
+ }
709
+
710
+ // Validate version part (see part between '*' symbols below)
711
+ // '<version #>:<project number>:ios*:*<fingerprint of bundle id>'.
712
+ if (![stringScanner scanString:@":" intoString:NULL]) {
713
+ // The platform must be separated by ":"
714
+ return NO;
715
+ }
716
+
717
+ // Validate version part (see part between '*' symbols below)
718
+ // '<version #>:<project number>:ios:*<fingerprint of bundle id>*'.
719
+ unsigned long long fingerprint = NSNotFound;
720
+ if (![stringScanner scanHexLongLong:&fingerprint]) {
721
+ // Fingerprint part is missing
722
+ return NO;
723
+ }
724
+
725
+ if (!stringScanner.isAtEnd) {
726
+ // There are not allowed characters in the fingerprint part
727
+ return NO;
728
+ }
729
+
730
+ return YES;
731
+ }
732
+
733
+ /**
734
+ * Validates that the fingerprint of the app ID string is what is expected based on the supplied
735
+ * version.
736
+ *
737
+ * Note that the v1 hash algorithm is not permitted on the client and cannot be fully validated.
738
+ *
739
+ * @param appID Contents of GOOGLE_APP_ID from the plist file.
740
+ * @param version Indicates what version of the app id format this string should be.
741
+ * @return YES if provided string fufills the expected fingerprint and the version is known, NO
742
+ * otherwise.
743
+ */
744
+ + (BOOL)validateAppIDFingerprint:(NSString *)appID withVersion:(NSString *)version {
745
+ // Extract the supplied fingerprint from the supplied app ID.
746
+ // This assumes the app ID format is the same for all known versions below. If the app ID format
747
+ // changes in future versions, the tokenizing of the app ID format will need to take into account
748
+ // the version of the app ID.
749
+ NSArray *components = [appID componentsSeparatedByString:@":"];
750
+ if (components.count != 4) {
751
+ return NO;
752
+ }
753
+
754
+ NSString *suppliedFingerprintString = components[3];
755
+ if (!suppliedFingerprintString.length) {
756
+ return NO;
757
+ }
758
+
759
+ uint64_t suppliedFingerprint;
760
+ NSScanner *scanner = [NSScanner scannerWithString:suppliedFingerprintString];
761
+ if (![scanner scanHexLongLong:&suppliedFingerprint]) {
762
+ return NO;
763
+ }
764
+
765
+ if ([version isEqual:@"1"]) {
766
+ // The v1 hash algorithm is not permitted on the client so the actual hash cannot be validated.
767
+ return YES;
768
+ }
769
+
770
+ // Unknown version.
771
+ return NO;
772
+ }
773
+
774
+ - (NSString *)expectedBundleID {
775
+ return _options.bundleID;
776
+ }
777
+
778
+ // end App ID validation
779
+
780
+ #pragma mark - Reading From Plist & User Defaults
781
+
782
+ /**
783
+ * Clears the data collection switch from the standard NSUserDefaults for easier testing and
784
+ * readability.
785
+ */
786
+ - (void)clearDataCollectionSwitchFromUserDefaults {
787
+ NSString *key =
788
+ [NSString stringWithFormat:kFIRGlobalAppDataCollectionEnabledDefaultsKeyFormat, self.name];
789
+ [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
790
+ }
791
+
792
+ /**
793
+ * Reads the data collection switch from the standard NSUserDefaults for easier testing and
794
+ * readability.
795
+ */
796
+ + (nullable NSNumber *)readDataCollectionSwitchFromUserDefaultsForApp:(FIRApp *)app {
797
+ // Read the object in user defaults, and only return if it's an NSNumber.
798
+ NSString *key =
799
+ [NSString stringWithFormat:kFIRGlobalAppDataCollectionEnabledDefaultsKeyFormat, app.name];
800
+ id collectionEnabledDefaultsObject = [[NSUserDefaults standardUserDefaults] objectForKey:key];
801
+ if ([collectionEnabledDefaultsObject isKindOfClass:[NSNumber class]]) {
802
+ return collectionEnabledDefaultsObject;
803
+ }
804
+
805
+ return nil;
806
+ }
807
+
808
+ /**
809
+ * Reads the data collection switch from the Info.plist for easier testing and readability. Will
810
+ * only read once from the plist and return the cached value.
811
+ */
812
+ + (nullable NSNumber *)readDataCollectionSwitchFromPlist {
813
+ static NSNumber *collectionEnabledPlistObject;
814
+ static dispatch_once_t onceToken;
815
+ dispatch_once(&onceToken, ^{
816
+ // Read the data from the `Info.plist`, only assign it if it's there and an NSNumber.
817
+ id plistValue = [[NSBundle mainBundle]
818
+ objectForInfoDictionaryKey:kFIRGlobalAppDataCollectionEnabledPlistKey];
819
+ if (plistValue && [plistValue isKindOfClass:[NSNumber class]]) {
820
+ collectionEnabledPlistObject = (NSNumber *)plistValue;
821
+ }
822
+ });
823
+
824
+ return collectionEnabledPlistObject;
825
+ }
826
+
827
+ #pragma mark - App Life Cycle
828
+
829
+ - (void)subscribeForAppDidBecomeActiveNotifications {
830
+ #if TARGET_OS_IOS || TARGET_OS_TV
831
+ NSNotificationName notificationName = UIApplicationDidBecomeActiveNotification;
832
+ #elif TARGET_OS_OSX
833
+ NSNotificationName notificationName = NSApplicationDidBecomeActiveNotification;
834
+ #endif
835
+
836
+ #if !TARGET_OS_WATCH
837
+ [[NSNotificationCenter defaultCenter] addObserver:self
838
+ selector:@selector(appDidBecomeActive:)
839
+ name:notificationName
840
+ object:nil];
841
+ #endif
842
+ }
843
+
844
+ - (void)appDidBecomeActive:(NSNotification *)notification {
845
+ [self logCoreTelemetryIfEnabled];
846
+ }
847
+
848
+ - (void)logCoreTelemetryIfEnabled {
849
+ if ([self isDataCollectionDefaultEnabled]) {
850
+ dispatch_async(dispatch_get_global_queue(QOS_CLASS_UTILITY, 0), ^{
851
+ [FIRCoreDiagnosticsConnector logCoreTelemetryWithOptions:[self options]];
852
+ });
853
+ }
854
+ }
855
+
856
+ @end