cocoapods-catalyst-validator 0.1.0.beta.1 → 0.1.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cocoapods-catalyst-validator/gem_version.rb +1 -1
  3. metadata +2 -514
  4. data/.gitignore +0 -3
  5. data/Gemfile +0 -5
  6. data/Gemfile.lock +0 -107
  7. data/LICENSE.txt +0 -22
  8. data/README.md +0 -18
  9. data/Rakefile +0 -13
  10. data/cocoapods-catalyst-validator.gemspec +0 -23
  11. data/examples/AExample/AExample/AExample.entitlements +0 -10
  12. data/examples/AExample/AExample/AppDelegate.h +0 -14
  13. data/examples/AExample/AExample/AppDelegate.m +0 -40
  14. data/examples/AExample/AExample/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  15. data/examples/AExample/AExample/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
  16. data/examples/AExample/AExample/Assets.xcassets/Contents.json +0 -6
  17. data/examples/AExample/AExample/Base.lproj/LaunchScreen.storyboard +0 -25
  18. data/examples/AExample/AExample/Base.lproj/Main.storyboard +0 -24
  19. data/examples/AExample/AExample/Info.plist +0 -25
  20. data/examples/AExample/AExample/SceneDelegate.h +0 -15
  21. data/examples/AExample/AExample/SceneDelegate.m +0 -57
  22. data/examples/AExample/AExample/ViewController.h +0 -14
  23. data/examples/AExample/AExample/ViewController.m +0 -22
  24. data/examples/AExample/AExample/main.m +0 -18
  25. data/examples/AExample/AExample.xcodeproj/project.pbxproj +0 -664
  26. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  27. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  28. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  29. data/examples/AExample/AExample.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
  30. data/examples/AExample/AExample.xcworkspace/contents.xcworkspacedata +0 -10
  31. data/examples/AExample/AExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  32. data/examples/AExample/AExample.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  33. data/examples/AExample/AExampleCP/AppDelegate.h +0 -14
  34. data/examples/AExample/AExampleCP/AppDelegate.m +0 -40
  35. data/examples/AExample/AExampleCP/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  36. data/examples/AExample/AExampleCP/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
  37. data/examples/AExample/AExampleCP/Assets.xcassets/Contents.json +0 -6
  38. data/examples/AExample/AExampleCP/Base.lproj/LaunchScreen.storyboard +0 -25
  39. data/examples/AExample/AExampleCP/Base.lproj/Main.storyboard +0 -24
  40. data/examples/AExample/AExampleCP/Info.plist +0 -25
  41. data/examples/AExample/AExampleCP/SceneDelegate.h +0 -15
  42. data/examples/AExample/AExampleCP/SceneDelegate.m +0 -57
  43. data/examples/AExample/AExampleCP/ViewController.h +0 -14
  44. data/examples/AExample/AExampleCP/ViewController.m +0 -22
  45. data/examples/AExample/AExampleCP/main.m +0 -18
  46. data/examples/AExample/Podfile +0 -24
  47. data/examples/AExample/Podfile.lock +0 -112
  48. data/examples/AExample/Pods/Bugly/Bugly.framework/Bugly +0 -0
  49. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/Bugly.h +0 -163
  50. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h +0 -149
  51. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h +0 -78
  52. data/examples/AExample/Pods/Bugly/Bugly.framework/Modules/module.modulemap +0 -12
  53. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/Info.plist +0 -97
  54. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  55. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  56. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  57. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  58. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  59. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  60. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  61. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  62. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Info.plist +0 -20
  63. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Modules/module.modulemap +0 -13
  64. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  65. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  66. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  67. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  68. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  69. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  70. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  71. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  72. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +0 -20
  73. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +0 -13
  74. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  75. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  76. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  77. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  78. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  79. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  80. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  81. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  82. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Info.plist +0 -20
  83. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Modules/module.modulemap +0 -13
  84. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  85. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  86. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  87. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  88. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  89. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  90. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  91. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  92. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Info.plist +0 -20
  93. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Modules/module.modulemap +0 -13
  94. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  95. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  96. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  97. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  98. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  99. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  100. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  101. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  102. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Info.plist +0 -20
  103. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Modules/module.modulemap +0 -12
  104. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  105. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  106. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +0 -33
  107. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -142
  108. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -495
  109. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -731
  110. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -29
  111. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -6
  112. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +0 -20
  113. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +0 -12
  114. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.h +0 -56
  115. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m +0 -62
  116. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m +0 -856
  117. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.h +0 -49
  118. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m +0 -47
  119. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h +0 -53
  120. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m +0 -79
  121. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m +0 -65
  122. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m +0 -214
  123. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainerInternal.h +0 -49
  124. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m +0 -28
  125. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m +0 -46
  126. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfigurationInternal.h +0 -29
  127. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m +0 -61
  128. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m +0 -44
  129. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.h +0 -35
  130. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m +0 -66
  131. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.h +0 -36
  132. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.m +0 -107
  133. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m +0 -72
  134. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m +0 -174
  135. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m +0 -498
  136. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m +0 -32
  137. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h +0 -153
  138. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h +0 -91
  139. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h +0 -41
  140. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h +0 -34
  141. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +0 -35
  142. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h +0 -45
  143. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +0 -39
  144. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h +0 -44
  145. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h +0 -146
  146. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h +0 -115
  147. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +0 -28
  148. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h +0 -127
  149. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h +0 -45
  150. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h +0 -38
  151. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h +0 -126
  152. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h +0 -25
  153. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FirebaseCore.h +0 -21
  154. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +0 -61
  155. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +0 -34
  156. data/examples/AExample/Pods/FirebaseCore/LICENSE +0 -202
  157. data/examples/AExample/Pods/FirebaseCore/README.md +0 -319
  158. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m +0 -551
  159. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c +0 -60
  160. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h +0 -193
  161. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h +0 -18
  162. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +0 -61
  163. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +0 -34
  164. data/examples/AExample/Pods/FirebaseCoreDiagnostics/LICENSE +0 -202
  165. data/examples/AExample/Pods/FirebaseCoreDiagnostics/README.md +0 -319
  166. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRAppInternal.h +0 -153
  167. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponent.h +0 -91
  168. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentContainer.h +0 -41
  169. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentType.h +0 -34
  170. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +0 -35
  171. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRDependency.h +0 -45
  172. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +0 -39
  173. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLibrary.h +0 -44
  174. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLogger.h +0 -146
  175. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIROptionsInternal.h +0 -115
  176. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +0 -28
  177. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h +0 -65
  178. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m +0 -145
  179. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h +0 -53
  180. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m +0 -79
  181. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m +0 -282
  182. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m +0 -30
  183. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h +0 -27
  184. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h +0 -93
  185. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m +0 -161
  186. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h +0 -52
  187. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m +0 -50
  188. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h +0 -48
  189. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m +0 -242
  190. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h +0 -36
  191. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m +0 -158
  192. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h +0 -62
  193. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m +0 -380
  194. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h +0 -53
  195. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m +0 -142
  196. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.h +0 -27
  197. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.m +0 -23
  198. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h +0 -54
  199. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.m +0 -132
  200. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h +0 -44
  201. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m +0 -531
  202. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h +0 -58
  203. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m +0 -75
  204. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h +0 -35
  205. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h +0 -71
  206. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m +0 -126
  207. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h +0 -58
  208. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m +0 -77
  209. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h +0 -51
  210. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m +0 -80
  211. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h +0 -19
  212. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallations.h +0 -127
  213. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsAuthTokenResult.h +0 -33
  214. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsErrors.h +0 -34
  215. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h +0 -19
  216. data/examples/AExample/Pods/FirebaseInstallations/LICENSE +0 -202
  217. data/examples/AExample/Pods/FirebaseInstallations/README.md +0 -319
  218. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/Info.plist +0 -97
  219. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  220. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Info.plist +0 -20
  221. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  222. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  223. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +0 -20
  224. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  225. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  226. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Info.plist +0 -20
  227. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  228. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  229. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Info.plist +0 -20
  230. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  231. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  232. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Info.plist +0 -20
  233. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  234. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  235. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +0 -20
  236. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +0 -10
  237. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/Info.plist +0 -97
  238. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  239. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  240. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  241. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  242. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  243. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  244. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  245. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  246. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  247. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  248. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  249. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  250. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  251. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  252. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  253. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  254. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +0 -20
  255. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +0 -5
  256. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTCompressionHelper.m +0 -95
  257. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTNanopbHelpers.m +0 -270
  258. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m +0 -573
  259. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploader.m +0 -210
  260. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCOREvent+GDTCCTSupport.m +0 -240
  261. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h +0 -40
  262. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h +0 -128
  263. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploadOperation.h +0 -76
  264. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploader.h +0 -45
  265. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c +0 -128
  266. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h +0 -281
  267. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Public/GDTCOREvent+GDTCCTSupport.h +0 -51
  268. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m +0 -36
  269. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m +0 -178
  270. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m +0 -55
  271. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDirectorySizeTracker.m +0 -101
  272. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREndpoints.m +0 -92
  273. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m +0 -153
  274. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage+Promises.m +0 -104
  275. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage.m +0 -826
  276. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m +0 -119
  277. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m +0 -604
  278. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m +0 -125
  279. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m +0 -157
  280. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorageEventSelector.m +0 -39
  281. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m +0 -111
  282. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m +0 -92
  283. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadBatch.m +0 -30
  284. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m +0 -176
  285. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORAssert.h +0 -95
  286. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORDirectorySizeTracker.h +0 -66
  287. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORLifecycle.h +0 -63
  288. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORPlatform.h +0 -225
  289. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORReachability.h +0 -31
  290. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORRegistrar.h +0 -50
  291. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageEventSelector.h +0 -61
  292. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageProtocol.h +0 -171
  293. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORUploader.h +0 -59
  294. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREndpoints_Private.h +0 -27
  295. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h +0 -33
  296. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage+Promises.h +0 -28
  297. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage.h +0 -158
  298. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h +0 -30
  299. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h +0 -35
  300. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h +0 -57
  301. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h +0 -37
  302. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h +0 -39
  303. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadBatch.h +0 -37
  304. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h +0 -68
  305. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORClock.h +0 -66
  306. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORConsoleLogger.h +0 -144
  307. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREndpoints.h +0 -36
  308. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREvent.h +0 -87
  309. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventDataObject.h +0 -36
  310. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventTransformer.h +0 -38
  311. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTargets.h +0 -40
  312. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTransport.h +0 -92
  313. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GoogleDataTransport.h +0 -24
  314. data/examples/AExample/Pods/GoogleDataTransport/LICENSE +0 -202
  315. data/examples/AExample/Pods/GoogleDataTransport/README.md +0 -231
  316. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m +0 -1070
  317. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULSceneDelegateSwizzler.m +0 -439
  318. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h +0 -55
  319. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h +0 -48
  320. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h +0 -107
  321. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULApplication.h +0 -50
  322. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h +0 -76
  323. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h +0 -56
  324. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m +0 -153
  325. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorageUserDefaults.m +0 -68
  326. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m +0 -103
  327. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h +0 -60
  328. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorable.h +0 -40
  329. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorage.h +0 -54
  330. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorageUserDefaults.h +0 -51
  331. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h +0 -79
  332. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h +0 -61
  333. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULSecureCoding.h +0 -36
  334. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULURLSessionDataResponse.h +0 -31
  335. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/NSURLSession+GULPromises.h +0 -37
  336. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m +0 -192
  337. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m +0 -113
  338. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/GULURLSessionDataResponse.m +0 -30
  339. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/NSURLSession+GULPromises.m +0 -46
  340. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m +0 -333
  341. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m +0 -215
  342. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h +0 -159
  343. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h +0 -37
  344. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m +0 -153
  345. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULOriginalIMPConvenienceMacros.h +0 -207
  346. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULSwizzler.h +0 -71
  347. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m +0 -207
  348. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/Public/GoogleUtilities/GULNSData+zlib.h +0 -49
  349. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m +0 -101
  350. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m +0 -390
  351. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m +0 -41
  352. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkInternal.h +0 -24
  353. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m +0 -766
  354. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h +0 -46
  355. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetwork.h +0 -87
  356. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkConstants.h +0 -71
  357. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkLoggerProtocol.h +0 -49
  358. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkMessageCode.h +0 -47
  359. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkURLSession.h +0 -62
  360. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h +0 -48
  361. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m +0 -263
  362. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityMessageCode.h +0 -29
  363. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/Public/GoogleUtilities/GULReachabilityChecker.h +0 -79
  364. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m +0 -213
  365. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h +0 -110
  366. data/examples/AExample/Pods/GoogleUtilities/LICENSE +0 -247
  367. data/examples/AExample/Pods/GoogleUtilities/README.md +0 -189
  368. data/examples/AExample/Pods/Manifest.lock +0 -112
  369. data/examples/AExample/Pods/Pods.xcodeproj/project.pbxproj +0 -3670
  370. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseAnalytics.xcscheme +0 -58
  371. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCore.xcscheme +0 -58
  372. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCoreDiagnostics.xcscheme +0 -58
  373. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseInstallations.xcscheme +0 -58
  374. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleAppMeasurement.xcscheme +0 -58
  375. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleDataTransport.xcscheme +0 -58
  376. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleUtilities.xcscheme +0 -58
  377. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample-AExampleCP.xcscheme +0 -58
  378. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample.xcscheme +0 -58
  379. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/PromisesObjC.xcscheme +0 -58
  380. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/nanopb.xcscheme +0 -58
  381. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +0 -66
  382. data/examples/AExample/Pods/PromisesObjC/LICENSE +0 -202
  383. data/examples/AExample/Pods/PromisesObjC/README.md +0 -60
  384. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+All.m +0 -86
  385. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Always.m +0 -58
  386. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Any.m +0 -112
  387. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Async.m +0 -70
  388. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Await.m +0 -48
  389. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Catch.m +0 -55
  390. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Delay.m +0 -59
  391. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Do.m +0 -59
  392. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Race.m +0 -65
  393. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Recover.m +0 -54
  394. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Reduce.m +0 -61
  395. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Retry.m +0 -128
  396. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Testing.m +0 -55
  397. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Then.m +0 -50
  398. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Timeout.m +0 -64
  399. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Validate.m +0 -56
  400. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Wrap.m +0 -420
  401. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise.m +0 -299
  402. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromiseError.m +0 -19
  403. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+All.h +0 -63
  404. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Always.h +0 -54
  405. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Any.h +0 -69
  406. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Async.h +0 -60
  407. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Await.h +0 -32
  408. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Catch.h +0 -59
  409. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Delay.h +0 -59
  410. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Do.h +0 -55
  411. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Race.h +0 -62
  412. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Recover.h +0 -60
  413. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Reduce.h +0 -71
  414. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Retry.h +0 -165
  415. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Testing.h +0 -57
  416. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Then.h +0 -63
  417. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Timeout.h +0 -57
  418. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Validate.h +0 -60
  419. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h +0 -316
  420. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise.h +0 -93
  421. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromiseError.h +0 -43
  422. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromisePrivate.h +0 -66
  423. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromises.h +0 -32
  424. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-input-files.xcfilelist +0 -2
  425. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-output-files.xcfilelist +0 -1
  426. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh +0 -109
  427. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.debug.xcconfig +0 -13
  428. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.release.xcconfig +0 -13
  429. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist +0 -26
  430. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-dummy.m +0 -5
  431. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-umbrella.h +0 -22
  432. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig +0 -16
  433. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.modulemap +0 -6
  434. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig +0 -16
  435. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-Info.plist +0 -26
  436. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-dummy.m +0 -5
  437. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-umbrella.h +0 -17
  438. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.debug.xcconfig +0 -17
  439. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.modulemap +0 -6
  440. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.release.xcconfig +0 -17
  441. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist +0 -26
  442. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-dummy.m +0 -5
  443. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-umbrella.h +0 -20
  444. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.debug.xcconfig +0 -15
  445. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap +0 -6
  446. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.release.xcconfig +0 -15
  447. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-input-files.xcfilelist +0 -3
  448. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-output-files.xcfilelist +0 -2
  449. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh +0 -110
  450. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.debug.xcconfig +0 -13
  451. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.release.xcconfig +0 -13
  452. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-Info.plist +0 -26
  453. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-dummy.m +0 -5
  454. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-umbrella.h +0 -25
  455. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.debug.xcconfig +0 -16
  456. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.modulemap +0 -6
  457. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.release.xcconfig +0 -16
  458. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist +0 -26
  459. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-dummy.m +0 -5
  460. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-umbrella.h +0 -41
  461. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.debug.xcconfig +0 -15
  462. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.modulemap +0 -6
  463. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.release.xcconfig +0 -15
  464. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-Info.plist +0 -26
  465. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.markdown +0 -1316
  466. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.plist +0 -1396
  467. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-dummy.m +0 -5
  468. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-input-files.xcfilelist +0 -8
  469. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-output-files.xcfilelist +0 -7
  470. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-input-files.xcfilelist +0 -8
  471. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-output-files.xcfilelist +0 -7
  472. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks.sh +0 -198
  473. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-umbrella.h +0 -16
  474. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.debug.xcconfig +0 -12
  475. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.modulemap +0 -6
  476. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.release.xcconfig +0 -12
  477. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-Info.plist +0 -26
  478. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.markdown +0 -1316
  479. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.plist +0 -1396
  480. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-dummy.m +0 -5
  481. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-input-files.xcfilelist +0 -8
  482. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-output-files.xcfilelist +0 -7
  483. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-input-files.xcfilelist +0 -8
  484. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-output-files.xcfilelist +0 -7
  485. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks.sh +0 -198
  486. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-umbrella.h +0 -16
  487. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.debug.xcconfig +0 -12
  488. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.modulemap +0 -6
  489. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.release.xcconfig +0 -12
  490. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-Info.plist +0 -26
  491. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-dummy.m +0 -5
  492. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-umbrella.h +0 -36
  493. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.debug.xcconfig +0 -12
  494. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.modulemap +0 -6
  495. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.release.xcconfig +0 -12
  496. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-Info.plist +0 -26
  497. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-dummy.m +0 -5
  498. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-prefix.pch +0 -12
  499. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-umbrella.h +0 -26
  500. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.debug.xcconfig +0 -11
  501. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.modulemap +0 -6
  502. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.release.xcconfig +0 -11
  503. data/examples/AExample/Pods/nanopb/LICENSE.txt +0 -20
  504. data/examples/AExample/Pods/nanopb/README.md +0 -71
  505. data/examples/AExample/Pods/nanopb/pb.h +0 -599
  506. data/examples/AExample/Pods/nanopb/pb_common.c +0 -97
  507. data/examples/AExample/Pods/nanopb/pb_common.h +0 -42
  508. data/examples/AExample/Pods/nanopb/pb_decode.c +0 -1564
  509. data/examples/AExample/Pods/nanopb/pb_decode.h +0 -178
  510. data/examples/AExample/Pods/nanopb/pb_encode.c +0 -913
  511. data/examples/AExample/Pods/nanopb/pb_encode.h +0 -170
  512. data/spec/command/validator_spec.rb +0 -12
  513. data/spec/spec_helper.rb +0 -50
@@ -1,826 +0,0 @@
1
- /*
2
- * Copyright 2018 Google
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #import "GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage.h"
18
-
19
- #import "GoogleDataTransport/GDTCORLibrary/Internal/GDTCORAssert.h"
20
- #import "GoogleDataTransport/GDTCORLibrary/Internal/GDTCORLifecycle.h"
21
- #import "GoogleDataTransport/GDTCORLibrary/Internal/GDTCORPlatform.h"
22
- #import "GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageEventSelector.h"
23
- #import "GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORConsoleLogger.h"
24
- #import "GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREvent.h"
25
-
26
- #import "GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h"
27
- #import "GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h"
28
- #import "GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h"
29
-
30
- #import "GoogleDataTransport/GDTCORLibrary/Internal/GDTCORDirectorySizeTracker.h"
31
-
32
- NS_ASSUME_NONNULL_BEGIN
33
-
34
- /** A library data key this class uses to track batchIDs. */
35
- static NSString *const gBatchIDCounterKey = @"GDTCORFlatFileStorageBatchIDCounter";
36
-
37
- /** The separator used between metadata elements in filenames. */
38
- static NSString *const kMetadataSeparator = @"-";
39
-
40
- NSString *const kGDTCOREventComponentsEventIDKey = @"GDTCOREventComponentsEventIDKey";
41
-
42
- NSString *const kGDTCOREventComponentsQoSTierKey = @"GDTCOREventComponentsQoSTierKey";
43
-
44
- NSString *const kGDTCOREventComponentsMappingIDKey = @"GDTCOREventComponentsMappingIDKey";
45
-
46
- NSString *const kGDTCOREventComponentsExpirationKey = @"GDTCOREventComponentsExpirationKey";
47
-
48
- NSString *const kGDTCORBatchComponentsTargetKey = @"GDTCORBatchComponentsTargetKey";
49
-
50
- NSString *const kGDTCORBatchComponentsBatchIDKey = @"GDTCORBatchComponentsBatchIDKey";
51
-
52
- NSString *const kGDTCORBatchComponentsExpirationKey = @"GDTCORBatchComponentsExpirationKey";
53
-
54
- NSString *const GDTCORFlatFileStorageErrorDomain = @"GDTCORFlatFileStorage";
55
-
56
- const uint64_t kGDTCORFlatFileStorageSizeLimit = 20 * 1000 * 1000; // 20 MB.
57
-
58
- @interface GDTCORFlatFileStorage ()
59
-
60
- /** An instance of the size tracker to keep track of the disk space consumed by the storage. */
61
- @property(nonatomic, readonly) GDTCORDirectorySizeTracker *sizeTracker;
62
-
63
- @end
64
-
65
- @implementation GDTCORFlatFileStorage
66
-
67
- @synthesize sizeTracker = _sizeTracker;
68
-
69
- + (void)load {
70
- #if !NDEBUG
71
- [[GDTCORRegistrar sharedInstance] registerStorage:[self sharedInstance] target:kGDTCORTargetTest];
72
- #endif // !NDEBUG
73
- [[GDTCORRegistrar sharedInstance] registerStorage:[self sharedInstance] target:kGDTCORTargetCCT];
74
- [[GDTCORRegistrar sharedInstance] registerStorage:[self sharedInstance] target:kGDTCORTargetFLL];
75
- [[GDTCORRegistrar sharedInstance] registerStorage:[self sharedInstance] target:kGDTCORTargetCSH];
76
- [[GDTCORRegistrar sharedInstance] registerStorage:[self sharedInstance] target:kGDTCORTargetINT];
77
- }
78
-
79
- + (instancetype)sharedInstance {
80
- static GDTCORFlatFileStorage *sharedStorage;
81
- static dispatch_once_t onceToken;
82
- dispatch_once(&onceToken, ^{
83
- sharedStorage = [[GDTCORFlatFileStorage alloc] init];
84
- });
85
- return sharedStorage;
86
- }
87
-
88
- - (instancetype)init {
89
- self = [super init];
90
- if (self) {
91
- _storageQueue =
92
- dispatch_queue_create("com.google.GDTCORFlatFileStorage", DISPATCH_QUEUE_SERIAL);
93
- _uploadCoordinator = [GDTCORUploadCoordinator sharedInstance];
94
- }
95
- return self;
96
- }
97
-
98
- - (GDTCORDirectorySizeTracker *)sizeTracker {
99
- if (_sizeTracker == nil) {
100
- _sizeTracker =
101
- [[GDTCORDirectorySizeTracker alloc] initWithDirectoryPath:GDTCORRootDirectory().path];
102
- }
103
- return _sizeTracker;
104
- }
105
-
106
- #pragma mark - GDTCORStorageProtocol
107
-
108
- - (void)storeEvent:(GDTCOREvent *)event
109
- onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion {
110
- GDTCORLogDebug(@"Saving event: %@", event);
111
- if (event == nil || event.serializedDataObjectBytes == nil) {
112
- GDTCORLogDebug(@"%@", @"The event was nil, so it was not saved.");
113
- if (completion) {
114
- completion(NO, [NSError errorWithDomain:NSInternalInconsistencyException
115
- code:-1
116
- userInfo:nil]);
117
- }
118
- return;
119
- }
120
- if (!completion) {
121
- completion = ^(BOOL wasWritten, NSError *_Nullable error) {
122
- GDTCORLogDebug(@"event %@ stored. success:%@ error:%@", event, wasWritten ? @"YES" : @"NO",
123
- error);
124
- };
125
- }
126
-
127
- __block GDTCORBackgroundIdentifier bgID = GDTCORBackgroundIdentifierInvalid;
128
- bgID = [[GDTCORApplication sharedApplication]
129
- beginBackgroundTaskWithName:@"GDTStorage"
130
- expirationHandler:^{
131
- // End the background task if it's still valid.
132
- [[GDTCORApplication sharedApplication] endBackgroundTask:bgID];
133
- bgID = GDTCORBackgroundIdentifierInvalid;
134
- }];
135
-
136
- dispatch_async(_storageQueue, ^{
137
- // Check that a backend implementation is available for this target.
138
- GDTCORTarget target = event.target;
139
- NSString *filePath = [GDTCORFlatFileStorage pathForTarget:target
140
- eventID:event.eventID
141
- qosTier:@(event.qosTier)
142
- expirationDate:event.expirationDate
143
- mappingID:event.mappingID];
144
- NSError *error;
145
- NSData *encodedEvent = GDTCOREncodeArchive(event, nil, &error);
146
- if (error) {
147
- completion(NO, error);
148
- return;
149
- }
150
-
151
- // Check storage size limit before storing the event.
152
- uint64_t resultingStorageSize = self.sizeTracker.directoryContentSize + encodedEvent.length;
153
- if (resultingStorageSize > kGDTCORFlatFileStorageSizeLimit) {
154
- NSError *error = [NSError
155
- errorWithDomain:GDTCORFlatFileStorageErrorDomain
156
- code:GDTCORFlatFileStorageErrorSizeLimitReached
157
- userInfo:@{
158
- NSLocalizedFailureReasonErrorKey : @"Storage size limit has been reached."
159
- }];
160
- completion(NO, error);
161
- return;
162
- }
163
-
164
- // Write the encoded event to the file.
165
- BOOL writeResult = GDTCORWriteDataToFile(encodedEvent, filePath, &error);
166
- if (writeResult == NO || error) {
167
- GDTCORLogDebug(@"Attempt to write archive failed: path:%@ error:%@", filePath, error);
168
- completion(NO, error);
169
- return;
170
- } else {
171
- GDTCORLogDebug(@"Writing archive succeeded: %@", filePath);
172
- completion(YES, nil);
173
- }
174
-
175
- // Notify size tracker.
176
- [self.sizeTracker fileWasAddedAtPath:filePath withSize:encodedEvent.length];
177
-
178
- // Check the QoS, if it's high priority, notify the target that it has a high priority event.
179
- if (event.qosTier == GDTCOREventQoSFast) {
180
- // TODO: Remove a direct dependency on the upload coordinator.
181
- [self.uploadCoordinator forceUploadForTarget:target];
182
- }
183
-
184
- // Cancel or end the associated background task if it's still valid.
185
- [[GDTCORApplication sharedApplication] endBackgroundTask:bgID];
186
- bgID = GDTCORBackgroundIdentifierInvalid;
187
- });
188
- }
189
-
190
- - (void)batchWithEventSelector:(nonnull GDTCORStorageEventSelector *)eventSelector
191
- batchExpiration:(nonnull NSDate *)expiration
192
- onComplete:
193
- (nonnull void (^)(NSNumber *_Nullable batchID,
194
- NSSet<GDTCOREvent *> *_Nullable events))onComplete {
195
- dispatch_queue_t queue = _storageQueue;
196
- void (^onPathsForTargetComplete)(NSNumber *, NSSet<NSString *> *_Nonnull) = ^(
197
- NSNumber *batchID, NSSet<NSString *> *_Nonnull paths) {
198
- dispatch_async(queue, ^{
199
- NSMutableSet<GDTCOREvent *> *events = [[NSMutableSet alloc] init];
200
- for (NSString *eventPath in paths) {
201
- NSError *error;
202
- GDTCOREvent *event =
203
- (GDTCOREvent *)GDTCORDecodeArchive([GDTCOREvent class], eventPath, nil, &error);
204
- if (event == nil || error) {
205
- GDTCORLogDebug(@"Error deserializing event: %@", error);
206
- [[NSFileManager defaultManager] removeItemAtPath:eventPath error:nil];
207
- continue;
208
- } else {
209
- NSString *fileName = [eventPath lastPathComponent];
210
- NSString *batchPath =
211
- [GDTCORFlatFileStorage batchPathForTarget:eventSelector.selectedTarget
212
- batchID:batchID
213
- expirationDate:expiration];
214
- [[NSFileManager defaultManager] createDirectoryAtPath:batchPath
215
- withIntermediateDirectories:YES
216
- attributes:nil
217
- error:nil];
218
- NSString *destinationPath = [batchPath stringByAppendingPathComponent:fileName];
219
- error = nil;
220
- [[NSFileManager defaultManager] moveItemAtPath:eventPath
221
- toPath:destinationPath
222
- error:&error];
223
- if (error) {
224
- GDTCORLogDebug(@"An event file wasn't moveable into the batch directory: %@", error);
225
- }
226
- [events addObject:event];
227
- }
228
- }
229
- if (onComplete) {
230
- if (events.count == 0) {
231
- onComplete(nil, nil);
232
- } else {
233
- onComplete(batchID, events);
234
- }
235
- }
236
- });
237
- };
238
-
239
- void (^onBatchIDFetchComplete)(NSNumber *) = ^(NSNumber *batchID) {
240
- dispatch_async(queue, ^{
241
- if (batchID == nil) {
242
- if (onComplete) {
243
- onComplete(nil, nil);
244
- return;
245
- }
246
- }
247
- [self pathsForTarget:eventSelector.selectedTarget
248
- eventIDs:eventSelector.selectedEventIDs
249
- qosTiers:eventSelector.selectedQosTiers
250
- mappingIDs:eventSelector.selectedMappingIDs
251
- onComplete:^(NSSet<NSString *> *_Nonnull paths) {
252
- onPathsForTargetComplete(batchID, paths);
253
- }];
254
- });
255
- };
256
-
257
- [self nextBatchID:^(NSNumber *_Nullable batchID) {
258
- if (batchID == nil) {
259
- if (onComplete) {
260
- onComplete(nil, nil);
261
- }
262
- } else {
263
- onBatchIDFetchComplete(batchID);
264
- }
265
- }];
266
- }
267
-
268
- - (void)removeBatchWithID:(nonnull NSNumber *)batchID
269
- deleteEvents:(BOOL)deleteEvents
270
- onComplete:(void (^_Nullable)(void))onComplete {
271
- dispatch_async(_storageQueue, ^{
272
- [self syncThreadUnsafeRemoveBatchWithID:batchID deleteEvents:deleteEvents];
273
-
274
- if (onComplete) {
275
- onComplete();
276
- }
277
- });
278
- }
279
-
280
- - (void)batchIDsForTarget:(GDTCORTarget)target
281
- onComplete:(nonnull void (^)(NSSet<NSNumber *> *_Nullable))onComplete {
282
- dispatch_async(_storageQueue, ^{
283
- NSFileManager *fileManager = [NSFileManager defaultManager];
284
- NSError *error;
285
- NSArray<NSString *> *batchPaths =
286
- [fileManager contentsOfDirectoryAtPath:[GDTCORFlatFileStorage batchDataStoragePath]
287
- error:&error];
288
- if (error || batchPaths.count == 0) {
289
- if (onComplete) {
290
- onComplete(nil);
291
- }
292
- return;
293
- }
294
- NSMutableSet<NSNumber *> *batchIDs = [[NSMutableSet alloc] init];
295
- for (NSString *path in batchPaths) {
296
- NSDictionary<NSString *, id> *components = [self batchComponentsFromFilename:path];
297
- NSNumber *targetNumber = components[kGDTCORBatchComponentsTargetKey];
298
- NSNumber *batchID = components[kGDTCORBatchComponentsBatchIDKey];
299
- if (batchID != nil && targetNumber.intValue == target) {
300
- [batchIDs addObject:batchID];
301
- }
302
- }
303
- if (onComplete) {
304
- onComplete(batchIDs);
305
- }
306
- });
307
- }
308
-
309
- - (void)libraryDataForKey:(nonnull NSString *)key
310
- onFetchComplete:(nonnull void (^)(NSData *_Nullable, NSError *_Nullable))onFetchComplete
311
- setNewValue:(NSData *_Nullable (^_Nullable)(void))setValueBlock {
312
- dispatch_async(_storageQueue, ^{
313
- NSString *dataPath = [[[self class] libraryDataStoragePath] stringByAppendingPathComponent:key];
314
- NSError *error;
315
- NSData *data = [NSData dataWithContentsOfFile:dataPath options:0 error:&error];
316
- if (onFetchComplete) {
317
- onFetchComplete(data, error);
318
- }
319
- if (setValueBlock) {
320
- NSData *newValue = setValueBlock();
321
- // The -isKindOfClass check is necessary because without an explicit 'return nil' in the block
322
- // the implicit return value will be the block itself. The compiler doesn't detect this.
323
- if (newValue != nil && [newValue isKindOfClass:[NSData class]] && newValue.length) {
324
- NSError *newValueError;
325
- if ([newValue writeToFile:dataPath options:NSDataWritingAtomic error:&newValueError]) {
326
- // Update storage size.
327
- [self.sizeTracker fileWasRemovedAtPath:dataPath withSize:data.length];
328
- [self.sizeTracker fileWasAddedAtPath:dataPath withSize:newValue.length];
329
- } else {
330
- GDTCORLogDebug(@"Error writing new value in libraryDataForKey: %@", newValueError);
331
- }
332
- }
333
- }
334
- });
335
- }
336
-
337
- - (void)storeLibraryData:(NSData *)data
338
- forKey:(nonnull NSString *)key
339
- onComplete:(nullable void (^)(NSError *_Nullable error))onComplete {
340
- if (!data || data.length <= 0) {
341
- if (onComplete) {
342
- onComplete([NSError errorWithDomain:NSInternalInconsistencyException code:-1 userInfo:nil]);
343
- }
344
- return;
345
- }
346
- dispatch_async(_storageQueue, ^{
347
- NSError *error;
348
- NSString *dataPath = [[[self class] libraryDataStoragePath] stringByAppendingPathComponent:key];
349
- if ([data writeToFile:dataPath options:NSDataWritingAtomic error:&error]) {
350
- [self.sizeTracker fileWasAddedAtPath:dataPath withSize:data.length];
351
- }
352
- if (onComplete) {
353
- onComplete(error);
354
- }
355
- });
356
- }
357
-
358
- - (void)removeLibraryDataForKey:(nonnull NSString *)key
359
- onComplete:(nonnull void (^)(NSError *_Nullable error))onComplete {
360
- dispatch_async(_storageQueue, ^{
361
- NSError *error;
362
- NSString *dataPath = [[[self class] libraryDataStoragePath] stringByAppendingPathComponent:key];
363
- GDTCORStorageSizeBytes fileSize =
364
- [self.sizeTracker fileSizeAtURL:[NSURL fileURLWithPath:dataPath]];
365
-
366
- if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) {
367
- if ([[NSFileManager defaultManager] removeItemAtPath:dataPath error:&error]) {
368
- [self.sizeTracker fileWasRemovedAtPath:dataPath withSize:fileSize];
369
- }
370
- if (onComplete) {
371
- onComplete(error);
372
- }
373
- }
374
- });
375
- }
376
-
377
- - (void)hasEventsForTarget:(GDTCORTarget)target onComplete:(void (^)(BOOL hasEvents))onComplete {
378
- dispatch_async(_storageQueue, ^{
379
- NSFileManager *fileManager = [NSFileManager defaultManager];
380
- NSString *targetPath = [NSString
381
- stringWithFormat:@"%@/%ld", [GDTCORFlatFileStorage eventDataStoragePath], (long)target];
382
- [fileManager createDirectoryAtPath:targetPath
383
- withIntermediateDirectories:YES
384
- attributes:nil
385
- error:nil];
386
- NSDirectoryEnumerator *enumerator = [fileManager enumeratorAtPath:targetPath];
387
- BOOL hasEventAtLeastOneEvent = [enumerator nextObject] != nil;
388
- if (onComplete) {
389
- onComplete(hasEventAtLeastOneEvent);
390
- }
391
- });
392
- }
393
-
394
- - (void)checkForExpirations {
395
- dispatch_async(_storageQueue, ^{
396
- GDTCORLogDebug(@"%@", @"Checking for expired events and batches");
397
- NSTimeInterval now = [NSDate date].timeIntervalSince1970;
398
- NSFileManager *fileManager = [NSFileManager defaultManager];
399
-
400
- // TODO: Storage may not have enough context to remove batches because a batch may be being
401
- // uploaded but the storage has not context of it.
402
-
403
- // Find expired batches and move their events back to the main storage.
404
- // If a batch contains expired events they are expected to be removed further in the method
405
- // together with other expired events in the main storage.
406
- NSString *batchDataPath = [GDTCORFlatFileStorage batchDataStoragePath];
407
- NSArray<NSString *> *batchDataPaths = [fileManager contentsOfDirectoryAtPath:batchDataPath
408
- error:nil];
409
- for (NSString *path in batchDataPaths) {
410
- @autoreleasepool {
411
- NSString *fileName = [path lastPathComponent];
412
- NSDictionary<NSString *, id> *batchComponents = [self batchComponentsFromFilename:fileName];
413
- NSDate *expirationDate = batchComponents[kGDTCORBatchComponentsExpirationKey];
414
- NSNumber *batchID = batchComponents[kGDTCORBatchComponentsBatchIDKey];
415
- if (expirationDate != nil && expirationDate.timeIntervalSince1970 < now && batchID != nil) {
416
- NSNumber *batchID = batchComponents[kGDTCORBatchComponentsBatchIDKey];
417
- // Move all events from the expired batch back to the main storage.
418
- [self syncThreadUnsafeRemoveBatchWithID:batchID deleteEvents:NO];
419
- }
420
- }
421
- }
422
-
423
- // Find expired events and remove them from the storage.
424
- NSString *eventDataPath = [GDTCORFlatFileStorage eventDataStoragePath];
425
- NSDirectoryEnumerator *enumerator = [fileManager enumeratorAtPath:eventDataPath];
426
- NSString *path;
427
-
428
- while (YES) {
429
- @autoreleasepool {
430
- // Call `[enumerator nextObject]` under autorelease pool to make sure all autoreleased
431
- // objects created under the hood are released on each iteration end to avoid unnecessary
432
- // memory growth.
433
- path = [enumerator nextObject];
434
- if (path == nil) {
435
- break;
436
- }
437
-
438
- NSString *fileName = [path lastPathComponent];
439
- NSDictionary<NSString *, id> *eventComponents = [self eventComponentsFromFilename:fileName];
440
- NSDate *expirationDate = eventComponents[kGDTCOREventComponentsExpirationKey];
441
- if (expirationDate != nil && expirationDate.timeIntervalSince1970 < now) {
442
- NSString *pathToDelete = [eventDataPath stringByAppendingPathComponent:path];
443
- NSError *error;
444
- [fileManager removeItemAtPath:pathToDelete error:&error];
445
- if (error != nil) {
446
- GDTCORLogDebug(@"There was an error deleting an expired item: %@", error);
447
- } else {
448
- GDTCORLogDebug(@"Item deleted because it expired: %@", pathToDelete);
449
- }
450
- }
451
- }
452
- }
453
-
454
- [self.sizeTracker resetCachedSize];
455
- });
456
- }
457
-
458
- - (void)storageSizeWithCallback:(void (^)(uint64_t storageSize))onComplete {
459
- if (!onComplete) {
460
- return;
461
- }
462
-
463
- dispatch_async(_storageQueue, ^{
464
- onComplete([self.sizeTracker directoryContentSize]);
465
- });
466
- }
467
-
468
- #pragma mark - Private not thread safe methods
469
- /** Looks for directory paths containing events for a batch with the specified ID.
470
- * @param batchID A batch ID.
471
- * @param outError A pointer to `NSError *` to assign as possible error to.
472
- * @return An array of an array of paths to directories for event batches with a specified batch ID
473
- * or `nil` in the case of an error. Usually returns a single path but potentially return more in
474
- * cases when the app is terminated while uploading a batch.
475
- */
476
- - (nullable NSArray<NSString *> *)batchDirPathsForBatchID:(NSNumber *)batchID
477
- error:(NSError **_Nonnull)outError {
478
- NSFileManager *fileManager = [NSFileManager defaultManager];
479
- NSError *error;
480
- NSArray<NSString *> *batches =
481
- [fileManager contentsOfDirectoryAtPath:[GDTCORFlatFileStorage batchDataStoragePath]
482
- error:&error];
483
- if (batches == nil) {
484
- *outError = error;
485
- GDTCORLogDebug(@"Failed to find event file paths for batchID: %@, error: %@", batchID, error);
486
- return nil;
487
- }
488
-
489
- NSMutableArray<NSString *> *batchDirPaths = [NSMutableArray array];
490
- for (NSString *path in batches) {
491
- NSDictionary<NSString *, id> *components = [self batchComponentsFromFilename:path];
492
- NSNumber *pathBatchID = components[kGDTCORBatchComponentsBatchIDKey];
493
- if ([pathBatchID isEqual:batchID]) {
494
- NSString *batchDirPath =
495
- [[GDTCORFlatFileStorage batchDataStoragePath] stringByAppendingPathComponent:path];
496
- [batchDirPaths addObject:batchDirPath];
497
- }
498
- }
499
-
500
- return [batchDirPaths copy];
501
- }
502
-
503
- /** Makes a copy of the contents of a directory to a directory at the specified path.*/
504
- - (BOOL)moveContentsOfDirectoryAtPath:(NSString *)sourcePath
505
- to:(NSString *)destinationPath
506
- error:(NSError **_Nonnull)outError {
507
- NSFileManager *fileManager = [NSFileManager defaultManager];
508
-
509
- NSError *error;
510
- NSArray<NSString *> *contentsPaths = [fileManager contentsOfDirectoryAtPath:sourcePath
511
- error:&error];
512
- if (contentsPaths == nil) {
513
- *outError = error;
514
- return NO;
515
- }
516
-
517
- NSMutableArray<NSError *> *errors = [NSMutableArray array];
518
- for (NSString *path in contentsPaths) {
519
- NSString *contentDestinationPath = [destinationPath stringByAppendingPathComponent:path];
520
- NSString *contentSourcePath = [sourcePath stringByAppendingPathComponent:path];
521
-
522
- NSError *moveError;
523
- if (![fileManager moveItemAtPath:contentSourcePath
524
- toPath:contentDestinationPath
525
- error:&moveError] &&
526
- moveError) {
527
- [errors addObject:moveError];
528
- }
529
- }
530
-
531
- if (errors.count == 0) {
532
- return YES;
533
- } else {
534
- NSError *combinedError = [NSError errorWithDomain:@"GDTCORFlatFileStorage"
535
- code:-1
536
- userInfo:@{NSUnderlyingErrorKey : errors}];
537
- *outError = combinedError;
538
- return NO;
539
- }
540
- }
541
-
542
- - (void)syncThreadUnsafeRemoveBatchWithID:(nonnull NSNumber *)batchID
543
- deleteEvents:(BOOL)deleteEvents {
544
- NSError *error;
545
- NSArray<NSString *> *batchDirPaths = [self batchDirPathsForBatchID:batchID error:&error];
546
-
547
- if (batchDirPaths == nil) {
548
- return;
549
- }
550
-
551
- NSFileManager *fileManager = [NSFileManager defaultManager];
552
-
553
- void (^removeBatchDir)(NSString *batchDirPath) = ^(NSString *batchDirPath) {
554
- NSError *error;
555
- if ([fileManager removeItemAtPath:batchDirPath error:&error]) {
556
- GDTCORLogDebug(@"Batch removed at path: %@", batchDirPath);
557
- } else {
558
- GDTCORLogDebug(@"Failed to remove batch at path: %@", batchDirPath);
559
- }
560
- };
561
-
562
- for (NSString *batchDirPath in batchDirPaths) {
563
- @autoreleasepool {
564
- if (deleteEvents) {
565
- removeBatchDir(batchDirPath);
566
- } else {
567
- NSString *batchDirName = [batchDirPath lastPathComponent];
568
- NSDictionary<NSString *, id> *components = [self batchComponentsFromFilename:batchDirName];
569
- NSString *targetValue = [components[kGDTCORBatchComponentsTargetKey] stringValue];
570
- NSString *destinationPath;
571
- if (targetValue) {
572
- destinationPath = [[GDTCORFlatFileStorage eventDataStoragePath]
573
- stringByAppendingPathComponent:targetValue];
574
- }
575
-
576
- // `- [NSFileManager moveItemAtPath:toPath:error:]` method fails if an item by the
577
- // destination path already exists (which usually is the case for the current method). Move
578
- // the events one by one instead.
579
- if (destinationPath && [self moveContentsOfDirectoryAtPath:batchDirPath
580
- to:destinationPath
581
- error:&error]) {
582
- GDTCORLogDebug(@"Batched events at path: %@ moved back to the storage: %@", batchDirPath,
583
- destinationPath);
584
- } else {
585
- GDTCORLogDebug(@"Error encountered whilst moving events back: %@", error);
586
- }
587
-
588
- // Even if not all events where moved back to the storage, there is not much can be done at
589
- // this point, so cleanup batch directory now to avoid cluttering.
590
- removeBatchDir(batchDirPath);
591
- }
592
- }
593
- }
594
-
595
- [self.sizeTracker resetCachedSize];
596
- }
597
-
598
- #pragma mark - Private helper methods
599
-
600
- + (NSString *)eventDataStoragePath {
601
- static NSString *eventDataPath;
602
- static dispatch_once_t onceToken;
603
- dispatch_once(&onceToken, ^{
604
- eventDataPath = [NSString stringWithFormat:@"%@/%@/gdt_event_data", GDTCORRootDirectory().path,
605
- NSStringFromClass([self class])];
606
- });
607
- NSError *error;
608
- [[NSFileManager defaultManager] createDirectoryAtPath:eventDataPath
609
- withIntermediateDirectories:YES
610
- attributes:0
611
- error:&error];
612
- GDTCORAssert(error == nil, @"Creating the library data path failed: %@", error);
613
- return eventDataPath;
614
- }
615
-
616
- + (NSString *)batchDataStoragePath {
617
- static NSString *batchDataPath;
618
- static dispatch_once_t onceToken;
619
- dispatch_once(&onceToken, ^{
620
- batchDataPath = [NSString stringWithFormat:@"%@/%@/gdt_batch_data", GDTCORRootDirectory().path,
621
- NSStringFromClass([self class])];
622
- });
623
- NSError *error;
624
- [[NSFileManager defaultManager] createDirectoryAtPath:batchDataPath
625
- withIntermediateDirectories:YES
626
- attributes:0
627
- error:&error];
628
- GDTCORAssert(error == nil, @"Creating the batch data path failed: %@", error);
629
- return batchDataPath;
630
- }
631
-
632
- + (NSString *)libraryDataStoragePath {
633
- static NSString *libraryDataPath;
634
- static dispatch_once_t onceToken;
635
- dispatch_once(&onceToken, ^{
636
- libraryDataPath =
637
- [NSString stringWithFormat:@"%@/%@/gdt_library_data", GDTCORRootDirectory().path,
638
- NSStringFromClass([self class])];
639
- });
640
- NSError *error;
641
- [[NSFileManager defaultManager] createDirectoryAtPath:libraryDataPath
642
- withIntermediateDirectories:YES
643
- attributes:0
644
- error:&error];
645
- GDTCORAssert(error == nil, @"Creating the library data path failed: %@", error);
646
- return libraryDataPath;
647
- }
648
-
649
- + (NSString *)batchPathForTarget:(GDTCORTarget)target
650
- batchID:(NSNumber *)batchID
651
- expirationDate:(NSDate *)expirationDate {
652
- return
653
- [NSString stringWithFormat:@"%@/%ld%@%@%@%llu", [GDTCORFlatFileStorage batchDataStoragePath],
654
- (long)target, kMetadataSeparator, batchID, kMetadataSeparator,
655
- ((uint64_t)expirationDate.timeIntervalSince1970)];
656
- }
657
-
658
- + (NSString *)pathForTarget:(GDTCORTarget)target
659
- eventID:(NSString *)eventID
660
- qosTier:(NSNumber *)qosTier
661
- expirationDate:(NSDate *)expirationDate
662
- mappingID:(NSString *)mappingID {
663
- NSMutableCharacterSet *allowedChars = [[NSCharacterSet alphanumericCharacterSet] mutableCopy];
664
- [allowedChars addCharactersInString:kMetadataSeparator];
665
- mappingID = [mappingID stringByAddingPercentEncodingWithAllowedCharacters:allowedChars];
666
- return [NSString stringWithFormat:@"%@/%ld/%@%@%@%@%llu%@%@",
667
- [GDTCORFlatFileStorage eventDataStoragePath], (long)target,
668
- eventID, kMetadataSeparator, qosTier, kMetadataSeparator,
669
- ((uint64_t)expirationDate.timeIntervalSince1970),
670
- kMetadataSeparator, mappingID];
671
- }
672
-
673
- - (void)pathsForTarget:(GDTCORTarget)target
674
- eventIDs:(nullable NSSet<NSString *> *)eventIDs
675
- qosTiers:(nullable NSSet<NSNumber *> *)qosTiers
676
- mappingIDs:(nullable NSSet<NSString *> *)mappingIDs
677
- onComplete:(void (^)(NSSet<NSString *> *paths))onComplete {
678
- void (^completion)(NSSet<NSString *> *) = onComplete == nil ? ^(NSSet<NSString *> *paths){} : onComplete;
679
- dispatch_async(_storageQueue, ^{
680
- NSMutableSet<NSString *> *paths = [[NSMutableSet alloc] init];
681
- NSFileManager *fileManager = [NSFileManager defaultManager];
682
- NSString *targetPath = [NSString
683
- stringWithFormat:@"%@/%ld", [GDTCORFlatFileStorage eventDataStoragePath], (long)target];
684
- [fileManager createDirectoryAtPath:targetPath
685
- withIntermediateDirectories:YES
686
- attributes:nil
687
- error:nil];
688
- NSError *error;
689
- NSArray<NSString *> *dirPaths = [fileManager contentsOfDirectoryAtPath:targetPath error:&error];
690
- if (error) {
691
- GDTCORLogDebug(@"There was an error reading the contents of the target path: %@", error);
692
- completion(paths);
693
- return;
694
- }
695
- BOOL checkingIDs = eventIDs.count > 0;
696
- BOOL checkingQosTiers = qosTiers.count > 0;
697
- BOOL checkingMappingIDs = mappingIDs.count > 0;
698
- BOOL checkingAnything = checkingIDs == NO && checkingQosTiers == NO && checkingMappingIDs == NO;
699
- for (NSString *path in dirPaths) {
700
- // Skip hidden files that are created as part of atomic file creation.
701
- if ([path hasPrefix:@"."]) {
702
- continue;
703
- }
704
- NSString *filePath = [targetPath stringByAppendingPathComponent:path];
705
- if (checkingAnything) {
706
- [paths addObject:filePath];
707
- continue;
708
- }
709
- NSString *filename = [path lastPathComponent];
710
- NSDictionary<NSString *, id> *eventComponents = [self eventComponentsFromFilename:filename];
711
- if (!eventComponents) {
712
- GDTCORLogDebug(@"There was an error reading the filename components: %@", eventComponents);
713
- continue;
714
- }
715
- NSString *eventID = eventComponents[kGDTCOREventComponentsEventIDKey];
716
- NSNumber *qosTier = eventComponents[kGDTCOREventComponentsQoSTierKey];
717
- NSString *mappingID = eventComponents[kGDTCOREventComponentsMappingIDKey];
718
-
719
- NSNumber *eventIDMatch = checkingIDs ? @([eventIDs containsObject:eventID]) : nil;
720
- NSNumber *qosTierMatch = checkingQosTiers ? @([qosTiers containsObject:qosTier]) : nil;
721
- NSNumber *mappingIDMatch =
722
- checkingMappingIDs
723
- ? @([mappingIDs containsObject:[mappingID stringByRemovingPercentEncoding]])
724
- : nil;
725
- if ((eventIDMatch == nil || eventIDMatch.boolValue) &&
726
- (qosTierMatch == nil || qosTierMatch.boolValue) &&
727
- (mappingIDMatch == nil || mappingIDMatch.boolValue)) {
728
- [paths addObject:filePath];
729
- }
730
- }
731
- completion(paths);
732
- });
733
- }
734
-
735
- - (void)nextBatchID:(void (^)(NSNumber *_Nullable batchID))nextBatchID {
736
- __block int32_t lastBatchID = -1;
737
- [self libraryDataForKey:gBatchIDCounterKey
738
- onFetchComplete:^(NSData *_Nullable data, NSError *_Nullable getValueError) {
739
- if (!getValueError) {
740
- [data getBytes:(void *)&lastBatchID length:sizeof(int32_t)];
741
- }
742
- if (data == nil) {
743
- lastBatchID = 0;
744
- }
745
- if (nextBatchID) {
746
- nextBatchID(@(lastBatchID));
747
- }
748
- }
749
- setNewValue:^NSData *_Nullable(void) {
750
- if (lastBatchID != -1) {
751
- int32_t incrementedValue = lastBatchID + 1;
752
- return [NSData dataWithBytes:&incrementedValue length:sizeof(int32_t)];
753
- }
754
- return nil;
755
- }];
756
- }
757
-
758
- - (nullable NSDictionary<NSString *, id> *)eventComponentsFromFilename:(NSString *)fileName {
759
- NSArray<NSString *> *components = [fileName componentsSeparatedByString:kMetadataSeparator];
760
- if (components.count >= 4) {
761
- NSString *eventID = components[0];
762
- NSNumber *qosTier = @(components[1].integerValue);
763
- NSDate *expirationDate = [NSDate dateWithTimeIntervalSince1970:components[2].longLongValue];
764
- NSString *mappingID = [[components subarrayWithRange:NSMakeRange(3, components.count - 3)]
765
- componentsJoinedByString:kMetadataSeparator];
766
- if (eventID == nil || qosTier == nil || mappingID == nil || expirationDate == nil) {
767
- GDTCORLogDebug(@"There was an error parsing the event filename components: %@", components);
768
- return nil;
769
- }
770
- return @{
771
- kGDTCOREventComponentsEventIDKey : eventID,
772
- kGDTCOREventComponentsQoSTierKey : qosTier,
773
- kGDTCOREventComponentsExpirationKey : expirationDate,
774
- kGDTCOREventComponentsMappingIDKey : mappingID
775
- };
776
- }
777
- GDTCORLogDebug(@"The event filename could not be split: %@", fileName);
778
- return nil;
779
- }
780
-
781
- - (nullable NSDictionary<NSString *, id> *)batchComponentsFromFilename:(NSString *)fileName {
782
- NSArray<NSString *> *components = [fileName componentsSeparatedByString:kMetadataSeparator];
783
- if (components.count == 3) {
784
- NSNumber *target = @(components[0].integerValue);
785
- NSNumber *batchID = @(components[1].integerValue);
786
- NSDate *expirationDate = [NSDate dateWithTimeIntervalSince1970:components[2].doubleValue];
787
- if (target == nil || batchID == nil || expirationDate == nil) {
788
- GDTCORLogDebug(@"There was an error parsing the batch filename components: %@", components);
789
- return nil;
790
- }
791
- return @{
792
- kGDTCORBatchComponentsTargetKey : target,
793
- kGDTCORBatchComponentsBatchIDKey : batchID,
794
- kGDTCORBatchComponentsExpirationKey : expirationDate
795
- };
796
- }
797
- GDTCORLogDebug(@"The batch filename could not be split: %@", fileName);
798
- return nil;
799
- }
800
-
801
- #pragma mark - GDTCORLifecycleProtocol
802
-
803
- - (void)appWillBackground:(GDTCORApplication *)app {
804
- dispatch_async(_storageQueue, ^{
805
- // Immediately request a background task to run until the end of the current queue of work,
806
- // and cancel it once the work is done.
807
- __block GDTCORBackgroundIdentifier bgID =
808
- [app beginBackgroundTaskWithName:@"GDTStorage"
809
- expirationHandler:^{
810
- [app endBackgroundTask:bgID];
811
- bgID = GDTCORBackgroundIdentifierInvalid;
812
- }];
813
- // End the background task if it's still valid.
814
- [app endBackgroundTask:bgID];
815
- bgID = GDTCORBackgroundIdentifierInvalid;
816
- });
817
- }
818
-
819
- - (void)appWillTerminate:(GDTCORApplication *)application {
820
- dispatch_sync(_storageQueue, ^{
821
- });
822
- }
823
-
824
- @end
825
-
826
- NS_ASSUME_NONNULL_END