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,766 +0,0 @@
1
- // Copyright 2017 Google
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- #import <Foundation/Foundation.h>
16
-
17
- #import "GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkURLSession.h"
18
-
19
- #import "GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h"
20
- #import "GoogleUtilities/Network/GULNetworkInternal.h"
21
- #import "GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h"
22
- #import "GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkConstants.h"
23
- #import "GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkMessageCode.h"
24
-
25
- @interface GULNetworkURLSession () <NSURLSessionDelegate,
26
- NSURLSessionDataDelegate,
27
- NSURLSessionDownloadDelegate,
28
- NSURLSessionTaskDelegate>
29
- @end
30
-
31
- @implementation GULNetworkURLSession {
32
- /// The handler to be called when the request completes or error has occurs.
33
- GULNetworkURLSessionCompletionHandler _completionHandler;
34
-
35
- /// Session ID generated randomly with a fixed prefix.
36
- NSString *_sessionID;
37
-
38
- #pragma clang diagnostic push
39
- #pragma clang diagnostic ignored "-Wunguarded-availability"
40
- /// The session configuration. NSURLSessionConfiguration' is only available on iOS 7.0 or newer.
41
- NSURLSessionConfiguration *_sessionConfig;
42
-
43
- /// The current NSURLSession.
44
- NSURLSession *__weak _Nullable _URLSession;
45
- #pragma clang diagnostic pop
46
-
47
- /// The path to the directory where all temporary files are stored before uploading.
48
- NSURL *_networkDirectoryURL;
49
-
50
- /// The downloaded data from fetching.
51
- NSData *_downloadedData;
52
-
53
- /// The path to the temporary file which stores the uploading data.
54
- NSURL *_uploadingFileURL;
55
-
56
- /// The current request.
57
- NSURLRequest *_request;
58
- }
59
-
60
- #pragma mark - Init
61
-
62
- - (instancetype)initWithNetworkLoggerDelegate:(id<GULNetworkLoggerDelegate>)networkLoggerDelegate {
63
- self = [super init];
64
- if (self) {
65
- // Create URL to the directory where all temporary files to upload have to be stored.
66
- #if TARGET_OS_TV
67
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
68
- #else
69
- NSArray *paths =
70
- NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
71
- #endif
72
- NSString *storageDirectory = paths.firstObject;
73
- NSArray *tempPathComponents = @[
74
- storageDirectory, kGULNetworkApplicationSupportSubdirectory, kGULNetworkTempDirectoryName
75
- ];
76
- _networkDirectoryURL = [NSURL fileURLWithPathComponents:tempPathComponents];
77
- _sessionID = [NSString stringWithFormat:@"%@-%@", kGULNetworkBackgroundSessionConfigIDPrefix,
78
- [[NSUUID UUID] UUIDString]];
79
- _loggerDelegate = networkLoggerDelegate;
80
- }
81
- return self;
82
- }
83
-
84
- #pragma mark - External Methods
85
-
86
- #pragma mark - To be called from AppDelegate
87
-
88
- + (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID
89
- completionHandler:
90
- (GULNetworkSystemCompletionHandler)systemCompletionHandler {
91
- // The session may not be Analytics background. Ignore those that do not have the prefix.
92
- if (![sessionID hasPrefix:kGULNetworkBackgroundSessionConfigIDPrefix]) {
93
- return;
94
- }
95
- GULNetworkURLSession *fetcher = [self fetcherWithSessionIdentifier:sessionID];
96
- if (fetcher != nil) {
97
- [fetcher addSystemCompletionHandler:systemCompletionHandler forSession:sessionID];
98
- } else {
99
- GULLogError(kGULLoggerNetwork, NO,
100
- [NSString stringWithFormat:@"I-NET%06ld", (long)kGULNetworkMessageCodeNetwork003],
101
- @"Failed to retrieve background session with ID %@ after app is relaunched.",
102
- sessionID);
103
- }
104
- }
105
-
106
- #pragma mark - External Methods
107
-
108
- /// Sends an async POST request using NSURLSession for iOS >= 7.0, and returns an ID of the
109
- /// connection.
110
- - (nullable NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request
111
- completionHandler:(GULNetworkURLSessionCompletionHandler)handler
112
- API_AVAILABLE(ios(7.0)) {
113
- // NSURLSessionUploadTask does not work with NSData in the background.
114
- // To avoid this issue, write the data to a temporary file to upload it.
115
- // Make a temporary file with the data subset.
116
- _uploadingFileURL = [self temporaryFilePathWithSessionID:_sessionID];
117
- NSError *writeError;
118
- NSURLSessionUploadTask *postRequestTask;
119
- NSURLSession *session;
120
- BOOL didWriteFile = NO;
121
-
122
- // Clean up the entire temp folder to avoid temp files that remain in case the previous session
123
- // crashed and did not clean up.
124
- [self maybeRemoveTempFilesAtURL:_networkDirectoryURL
125
- expiringTime:kGULNetworkTempFolderExpireTime];
126
-
127
- // If there is no background network enabled, no need to write to file. This will allow default
128
- // network session which runs on the foreground.
129
- if (_backgroundNetworkEnabled && [self ensureTemporaryDirectoryExists]) {
130
- didWriteFile = [request.HTTPBody writeToFile:_uploadingFileURL.path
131
- options:NSDataWritingAtomic
132
- error:&writeError];
133
-
134
- if (writeError) {
135
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
136
- messageCode:kGULNetworkMessageCodeURLSession000
137
- message:@"Failed to write request data to file"
138
- context:writeError];
139
- }
140
- }
141
-
142
- if (didWriteFile) {
143
- // Exclude this file from backing up to iTunes. There are conflicting reports that excluding
144
- // directory from backing up does not exclude files of that directory from backing up.
145
- [self excludeFromBackupForURL:_uploadingFileURL];
146
-
147
- _sessionConfig = [self backgroundSessionConfigWithSessionID:_sessionID];
148
- [self populateSessionConfig:_sessionConfig withRequest:request];
149
- session = [NSURLSession sessionWithConfiguration:_sessionConfig
150
- delegate:self
151
- delegateQueue:[NSOperationQueue mainQueue]];
152
- postRequestTask = [session uploadTaskWithRequest:request fromFile:_uploadingFileURL];
153
- } else {
154
- // If we cannot write to file, just send it in the foreground.
155
- _sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
156
- [self populateSessionConfig:_sessionConfig withRequest:request];
157
- session = [NSURLSession sessionWithConfiguration:_sessionConfig
158
- delegate:self
159
- delegateQueue:[NSOperationQueue mainQueue]];
160
- postRequestTask = [session uploadTaskWithRequest:request fromData:request.HTTPBody];
161
- }
162
-
163
- if (!session || !postRequestTask) {
164
- NSError *error = [[NSError alloc]
165
- initWithDomain:kGULNetworkErrorDomain
166
- code:GULErrorCodeNetworkRequestCreation
167
- userInfo:@{kGULNetworkErrorContext : @"Cannot create network session"}];
168
- [self callCompletionHandler:handler withResponse:nil data:nil error:error];
169
- return nil;
170
- }
171
-
172
- _URLSession = session;
173
-
174
- // Save the session into memory.
175
- [[self class] setSessionInFetcherMap:self forSessionID:_sessionID];
176
-
177
- _request = [request copy];
178
-
179
- // Store completion handler because background session does not accept handler block but custom
180
- // delegate.
181
- _completionHandler = [handler copy];
182
- [postRequestTask resume];
183
-
184
- return _sessionID;
185
- }
186
-
187
- /// Sends an async GET request using NSURLSession for iOS >= 7.0, and returns an ID of the session.
188
- - (nullable NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request
189
- completionHandler:(GULNetworkURLSessionCompletionHandler)handler
190
- API_AVAILABLE(ios(7.0)) {
191
- if (_backgroundNetworkEnabled) {
192
- _sessionConfig = [self backgroundSessionConfigWithSessionID:_sessionID];
193
- } else {
194
- _sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
195
- }
196
-
197
- [self populateSessionConfig:_sessionConfig withRequest:request];
198
-
199
- // Do not cache the GET request.
200
- _sessionConfig.URLCache = nil;
201
-
202
- NSURLSession *session = [NSURLSession sessionWithConfiguration:_sessionConfig
203
- delegate:self
204
- delegateQueue:[NSOperationQueue mainQueue]];
205
- NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithRequest:request];
206
-
207
- if (!session || !downloadTask) {
208
- NSError *error = [[NSError alloc]
209
- initWithDomain:kGULNetworkErrorDomain
210
- code:GULErrorCodeNetworkRequestCreation
211
- userInfo:@{kGULNetworkErrorContext : @"Cannot create network session"}];
212
- [self callCompletionHandler:handler withResponse:nil data:nil error:error];
213
- return nil;
214
- }
215
-
216
- _URLSession = session;
217
-
218
- // Save the session into memory.
219
- [[self class] setSessionInFetcherMap:self forSessionID:_sessionID];
220
-
221
- _request = [request copy];
222
-
223
- _completionHandler = [handler copy];
224
- [downloadTask resume];
225
-
226
- return _sessionID;
227
- }
228
-
229
- #pragma mark - NSURLSessionDataDelegate
230
-
231
- /// Called by the NSURLSession when the data task has received some of the expected data.
232
- /// Once the session is completed, URLSession:task:didCompleteWithError will be called and the
233
- /// completion handler will be called with the downloaded data.
234
- - (void)URLSession:(NSURLSession *)session
235
- dataTask:(NSURLSessionDataTask *)dataTask
236
- didReceiveData:(NSData *)data {
237
- @synchronized(self) {
238
- NSMutableData *mutableData = [[NSMutableData alloc] init];
239
- if (_downloadedData) {
240
- mutableData = _downloadedData.mutableCopy;
241
- }
242
- [mutableData appendData:data];
243
- _downloadedData = mutableData;
244
- }
245
- }
246
-
247
- #pragma mark - NSURLSessionTaskDelegate
248
-
249
- /// Called by the NSURLSession once the download task is completed. The file is saved in the
250
- /// provided URL so we need to read the data and store into _downloadedData. Once the session is
251
- /// completed, URLSession:task:didCompleteWithError will be called and the completion handler will
252
- /// be called with the downloaded data.
253
- - (void)URLSession:(NSURLSession *)session
254
- downloadTask:(NSURLSessionDownloadTask *)task
255
- didFinishDownloadingToURL:(NSURL *)url API_AVAILABLE(ios(7.0)) {
256
- if (!url.path) {
257
- [_loggerDelegate
258
- GULNetwork_logWithLevel:kGULNetworkLogLevelError
259
- messageCode:kGULNetworkMessageCodeURLSession001
260
- message:@"Unable to read downloaded data from empty temp path"];
261
- _downloadedData = nil;
262
- return;
263
- }
264
-
265
- NSError *error;
266
- _downloadedData = [NSData dataWithContentsOfFile:url.path options:0 error:&error];
267
-
268
- if (error) {
269
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
270
- messageCode:kGULNetworkMessageCodeURLSession002
271
- message:@"Cannot read the content of downloaded data"
272
- context:error];
273
- _downloadedData = nil;
274
- }
275
- }
276
-
277
- #if TARGET_OS_IOS || TARGET_OS_TV
278
- - (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session
279
- API_AVAILABLE(ios(7.0)) {
280
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelDebug
281
- messageCode:kGULNetworkMessageCodeURLSession003
282
- message:@"Background session finished"
283
- context:session.configuration.identifier];
284
- [self callSystemCompletionHandler:session.configuration.identifier];
285
- }
286
- #endif
287
-
288
- - (void)URLSession:(NSURLSession *)session
289
- task:(NSURLSessionTask *)task
290
- didCompleteWithError:(NSError *)error API_AVAILABLE(ios(7.0)) {
291
- // Avoid any chance of recursive behavior leading to it being used repeatedly.
292
- GULNetworkURLSessionCompletionHandler handler = _completionHandler;
293
- _completionHandler = nil;
294
-
295
- if (task.response) {
296
- // The following assertion should always be true for HTTP requests, see https://goo.gl/gVLxT7.
297
- NSAssert([task.response isKindOfClass:[NSHTTPURLResponse class]], @"URL response must be HTTP");
298
-
299
- // The server responded so ignore the error created by the system.
300
- error = nil;
301
- } else if (!error) {
302
- error = [[NSError alloc]
303
- initWithDomain:kGULNetworkErrorDomain
304
- code:GULErrorCodeNetworkInvalidResponse
305
- userInfo:@{kGULNetworkErrorContext : @"Network Error: Empty network response"}];
306
- }
307
-
308
- [self callCompletionHandler:handler
309
- withResponse:(NSHTTPURLResponse *)task.response
310
- data:_downloadedData
311
- error:error];
312
-
313
- // Remove the temp file to avoid trashing devices with lots of temp files.
314
- [self removeTempItemAtURL:_uploadingFileURL];
315
-
316
- // Try to clean up stale files again.
317
- [self maybeRemoveTempFilesAtURL:_networkDirectoryURL
318
- expiringTime:kGULNetworkTempFolderExpireTime];
319
-
320
- // This is called without checking the sessionID here since non-background sessions
321
- // won't have an ID.
322
- [session finishTasksAndInvalidate];
323
-
324
- // Explicitly remove the session so it won't be reused. The weak map table should
325
- // remove the session on deallocation, but dealloc may not happen immediately after
326
- // calling `finishTasksAndInvalidate`.
327
- NSString *sessionID = session.configuration.identifier;
328
- [[self class] setSessionInFetcherMap:nil forSessionID:sessionID];
329
- }
330
-
331
- - (void)URLSession:(NSURLSession *)session
332
- task:(NSURLSessionTask *)task
333
- didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
334
- completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition,
335
- NSURLCredential *credential))completionHandler
336
- API_AVAILABLE(ios(7.0)) {
337
- // The handling is modeled after GTMSessionFetcher.
338
- if ([challenge.protectionSpace.authenticationMethod
339
- isEqualToString:NSURLAuthenticationMethodServerTrust]) {
340
- SecTrustRef serverTrust = challenge.protectionSpace.serverTrust;
341
- if (serverTrust == NULL) {
342
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelDebug
343
- messageCode:kGULNetworkMessageCodeURLSession004
344
- message:@"Received empty server trust for host. Host"
345
- context:_request.URL];
346
- completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
347
- return;
348
- }
349
- NSURLCredential *credential = [NSURLCredential credentialForTrust:serverTrust];
350
- if (!credential) {
351
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelWarning
352
- messageCode:kGULNetworkMessageCodeURLSession005
353
- message:@"Unable to verify server identity. Host"
354
- context:_request.URL];
355
- completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
356
- return;
357
- }
358
-
359
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelDebug
360
- messageCode:kGULNetworkMessageCodeURLSession006
361
- message:@"Received SSL challenge for host. Host"
362
- context:_request.URL];
363
-
364
- void (^callback)(BOOL) = ^(BOOL allow) {
365
- if (allow) {
366
- completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
367
- } else {
368
- [self->_loggerDelegate
369
- GULNetwork_logWithLevel:kGULNetworkLogLevelDebug
370
- messageCode:kGULNetworkMessageCodeURLSession007
371
- message:@"Cancelling authentication challenge for host. Host"
372
- context:self->_request.URL];
373
- completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
374
- }
375
- };
376
-
377
- // Retain the trust object to avoid a SecTrustEvaluate() crash on iOS 7.
378
- CFRetain(serverTrust);
379
-
380
- // Evaluate the certificate chain.
381
- //
382
- // The delegate queue may be the main thread. Trust evaluation could cause some
383
- // blocking network activity, so we must evaluate async, as documented at
384
- // https://developer.apple.com/library/ios/technotes/tn2232/
385
- dispatch_queue_t evaluateBackgroundQueue =
386
- dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
387
-
388
- dispatch_async(evaluateBackgroundQueue, ^{
389
- SecTrustResultType trustEval = kSecTrustResultInvalid;
390
- BOOL shouldAllow;
391
- OSStatus trustError;
392
-
393
- @synchronized([GULNetworkURLSession class]) {
394
- #pragma clang diagnostic push
395
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
396
- trustError = SecTrustEvaluate(serverTrust, &trustEval);
397
- #pragma clang dianostic pop
398
- }
399
-
400
- if (trustError != errSecSuccess) {
401
- [self->_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
402
- messageCode:kGULNetworkMessageCodeURLSession008
403
- message:@"Cannot evaluate server trust. Error, host"
404
- contexts:@[ @(trustError), self->_request.URL ]];
405
- shouldAllow = NO;
406
- } else {
407
- // Having a trust level "unspecified" by the user is the usual result, described at
408
- // https://developer.apple.com/library/mac/qa/qa1360
409
- shouldAllow =
410
- (trustEval == kSecTrustResultUnspecified || trustEval == kSecTrustResultProceed);
411
- }
412
-
413
- // Call the call back with the permission.
414
- callback(shouldAllow);
415
-
416
- CFRelease(serverTrust);
417
- });
418
- return;
419
- }
420
-
421
- // Default handling for other Auth Challenges.
422
- completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
423
- }
424
-
425
- #pragma mark - Internal Methods
426
-
427
- /// Stores system completion handler with session ID as key.
428
- - (void)addSystemCompletionHandler:(GULNetworkSystemCompletionHandler)handler
429
- forSession:(NSString *)identifier {
430
- if (!handler) {
431
- [_loggerDelegate
432
- GULNetwork_logWithLevel:kGULNetworkLogLevelError
433
- messageCode:kGULNetworkMessageCodeURLSession009
434
- message:@"Cannot store nil system completion handler in network"];
435
- return;
436
- }
437
-
438
- if (!identifier.length) {
439
- [_loggerDelegate
440
- GULNetwork_logWithLevel:kGULNetworkLogLevelError
441
- messageCode:kGULNetworkMessageCodeURLSession010
442
- message:@"Cannot store system completion handler with empty network "
443
- "session identifier"];
444
- return;
445
- }
446
-
447
- GULMutableDictionary *systemCompletionHandlers =
448
- [[self class] sessionIDToSystemCompletionHandlerDictionary];
449
- if (systemCompletionHandlers[identifier]) {
450
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelWarning
451
- messageCode:kGULNetworkMessageCodeURLSession011
452
- message:@"Got multiple system handlers for a single session ID"
453
- context:identifier];
454
- }
455
-
456
- systemCompletionHandlers[identifier] = handler;
457
- }
458
-
459
- /// Calls the system provided completion handler with the session ID stored in the dictionary.
460
- /// The handler will be removed from the dictionary after being called.
461
- - (void)callSystemCompletionHandler:(NSString *)identifier {
462
- GULMutableDictionary *systemCompletionHandlers =
463
- [[self class] sessionIDToSystemCompletionHandlerDictionary];
464
- GULNetworkSystemCompletionHandler handler = [systemCompletionHandlers objectForKey:identifier];
465
-
466
- if (handler) {
467
- [systemCompletionHandlers removeObjectForKey:identifier];
468
-
469
- dispatch_async(dispatch_get_main_queue(), ^{
470
- handler();
471
- });
472
- }
473
- }
474
-
475
- /// Sets or updates the session ID of this session.
476
- - (void)setSessionID:(NSString *)sessionID {
477
- _sessionID = [sessionID copy];
478
- }
479
-
480
- /// Creates a background session configuration with the session ID using the supported method.
481
- - (NSURLSessionConfiguration *)backgroundSessionConfigWithSessionID:(NSString *)sessionID
482
- API_AVAILABLE(ios(7.0)) {
483
- #if (TARGET_OS_OSX && defined(MAC_OS_X_VERSION_10_10) && \
484
- MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10) || \
485
- TARGET_OS_TV || \
486
- (TARGET_OS_IOS && defined(__IPHONE_8_0) && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0)
487
-
488
- // iOS 8/10.10 builds require the new backgroundSessionConfiguration method name.
489
- return [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:sessionID];
490
-
491
- #elif (TARGET_OS_OSX && defined(MAC_OS_X_VERSION_10_10) && \
492
- MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10) || \
493
- (TARGET_OS_IOS && defined(__IPHONE_8_0) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0)
494
-
495
- // Do a runtime check to avoid a deprecation warning about using
496
- // +backgroundSessionConfiguration: on iOS 8.
497
- if ([NSURLSessionConfiguration
498
- respondsToSelector:@selector(backgroundSessionConfigurationWithIdentifier:)]) {
499
- // Running on iOS 8+/OS X 10.10+.
500
- #pragma clang diagnostic push
501
- #pragma clang diagnostic ignored "-Wunguarded-availability"
502
- return [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:sessionID];
503
- #pragma clang diagnostic pop
504
- } else {
505
- // Running on iOS 7/OS X 10.9.
506
- return [NSURLSessionConfiguration backgroundSessionConfiguration:sessionID];
507
- }
508
-
509
- #else
510
- // Building with an SDK earlier than iOS 8/OS X 10.10.
511
- return [NSURLSessionConfiguration backgroundSessionConfiguration:sessionID];
512
- #endif
513
- }
514
-
515
- - (void)maybeRemoveTempFilesAtURL:(NSURL *)folderURL expiringTime:(NSTimeInterval)staleTime {
516
- if (!folderURL.absoluteString.length) {
517
- return;
518
- }
519
-
520
- NSFileManager *fileManager = [NSFileManager defaultManager];
521
- NSError *error = nil;
522
-
523
- NSArray *properties = @[ NSURLCreationDateKey ];
524
- NSArray *directoryContent =
525
- [fileManager contentsOfDirectoryAtURL:folderURL
526
- includingPropertiesForKeys:properties
527
- options:NSDirectoryEnumerationSkipsSubdirectoryDescendants
528
- error:&error];
529
- if (error && error.code != NSFileReadNoSuchFileError) {
530
- [_loggerDelegate
531
- GULNetwork_logWithLevel:kGULNetworkLogLevelDebug
532
- messageCode:kGULNetworkMessageCodeURLSession012
533
- message:@"Cannot get files from the temporary network folder. Error"
534
- context:error];
535
- return;
536
- }
537
-
538
- if (!directoryContent.count) {
539
- return;
540
- }
541
-
542
- NSTimeInterval now = [NSDate date].timeIntervalSince1970;
543
- for (NSURL *tempFile in directoryContent) {
544
- NSDate *creationDate;
545
- BOOL getCreationDate = [tempFile getResourceValue:&creationDate
546
- forKey:NSURLCreationDateKey
547
- error:NULL];
548
- if (!getCreationDate) {
549
- continue;
550
- }
551
- NSTimeInterval creationTimeInterval = creationDate.timeIntervalSince1970;
552
- if (fabs(now - creationTimeInterval) > staleTime) {
553
- [self removeTempItemAtURL:tempFile];
554
- }
555
- }
556
- }
557
-
558
- /// Removes the temporary file written to disk for sending the request. It has to be cleaned up
559
- /// after the session is done.
560
- - (void)removeTempItemAtURL:(NSURL *)fileURL {
561
- if (!fileURL.absoluteString.length) {
562
- return;
563
- }
564
-
565
- NSFileManager *fileManager = [NSFileManager defaultManager];
566
- NSError *error = nil;
567
-
568
- if (![fileManager removeItemAtURL:fileURL error:&error] && error.code != NSFileNoSuchFileError) {
569
- [_loggerDelegate
570
- GULNetwork_logWithLevel:kGULNetworkLogLevelError
571
- messageCode:kGULNetworkMessageCodeURLSession013
572
- message:@"Failed to remove temporary uploading data file. Error"
573
- context:error.localizedDescription];
574
- }
575
- }
576
-
577
- /// Gets the fetcher with the session ID.
578
- + (instancetype)fetcherWithSessionIdentifier:(NSString *)sessionIdentifier {
579
- GULNetworkURLSession *session = [self sessionFromFetcherMapForSessionID:sessionIdentifier];
580
- if (!session && [sessionIdentifier hasPrefix:kGULNetworkBackgroundSessionConfigIDPrefix]) {
581
- session = [[GULNetworkURLSession alloc] initWithNetworkLoggerDelegate:nil];
582
- [session setSessionID:sessionIdentifier];
583
- [self setSessionInFetcherMap:session forSessionID:sessionIdentifier];
584
- }
585
- return session;
586
- }
587
-
588
- /// Returns a map of the fetcher by session ID. Creates a map if it is not created.
589
- /// When reading and writing from/to the session map, don't use this method directly.
590
- /// To avoid thread safety issues, use one of the helper methods at the bottom of the
591
- /// file: setSessionInFetcherMap:forSessionID:, sessionFromFetcherMapForSessionID:
592
- + (NSMapTable<NSString *, GULNetworkURLSession *> *)sessionIDToFetcherMap {
593
- static NSMapTable *sessionIDToFetcherMap;
594
-
595
- static dispatch_once_t sessionMapOnceToken;
596
- dispatch_once(&sessionMapOnceToken, ^{
597
- sessionIDToFetcherMap = [NSMapTable strongToWeakObjectsMapTable];
598
- });
599
- return sessionIDToFetcherMap;
600
- }
601
-
602
- + (NSLock *)sessionIDToFetcherMapReadWriteLock {
603
- static NSLock *lock;
604
-
605
- static dispatch_once_t onceToken;
606
- dispatch_once(&onceToken, ^{
607
- lock = [[NSLock alloc] init];
608
- });
609
- return lock;
610
- }
611
-
612
- /// Returns a map of system provided completion handler by session ID. Creates a map if it is not
613
- /// created.
614
- + (GULMutableDictionary *)sessionIDToSystemCompletionHandlerDictionary {
615
- static GULMutableDictionary *systemCompletionHandlers;
616
-
617
- static dispatch_once_t systemCompletionHandlerOnceToken;
618
- dispatch_once(&systemCompletionHandlerOnceToken, ^{
619
- systemCompletionHandlers = [[GULMutableDictionary alloc] init];
620
- });
621
- return systemCompletionHandlers;
622
- }
623
-
624
- - (NSURL *)temporaryFilePathWithSessionID:(NSString *)sessionID {
625
- NSString *tempName = [NSString stringWithFormat:@"GULUpload_temp_%@", sessionID];
626
- return [_networkDirectoryURL URLByAppendingPathComponent:tempName];
627
- }
628
-
629
- /// Makes sure that the directory to store temp files exists. If not, tries to create it and returns
630
- /// YES. If there is anything wrong, returns NO.
631
- - (BOOL)ensureTemporaryDirectoryExists {
632
- NSFileManager *fileManager = [NSFileManager defaultManager];
633
- NSError *error = nil;
634
-
635
- // Create a temporary directory if it does not exist or was deleted.
636
- if ([_networkDirectoryURL checkResourceIsReachableAndReturnError:&error]) {
637
- return YES;
638
- }
639
-
640
- if (error && error.code != NSFileReadNoSuchFileError) {
641
- [_loggerDelegate
642
- GULNetwork_logWithLevel:kGULNetworkLogLevelWarning
643
- messageCode:kGULNetworkMessageCodeURLSession014
644
- message:@"Error while trying to access Network temp folder. Error"
645
- context:error];
646
- }
647
-
648
- NSError *writeError = nil;
649
-
650
- [fileManager createDirectoryAtURL:_networkDirectoryURL
651
- withIntermediateDirectories:YES
652
- attributes:nil
653
- error:&writeError];
654
- if (writeError) {
655
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
656
- messageCode:kGULNetworkMessageCodeURLSession015
657
- message:@"Cannot create temporary directory. Error"
658
- context:writeError];
659
- return NO;
660
- }
661
-
662
- // Set the iCloud exclusion attribute on the Documents URL.
663
- [self excludeFromBackupForURL:_networkDirectoryURL];
664
-
665
- return YES;
666
- }
667
-
668
- - (void)excludeFromBackupForURL:(NSURL *)url {
669
- if (!url.path) {
670
- return;
671
- }
672
-
673
- // Set the iCloud exclusion attribute on the Documents URL.
674
- NSError *preventBackupError = nil;
675
- [url setResourceValue:@YES forKey:NSURLIsExcludedFromBackupKey error:&preventBackupError];
676
- if (preventBackupError) {
677
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
678
- messageCode:kGULNetworkMessageCodeURLSession016
679
- message:@"Cannot exclude temporary folder from iTunes backup"];
680
- }
681
- }
682
-
683
- - (void)URLSession:(NSURLSession *)session
684
- task:(NSURLSessionTask *)task
685
- willPerformHTTPRedirection:(NSHTTPURLResponse *)response
686
- newRequest:(NSURLRequest *)request
687
- completionHandler:(void (^)(NSURLRequest *))completionHandler API_AVAILABLE(ios(7.0)) {
688
- NSArray *nonAllowedRedirectionCodes = @[
689
- @(kGULNetworkHTTPStatusCodeFound), @(kGULNetworkHTTPStatusCodeMovedPermanently),
690
- @(kGULNetworkHTTPStatusCodeMovedTemporarily), @(kGULNetworkHTTPStatusCodeMultipleChoices)
691
- ];
692
-
693
- // Allow those not in the non allowed list to be followed.
694
- if (![nonAllowedRedirectionCodes containsObject:@(response.statusCode)]) {
695
- completionHandler(request);
696
- return;
697
- }
698
-
699
- // Do not allow redirection if the response code is in the non-allowed list.
700
- NSURLRequest *newRequest = request;
701
-
702
- if (response) {
703
- newRequest = nil;
704
- }
705
-
706
- completionHandler(newRequest);
707
- }
708
-
709
- #pragma mark - Helper Methods
710
-
711
- + (void)setSessionInFetcherMap:(GULNetworkURLSession *)session forSessionID:(NSString *)sessionID {
712
- [[self sessionIDToFetcherMapReadWriteLock] lock];
713
- GULNetworkURLSession *existingSession =
714
- [[[self class] sessionIDToFetcherMap] objectForKey:sessionID];
715
- if (existingSession) {
716
- if (session) {
717
- NSString *message = [NSString stringWithFormat:@"Discarding session: %@", existingSession];
718
- [existingSession->_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelInfo
719
- messageCode:kGULNetworkMessageCodeURLSession019
720
- message:message];
721
- }
722
- [existingSession->_URLSession finishTasksAndInvalidate];
723
- }
724
- if (session) {
725
- [[[self class] sessionIDToFetcherMap] setObject:session forKey:sessionID];
726
- } else {
727
- [[[self class] sessionIDToFetcherMap] removeObjectForKey:sessionID];
728
- }
729
- [[self sessionIDToFetcherMapReadWriteLock] unlock];
730
- }
731
-
732
- + (nullable GULNetworkURLSession *)sessionFromFetcherMapForSessionID:(NSString *)sessionID {
733
- [[self sessionIDToFetcherMapReadWriteLock] lock];
734
- GULNetworkURLSession *session = [[[self class] sessionIDToFetcherMap] objectForKey:sessionID];
735
- [[self sessionIDToFetcherMapReadWriteLock] unlock];
736
- return session;
737
- }
738
-
739
- - (void)callCompletionHandler:(GULNetworkURLSessionCompletionHandler)handler
740
- withResponse:(NSHTTPURLResponse *)response
741
- data:(NSData *)data
742
- error:(NSError *)error {
743
- if (error) {
744
- [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError
745
- messageCode:kGULNetworkMessageCodeURLSession017
746
- message:@"Encounter network error. Code, error"
747
- contexts:@[ @(error.code), error ]];
748
- }
749
-
750
- if (handler) {
751
- dispatch_async(dispatch_get_main_queue(), ^{
752
- handler(response, data, self->_sessionID, error);
753
- });
754
- }
755
- }
756
-
757
- // Always use the request parameters even if the default session configuration is more restrictive.
758
- - (void)populateSessionConfig:(NSURLSessionConfiguration *)sessionConfig
759
- withRequest:(NSURLRequest *)request API_AVAILABLE(ios(7.0)) {
760
- sessionConfig.HTTPAdditionalHeaders = request.allHTTPHeaderFields;
761
- sessionConfig.timeoutIntervalForRequest = request.timeoutInterval;
762
- sessionConfig.timeoutIntervalForResource = request.timeoutInterval;
763
- sessionConfig.requestCachePolicy = request.cachePolicy;
764
- }
765
-
766
- @end