cocoapods-catalyst-validator 0.1.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/Gemfile +5 -0
  4. data/Gemfile.lock +107 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +18 -0
  7. data/Rakefile +13 -0
  8. data/cocoapods-catalyst-validator.gemspec +23 -0
  9. data/examples/AExample/AExample/AExample.entitlements +10 -0
  10. data/examples/AExample/AExample/AppDelegate.h +14 -0
  11. data/examples/AExample/AExample/AppDelegate.m +40 -0
  12. data/examples/AExample/AExample/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  13. data/examples/AExample/AExample/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  14. data/examples/AExample/AExample/Assets.xcassets/Contents.json +6 -0
  15. data/examples/AExample/AExample/Base.lproj/LaunchScreen.storyboard +25 -0
  16. data/examples/AExample/AExample/Base.lproj/Main.storyboard +24 -0
  17. data/examples/AExample/AExample/Info.plist +25 -0
  18. data/examples/AExample/AExample/SceneDelegate.h +15 -0
  19. data/examples/AExample/AExample/SceneDelegate.m +57 -0
  20. data/examples/AExample/AExample/ViewController.h +14 -0
  21. data/examples/AExample/AExample/ViewController.m +22 -0
  22. data/examples/AExample/AExample/main.m +18 -0
  23. data/examples/AExample/AExample.xcodeproj/project.pbxproj +664 -0
  24. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  25. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  26. data/examples/AExample/AExample.xcodeproj/project.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. data/examples/AExample/AExample.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  28. data/examples/AExample/AExample.xcworkspace/contents.xcworkspacedata +10 -0
  29. data/examples/AExample/AExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  30. data/examples/AExample/AExample.xcworkspace/xcuserdata/xuzhongping.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  31. data/examples/AExample/AExampleCP/AppDelegate.h +14 -0
  32. data/examples/AExample/AExampleCP/AppDelegate.m +40 -0
  33. data/examples/AExample/AExampleCP/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  34. data/examples/AExample/AExampleCP/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  35. data/examples/AExample/AExampleCP/Assets.xcassets/Contents.json +6 -0
  36. data/examples/AExample/AExampleCP/Base.lproj/LaunchScreen.storyboard +25 -0
  37. data/examples/AExample/AExampleCP/Base.lproj/Main.storyboard +24 -0
  38. data/examples/AExample/AExampleCP/Info.plist +25 -0
  39. data/examples/AExample/AExampleCP/SceneDelegate.h +15 -0
  40. data/examples/AExample/AExampleCP/SceneDelegate.m +57 -0
  41. data/examples/AExample/AExampleCP/ViewController.h +14 -0
  42. data/examples/AExample/AExampleCP/ViewController.m +22 -0
  43. data/examples/AExample/AExampleCP/main.m +18 -0
  44. data/examples/AExample/Podfile +24 -0
  45. data/examples/AExample/Podfile.lock +112 -0
  46. data/examples/AExample/Pods/Bugly/Bugly.framework/Bugly +0 -0
  47. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/Bugly.h +163 -0
  48. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h +149 -0
  49. data/examples/AExample/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h +78 -0
  50. data/examples/AExample/Pods/Bugly/Bugly.framework/Modules/module.modulemap +12 -0
  51. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/Info.plist +97 -0
  52. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  53. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  54. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  55. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  56. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  57. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  58. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  59. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  60. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Info.plist +20 -0
  61. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_armv7/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  62. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  63. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  64. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  65. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  66. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  67. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  68. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  69. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  70. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
  71. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_i386_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  72. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  73. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  74. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  75. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  76. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  77. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  78. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  79. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  80. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Info.plist +20 -0
  81. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  82. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  83. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  84. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  85. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  86. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  87. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  88. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  89. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  90. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Info.plist +20 -0
  91. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/Modules/module.modulemap +13 -0
  92. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  93. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  94. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  95. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  96. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  97. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  98. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  99. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  100. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Info.plist +20 -0
  101. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
  102. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics +0 -0
  103. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +62 -0
  104. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics+Consent.h +33 -0
  105. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +142 -0
  106. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIREventNames.h +495 -0
  107. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +731 -0
  108. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +29 -0
  109. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +6 -0
  110. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Info.plist +20 -0
  111. data/examples/AExample/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/Modules/module.modulemap +12 -0
  112. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.h +56 -0
  113. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m +62 -0
  114. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m +856 -0
  115. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.h +49 -0
  116. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m +47 -0
  117. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h +53 -0
  118. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m +79 -0
  119. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m +65 -0
  120. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m +214 -0
  121. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainerInternal.h +49 -0
  122. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m +28 -0
  123. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m +46 -0
  124. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfigurationInternal.h +29 -0
  125. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m +61 -0
  126. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m +44 -0
  127. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.h +35 -0
  128. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m +66 -0
  129. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.h +36 -0
  130. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRFirebaseUserAgent.m +107 -0
  131. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m +72 -0
  132. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m +174 -0
  133. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m +498 -0
  134. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m +32 -0
  135. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
  136. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
  137. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
  138. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
  139. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
  140. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
  141. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
  142. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
  143. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
  144. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
  145. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
  146. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h +127 -0
  147. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h +45 -0
  148. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h +38 -0
  149. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h +126 -0
  150. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h +25 -0
  151. data/examples/AExample/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore/FirebaseCore.h +21 -0
  152. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
  153. data/examples/AExample/Pods/FirebaseCore/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
  154. data/examples/AExample/Pods/FirebaseCore/LICENSE +202 -0
  155. data/examples/AExample/Pods/FirebaseCore/README.md +319 -0
  156. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m +551 -0
  157. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c +60 -0
  158. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h +193 -0
  159. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h +18 -0
  160. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h +61 -0
  161. data/examples/AExample/Pods/FirebaseCoreDiagnostics/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h +34 -0
  162. data/examples/AExample/Pods/FirebaseCoreDiagnostics/LICENSE +202 -0
  163. data/examples/AExample/Pods/FirebaseCoreDiagnostics/README.md +319 -0
  164. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRAppInternal.h +153 -0
  165. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponent.h +91 -0
  166. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentContainer.h +41 -0
  167. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRComponentType.h +34 -0
  168. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h +35 -0
  169. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRDependency.h +45 -0
  170. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h +39 -0
  171. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLibrary.h +44 -0
  172. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIRLogger.h +146 -0
  173. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FIROptionsInternal.h +115 -0
  174. data/examples/AExample/Pods/FirebaseInstallations/FirebaseCore/Sources/Private/FirebaseCoreInternal.h +28 -0
  175. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h +65 -0
  176. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m +145 -0
  177. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h +53 -0
  178. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m +79 -0
  179. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m +282 -0
  180. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m +30 -0
  181. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h +27 -0
  182. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h +93 -0
  183. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m +161 -0
  184. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h +52 -0
  185. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m +50 -0
  186. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h +48 -0
  187. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m +242 -0
  188. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h +36 -0
  189. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m +158 -0
  190. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h +62 -0
  191. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m +380 -0
  192. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h +53 -0
  193. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m +142 -0
  194. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.h +27 -0
  195. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.m +23 -0
  196. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h +54 -0
  197. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.m +132 -0
  198. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h +44 -0
  199. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m +531 -0
  200. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h +58 -0
  201. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m +75 -0
  202. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h +35 -0
  203. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h +71 -0
  204. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m +126 -0
  205. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h +58 -0
  206. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m +77 -0
  207. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h +51 -0
  208. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m +80 -0
  209. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h +19 -0
  210. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallations.h +127 -0
  211. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsAuthTokenResult.h +33 -0
  212. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsErrors.h +34 -0
  213. data/examples/AExample/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h +19 -0
  214. data/examples/AExample/Pods/FirebaseInstallations/LICENSE +202 -0
  215. data/examples/AExample/Pods/FirebaseInstallations/README.md +319 -0
  216. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/Info.plist +97 -0
  217. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  218. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Info.plist +20 -0
  219. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_armv7/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  220. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  221. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
  222. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  223. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  224. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Info.plist +20 -0
  225. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  226. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  227. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Info.plist +20 -0
  228. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/macos-arm64_x86_64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  229. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  230. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Info.plist +20 -0
  231. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  232. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/GoogleAppMeasurement +0 -0
  233. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Info.plist +20 -0
  234. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurement.framework/Modules/module.modulemap +10 -0
  235. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/Info.plist +97 -0
  236. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  237. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  238. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_armv7/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  239. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  240. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  241. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_i386_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  242. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  243. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  244. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/ios-arm64_x86_64-maccatalyst/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  245. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  246. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  247. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/macos-arm64_x86_64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  248. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  249. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  250. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  251. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport +0 -0
  252. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Info.plist +20 -0
  253. data/examples/AExample/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurementIdentitySupport.xcframework/tvos-arm64_x86_64-simulator/GoogleAppMeasurementIdentitySupport.framework/Modules/module.modulemap +5 -0
  254. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTCompressionHelper.m +95 -0
  255. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTNanopbHelpers.m +270 -0
  256. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m +573 -0
  257. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploader.m +210 -0
  258. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCOREvent+GDTCCTSupport.m +240 -0
  259. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h +40 -0
  260. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h +128 -0
  261. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploadOperation.h +76 -0
  262. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Private/GDTCCTUploader.h +45 -0
  263. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c +128 -0
  264. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h +281 -0
  265. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/Public/GDTCOREvent+GDTCCTSupport.h +51 -0
  266. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m +36 -0
  267. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m +178 -0
  268. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m +55 -0
  269. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDirectorySizeTracker.m +101 -0
  270. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREndpoints.m +92 -0
  271. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m +153 -0
  272. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage+Promises.m +104 -0
  273. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORFlatFileStorage.m +826 -0
  274. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m +119 -0
  275. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m +604 -0
  276. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m +125 -0
  277. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m +157 -0
  278. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorageEventSelector.m +39 -0
  279. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m +111 -0
  280. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m +92 -0
  281. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadBatch.m +30 -0
  282. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m +176 -0
  283. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORAssert.h +95 -0
  284. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORDirectorySizeTracker.h +66 -0
  285. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORLifecycle.h +63 -0
  286. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORPlatform.h +225 -0
  287. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORReachability.h +31 -0
  288. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORRegistrar.h +50 -0
  289. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageEventSelector.h +61 -0
  290. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORStorageProtocol.h +171 -0
  291. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Internal/GDTCORUploader.h +59 -0
  292. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREndpoints_Private.h +27 -0
  293. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h +33 -0
  294. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage+Promises.h +28 -0
  295. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORFlatFileStorage.h +158 -0
  296. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h +30 -0
  297. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h +35 -0
  298. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h +57 -0
  299. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h +37 -0
  300. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h +39 -0
  301. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadBatch.h +37 -0
  302. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h +68 -0
  303. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORClock.h +66 -0
  304. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORConsoleLogger.h +144 -0
  305. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREndpoints.h +36 -0
  306. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREvent.h +87 -0
  307. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventDataObject.h +36 -0
  308. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCOREventTransformer.h +38 -0
  309. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTargets.h +40 -0
  310. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GDTCORTransport.h +92 -0
  311. data/examples/AExample/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport/GoogleDataTransport.h +24 -0
  312. data/examples/AExample/Pods/GoogleDataTransport/LICENSE +202 -0
  313. data/examples/AExample/Pods/GoogleDataTransport/README.md +231 -0
  314. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m +1070 -0
  315. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULSceneDelegateSwizzler.m +439 -0
  316. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h +55 -0
  317. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h +48 -0
  318. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h +107 -0
  319. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULApplication.h +50 -0
  320. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h +76 -0
  321. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h +56 -0
  322. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m +153 -0
  323. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorageUserDefaults.m +68 -0
  324. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m +103 -0
  325. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h +60 -0
  326. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorable.h +40 -0
  327. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorage.h +54 -0
  328. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorageUserDefaults.h +51 -0
  329. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h +79 -0
  330. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h +61 -0
  331. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULSecureCoding.h +36 -0
  332. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/GULURLSessionDataResponse.h +31 -0
  333. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GoogleUtilities/NSURLSession+GULPromises.h +37 -0
  334. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m +192 -0
  335. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m +113 -0
  336. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/GULURLSessionDataResponse.m +30 -0
  337. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/URLSessionPromiseWrapper/NSURLSession+GULPromises.m +46 -0
  338. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m +333 -0
  339. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m +215 -0
  340. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h +159 -0
  341. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h +37 -0
  342. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m +153 -0
  343. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULOriginalIMPConvenienceMacros.h +207 -0
  344. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/GULSwizzler.h +71 -0
  345. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m +207 -0
  346. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/Public/GoogleUtilities/GULNSData+zlib.h +49 -0
  347. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m +101 -0
  348. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m +390 -0
  349. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m +41 -0
  350. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkInternal.h +24 -0
  351. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m +766 -0
  352. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h +46 -0
  353. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetwork.h +87 -0
  354. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkConstants.h +71 -0
  355. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkLoggerProtocol.h +49 -0
  356. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkMessageCode.h +47 -0
  357. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Network/Public/GoogleUtilities/GULNetworkURLSession.h +62 -0
  358. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h +48 -0
  359. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m +263 -0
  360. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityMessageCode.h +29 -0
  361. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/Reachability/Public/GoogleUtilities/GULReachabilityChecker.h +79 -0
  362. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m +213 -0
  363. data/examples/AExample/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h +110 -0
  364. data/examples/AExample/Pods/GoogleUtilities/LICENSE +247 -0
  365. data/examples/AExample/Pods/GoogleUtilities/README.md +189 -0
  366. data/examples/AExample/Pods/Manifest.lock +112 -0
  367. data/examples/AExample/Pods/Pods.xcodeproj/project.pbxproj +3670 -0
  368. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseAnalytics.xcscheme +58 -0
  369. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCore.xcscheme +58 -0
  370. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseCoreDiagnostics.xcscheme +58 -0
  371. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/FirebaseInstallations.xcscheme +58 -0
  372. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleAppMeasurement.xcscheme +58 -0
  373. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleDataTransport.xcscheme +58 -0
  374. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/GoogleUtilities.xcscheme +58 -0
  375. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample-AExampleCP.xcscheme +58 -0
  376. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/Pods-AExample.xcscheme +58 -0
  377. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/PromisesObjC.xcscheme +58 -0
  378. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/nanopb.xcscheme +58 -0
  379. data/examples/AExample/Pods/Pods.xcodeproj/xcuserdata/xuzhongping.xcuserdatad/xcschemes/xcschememanagement.plist +66 -0
  380. data/examples/AExample/Pods/PromisesObjC/LICENSE +202 -0
  381. data/examples/AExample/Pods/PromisesObjC/README.md +60 -0
  382. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+All.m +86 -0
  383. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Always.m +58 -0
  384. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Any.m +112 -0
  385. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Async.m +70 -0
  386. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Await.m +48 -0
  387. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Catch.m +55 -0
  388. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Delay.m +59 -0
  389. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Do.m +59 -0
  390. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Race.m +65 -0
  391. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Recover.m +54 -0
  392. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Reduce.m +61 -0
  393. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Retry.m +128 -0
  394. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Testing.m +55 -0
  395. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Then.m +50 -0
  396. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Timeout.m +64 -0
  397. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Validate.m +56 -0
  398. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise+Wrap.m +420 -0
  399. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromise.m +299 -0
  400. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/FBLPromiseError.m +19 -0
  401. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+All.h +63 -0
  402. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Always.h +54 -0
  403. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Any.h +69 -0
  404. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Async.h +60 -0
  405. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Await.h +32 -0
  406. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Catch.h +59 -0
  407. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Delay.h +59 -0
  408. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Do.h +55 -0
  409. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Race.h +62 -0
  410. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Recover.h +60 -0
  411. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Reduce.h +71 -0
  412. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Retry.h +165 -0
  413. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Testing.h +57 -0
  414. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Then.h +63 -0
  415. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Timeout.h +57 -0
  416. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Validate.h +60 -0
  417. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h +316 -0
  418. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise.h +93 -0
  419. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromiseError.h +43 -0
  420. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromisePrivate.h +66 -0
  421. data/examples/AExample/Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromises.h +32 -0
  422. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-input-files.xcfilelist +2 -0
  423. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks-output-files.xcfilelist +1 -0
  424. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh +109 -0
  425. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.debug.xcconfig +13 -0
  426. data/examples/AExample/Pods/Target Support Files/FirebaseAnalytics/FirebaseAnalytics.release.xcconfig +13 -0
  427. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist +26 -0
  428. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-dummy.m +5 -0
  429. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore-umbrella.h +22 -0
  430. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig +16 -0
  431. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.modulemap +6 -0
  432. data/examples/AExample/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig +16 -0
  433. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-Info.plist +26 -0
  434. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-dummy.m +5 -0
  435. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics-umbrella.h +17 -0
  436. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.debug.xcconfig +17 -0
  437. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.modulemap +6 -0
  438. data/examples/AExample/Pods/Target Support Files/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.release.xcconfig +17 -0
  439. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist +26 -0
  440. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-dummy.m +5 -0
  441. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-umbrella.h +20 -0
  442. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.debug.xcconfig +15 -0
  443. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap +6 -0
  444. data/examples/AExample/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations.release.xcconfig +15 -0
  445. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-input-files.xcfilelist +3 -0
  446. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks-output-files.xcfilelist +2 -0
  447. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh +110 -0
  448. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.debug.xcconfig +13 -0
  449. data/examples/AExample/Pods/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement.release.xcconfig +13 -0
  450. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-Info.plist +26 -0
  451. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-dummy.m +5 -0
  452. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport-umbrella.h +25 -0
  453. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.debug.xcconfig +16 -0
  454. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.modulemap +6 -0
  455. data/examples/AExample/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.release.xcconfig +16 -0
  456. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist +26 -0
  457. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-dummy.m +5 -0
  458. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities-umbrella.h +41 -0
  459. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.debug.xcconfig +15 -0
  460. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.modulemap +6 -0
  461. data/examples/AExample/Pods/Target Support Files/GoogleUtilities/GoogleUtilities.release.xcconfig +15 -0
  462. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-Info.plist +26 -0
  463. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.markdown +1316 -0
  464. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-acknowledgements.plist +1396 -0
  465. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-dummy.m +5 -0
  466. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-input-files.xcfilelist +8 -0
  467. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Debug-output-files.xcfilelist +7 -0
  468. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-input-files.xcfilelist +8 -0
  469. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks-Release-output-files.xcfilelist +7 -0
  470. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-frameworks.sh +198 -0
  471. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample-umbrella.h +16 -0
  472. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.debug.xcconfig +12 -0
  473. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.modulemap +6 -0
  474. data/examples/AExample/Pods/Target Support Files/Pods-AExample/Pods-AExample.release.xcconfig +12 -0
  475. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-Info.plist +26 -0
  476. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.markdown +1316 -0
  477. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-acknowledgements.plist +1396 -0
  478. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-dummy.m +5 -0
  479. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-input-files.xcfilelist +8 -0
  480. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Debug-output-files.xcfilelist +7 -0
  481. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-input-files.xcfilelist +8 -0
  482. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks-Release-output-files.xcfilelist +7 -0
  483. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-frameworks.sh +198 -0
  484. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP-umbrella.h +16 -0
  485. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.debug.xcconfig +12 -0
  486. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.modulemap +6 -0
  487. data/examples/AExample/Pods/Target Support Files/Pods-AExample-AExampleCP/Pods-AExample-AExampleCP.release.xcconfig +12 -0
  488. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-Info.plist +26 -0
  489. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-dummy.m +5 -0
  490. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC-umbrella.h +36 -0
  491. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.debug.xcconfig +12 -0
  492. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.modulemap +6 -0
  493. data/examples/AExample/Pods/Target Support Files/PromisesObjC/PromisesObjC.release.xcconfig +12 -0
  494. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-Info.plist +26 -0
  495. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-dummy.m +5 -0
  496. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-prefix.pch +12 -0
  497. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb-umbrella.h +26 -0
  498. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.debug.xcconfig +11 -0
  499. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.modulemap +6 -0
  500. data/examples/AExample/Pods/Target Support Files/nanopb/nanopb.release.xcconfig +11 -0
  501. data/examples/AExample/Pods/nanopb/LICENSE.txt +20 -0
  502. data/examples/AExample/Pods/nanopb/README.md +71 -0
  503. data/examples/AExample/Pods/nanopb/pb.h +599 -0
  504. data/examples/AExample/Pods/nanopb/pb_common.c +97 -0
  505. data/examples/AExample/Pods/nanopb/pb_common.h +42 -0
  506. data/examples/AExample/Pods/nanopb/pb_decode.c +1564 -0
  507. data/examples/AExample/Pods/nanopb/pb_decode.h +178 -0
  508. data/examples/AExample/Pods/nanopb/pb_encode.c +913 -0
  509. data/examples/AExample/Pods/nanopb/pb_encode.h +170 -0
  510. data/lib/cocoapods-catalyst-validator/cocoapods-catalyst-validator.rb +110 -0
  511. data/lib/cocoapods-catalyst-validator/gem_version.rb +3 -0
  512. data/lib/cocoapods_plugin.rb +3 -0
  513. data/spec/command/validator_spec.rb +12 -0
  514. data/spec/spec_helper.rb +50 -0
  515. metadata +601 -0
@@ -0,0 +1,439 @@
1
+ // Copyright 2019 Google LLC
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 <TargetConditionals.h>
16
+
17
+ #import "GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h"
18
+
19
+ #import "GoogleUtilities/AppDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h"
20
+ #import "GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h"
21
+ #import "GoogleUtilities/Common/GULLoggerCodes.h"
22
+ #import "GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h"
23
+ #import "GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h"
24
+ #import "GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h"
25
+
26
+ #import <objc/runtime.h>
27
+
28
+ #if UISCENE_SUPPORTED
29
+ API_AVAILABLE(ios(13.0), tvos(13.0))
30
+ typedef void (*GULOpenURLContextsIMP)(id, SEL, UIScene *, NSSet<UIOpenURLContext *> *);
31
+
32
+ API_AVAILABLE(ios(13.0), tvos(13.0))
33
+ typedef void (^GULSceneDelegateInterceptorCallback)(id<UISceneDelegate>);
34
+
35
+ // The strings below are the keys for associated objects.
36
+ static char const *const kGULRealIMPBySelectorKey = "GUL_realIMPBySelector";
37
+ static char const *const kGULRealClassKey = "GUL_realClass";
38
+ #endif // UISCENE_SUPPORTED
39
+
40
+ static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilities/SceneDelegateSwizzler]";
41
+
42
+ // Since Firebase SDKs also use this for app delegate proxying, in order to not be a breaking change
43
+ // we disable App Delegate proxying when either of these two flags are set to NO.
44
+
45
+ /** Plist key that allows Firebase developers to disable App and Scene Delegate Proxying. */
46
+ static NSString *const kGULFirebaseSceneDelegateProxyEnabledPlistKey =
47
+ @"FirebaseAppDelegateProxyEnabled";
48
+
49
+ /** Plist key that allows developers not using Firebase to disable App and Scene Delegate Proxying.
50
+ */
51
+ static NSString *const kGULGoogleUtilitiesSceneDelegateProxyEnabledPlistKey =
52
+ @"GoogleUtilitiesAppDelegateProxyEnabled";
53
+
54
+ /** The prefix of the Scene Delegate. */
55
+ static NSString *const kGULSceneDelegatePrefix = @"GUL_";
56
+
57
+ /**
58
+ * This class is necessary to store the delegates in an NSArray without retaining them.
59
+ * [NSValue valueWithNonRetainedObject] also provides this functionality, but does not provide a
60
+ * zeroing pointer. This will cause EXC_BAD_ACCESS when trying to access the object after it is
61
+ * dealloced. Instead, this container stores a weak, zeroing reference to the object, which
62
+ * automatically is set to nil by the runtime when the object is dealloced.
63
+ */
64
+ @interface GULSceneZeroingWeakContainer : NSObject
65
+
66
+ /** Stores a weak object. */
67
+ @property(nonatomic, weak) id object;
68
+
69
+ @end
70
+
71
+ @implementation GULSceneZeroingWeakContainer
72
+ @end
73
+
74
+ @implementation GULSceneDelegateSwizzler
75
+
76
+ #pragma mark - Public methods
77
+
78
+ + (BOOL)isSceneDelegateProxyEnabled {
79
+ return [GULAppDelegateSwizzler isAppDelegateProxyEnabled];
80
+ }
81
+
82
+ + (void)proxyOriginalSceneDelegate {
83
+ #if UISCENE_SUPPORTED
84
+ if ([GULAppEnvironmentUtil isAppExtension]) {
85
+ return;
86
+ }
87
+
88
+ static dispatch_once_t onceToken;
89
+ dispatch_once(&onceToken, ^{
90
+ if (@available(iOS 13.0, tvOS 13.0, *)) {
91
+ if (![GULSceneDelegateSwizzler isSceneDelegateProxyEnabled]) {
92
+ return;
93
+ }
94
+ [[NSNotificationCenter defaultCenter]
95
+ addObserver:self
96
+ selector:@selector(handleSceneWillConnectToNotification:)
97
+ name:UISceneWillConnectNotification
98
+ object:nil];
99
+ }
100
+ });
101
+ #endif // UISCENE_SUPPORTED
102
+ }
103
+
104
+ #if UISCENE_SUPPORTED
105
+ + (GULSceneDelegateInterceptorID)registerSceneDelegateInterceptor:(id<UISceneDelegate>)interceptor {
106
+ NSAssert(interceptor, @"SceneDelegateProxy cannot add nil interceptor");
107
+ NSAssert([interceptor conformsToProtocol:@protocol(UISceneDelegate)],
108
+ @"SceneDelegateProxy interceptor does not conform to UIApplicationDelegate");
109
+
110
+ if (!interceptor) {
111
+ GULLogError(kGULLoggerSwizzler, NO,
112
+ [NSString stringWithFormat:@"I-SWZ%06ld",
113
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling000],
114
+ @"SceneDelegateProxy cannot add nil interceptor.");
115
+ return nil;
116
+ }
117
+ if (![interceptor conformsToProtocol:@protocol(UISceneDelegate)]) {
118
+ GULLogError(kGULLoggerSwizzler, NO,
119
+ [NSString stringWithFormat:@"I-SWZ%06ld",
120
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling001],
121
+ @"SceneDelegateProxy interceptor does not conform to UIApplicationDelegate");
122
+ return nil;
123
+ }
124
+
125
+ // The ID should be the same given the same interceptor object.
126
+ NSString *interceptorID =
127
+ [NSString stringWithFormat:@"%@%p", kGULSceneDelegatePrefix, interceptor];
128
+ if (!interceptorID.length) {
129
+ GULLogError(kGULLoggerSwizzler, NO,
130
+ [NSString stringWithFormat:@"I-SWZ%06ld",
131
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling002],
132
+ @"SceneDelegateProxy cannot create Interceptor ID.");
133
+ return nil;
134
+ }
135
+ GULSceneZeroingWeakContainer *weakObject = [[GULSceneZeroingWeakContainer alloc] init];
136
+ weakObject.object = interceptor;
137
+ [GULSceneDelegateSwizzler interceptors][interceptorID] = weakObject;
138
+ return interceptorID;
139
+ }
140
+
141
+ + (void)unregisterSceneDelegateInterceptorWithID:(GULSceneDelegateInterceptorID)interceptorID {
142
+ NSAssert(interceptorID, @"SceneDelegateProxy cannot unregister nil interceptor ID.");
143
+ NSAssert(((NSString *)interceptorID).length != 0,
144
+ @"SceneDelegateProxy cannot unregister empty interceptor ID.");
145
+
146
+ if (!interceptorID) {
147
+ GULLogError(kGULLoggerSwizzler, NO,
148
+ [NSString stringWithFormat:@"I-SWZ%06ld",
149
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling003],
150
+ @"SceneDelegateProxy cannot unregister empty interceptor ID.");
151
+ return;
152
+ }
153
+
154
+ GULSceneZeroingWeakContainer *weakContainer =
155
+ [GULSceneDelegateSwizzler interceptors][interceptorID];
156
+ if (!weakContainer.object) {
157
+ GULLogError(kGULLoggerSwizzler, NO,
158
+ [NSString stringWithFormat:@"I-SWZ%06ld",
159
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling004],
160
+ @"SceneDelegateProxy cannot unregister interceptor that was not registered. "
161
+ "Interceptor ID %@",
162
+ interceptorID);
163
+ return;
164
+ }
165
+
166
+ [[GULSceneDelegateSwizzler interceptors] removeObjectForKey:interceptorID];
167
+ }
168
+
169
+ #pragma mark - Helper methods
170
+
171
+ + (GULMutableDictionary *)interceptors {
172
+ static dispatch_once_t onceToken;
173
+ static GULMutableDictionary *sInterceptors;
174
+ dispatch_once(&onceToken, ^{
175
+ sInterceptors = [[GULMutableDictionary alloc] init];
176
+ });
177
+ return sInterceptors;
178
+ }
179
+
180
+ + (void)clearInterceptors {
181
+ [[self interceptors] removeAllObjects];
182
+ }
183
+
184
+ + (nullable NSValue *)originalImplementationForSelector:(SEL)selector object:(id)object {
185
+ NSDictionary *realImplementationBySelector =
186
+ objc_getAssociatedObject(object, &kGULRealIMPBySelectorKey);
187
+ return realImplementationBySelector[NSStringFromSelector(selector)];
188
+ }
189
+
190
+ + (void)proxyDestinationSelector:(SEL)destinationSelector
191
+ implementationsFromSourceSelector:(SEL)sourceSelector
192
+ fromClass:(Class)sourceClass
193
+ toClass:(Class)destinationClass
194
+ realClass:(Class)realClass
195
+ storeDestinationImplementationTo:
196
+ (NSMutableDictionary<NSString *, NSValue *> *)destinationImplementationsBySelector {
197
+ [self addInstanceMethodWithDestinationSelector:destinationSelector
198
+ withImplementationFromSourceSelector:sourceSelector
199
+ fromClass:sourceClass
200
+ toClass:destinationClass];
201
+ IMP sourceImplementation =
202
+ [GULSceneDelegateSwizzler implementationOfMethodSelector:destinationSelector
203
+ fromClass:realClass];
204
+ NSValue *sourceImplementationPointer = [NSValue valueWithPointer:sourceImplementation];
205
+
206
+ NSString *destinationSelectorString = NSStringFromSelector(destinationSelector);
207
+ destinationImplementationsBySelector[destinationSelectorString] = sourceImplementationPointer;
208
+ }
209
+
210
+ /** Copies a method identified by the methodSelector from one class to the other. After this method
211
+ * is called, performing [toClassInstance methodSelector] will be similar to calling
212
+ * [fromClassInstance methodSelector]. This method does nothing if toClass already has a method
213
+ * identified by methodSelector.
214
+ *
215
+ * @param methodSelector The SEL that identifies both the method on the fromClass as well as the
216
+ * one on the toClass.
217
+ * @param fromClass The class from which a method is sourced.
218
+ * @param toClass The class to which the method is added. If the class already has a method with
219
+ * the same selector, this has no effect.
220
+ */
221
+ + (void)addInstanceMethodWithSelector:(SEL)methodSelector
222
+ fromClass:(Class)fromClass
223
+ toClass:(Class)toClass {
224
+ [self addInstanceMethodWithDestinationSelector:methodSelector
225
+ withImplementationFromSourceSelector:methodSelector
226
+ fromClass:fromClass
227
+ toClass:toClass];
228
+ }
229
+
230
+ /** Copies a method identified by the sourceSelector from the fromClass as a method for the
231
+ * destinationSelector on the toClass. After this method is called, performing
232
+ * [toClassInstance destinationSelector] will be similar to calling
233
+ * [fromClassInstance sourceSelector]. This method does nothing if toClass already has a method
234
+ * identified by destinationSelector.
235
+ *
236
+ * @param destinationSelector The SEL that identifies the method on the toClass.
237
+ * @param sourceSelector The SEL that identifies the method on the fromClass.
238
+ * @param fromClass The class from which a method is sourced.
239
+ * @param toClass The class to which the method is added. If the class already has a method with
240
+ * the same selector, this has no effect.
241
+ */
242
+ + (void)addInstanceMethodWithDestinationSelector:(SEL)destinationSelector
243
+ withImplementationFromSourceSelector:(SEL)sourceSelector
244
+ fromClass:(Class)fromClass
245
+ toClass:(Class)toClass {
246
+ Method method = class_getInstanceMethod(fromClass, sourceSelector);
247
+ IMP methodIMP = method_getImplementation(method);
248
+ const char *types = method_getTypeEncoding(method);
249
+ if (!class_addMethod(toClass, destinationSelector, methodIMP, types)) {
250
+ GULLogWarning(
251
+ kGULLoggerSwizzler, NO,
252
+ [NSString
253
+ stringWithFormat:@"I-SWZ%06ld", (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling009],
254
+ @"Cannot copy method to destination selector %@ as it already exists",
255
+ NSStringFromSelector(destinationSelector));
256
+ }
257
+ }
258
+
259
+ /** Gets the IMP of the instance method on the class identified by the selector.
260
+ *
261
+ * @param selector The selector of which the IMP is to be fetched.
262
+ * @param aClass The class from which the IMP is to be fetched.
263
+ * @return The IMP of the instance method identified by selector and aClass.
264
+ */
265
+ + (IMP)implementationOfMethodSelector:(SEL)selector fromClass:(Class)aClass {
266
+ Method aMethod = class_getInstanceMethod(aClass, selector);
267
+ return method_getImplementation(aMethod);
268
+ }
269
+
270
+ /** Enumerates through all the interceptors and if they respond to a given selector, executes a
271
+ * GULSceneDelegateInterceptorCallback with the interceptor.
272
+ *
273
+ * @param methodSelector The SEL to check if an interceptor responds to.
274
+ * @param callback the GULSceneDelegateInterceptorCallback.
275
+ */
276
+ + (void)notifyInterceptorsWithMethodSelector:(SEL)methodSelector
277
+ callback:(GULSceneDelegateInterceptorCallback)callback
278
+ API_AVAILABLE(ios(13.0)) {
279
+ if (!callback) {
280
+ return;
281
+ }
282
+
283
+ NSDictionary *interceptors = [GULSceneDelegateSwizzler interceptors].dictionary;
284
+ [interceptors enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
285
+ GULSceneZeroingWeakContainer *interceptorContainer = obj;
286
+ id interceptor = interceptorContainer.object;
287
+ if (!interceptor) {
288
+ GULLogWarning(
289
+ kGULLoggerSwizzler, NO,
290
+ [NSString stringWithFormat:@"I-SWZ%06ld",
291
+ (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling010],
292
+ @"SceneDelegateProxy cannot find interceptor with ID %@. Removing the interceptor.", key);
293
+ [[GULSceneDelegateSwizzler interceptors] removeObjectForKey:key];
294
+ return;
295
+ }
296
+ if ([interceptor respondsToSelector:methodSelector]) {
297
+ callback(interceptor);
298
+ }
299
+ }];
300
+ }
301
+
302
+ + (void)handleSceneWillConnectToNotification:(NSNotification *)notification {
303
+ if (@available(iOS 13.0, tvOS 13.0, *)) {
304
+ if ([notification.object isKindOfClass:[UIScene class]]) {
305
+ UIScene *scene = (UIScene *)notification.object;
306
+ [GULSceneDelegateSwizzler proxySceneDelegateIfNeeded:scene];
307
+ }
308
+ }
309
+ }
310
+
311
+ #pragma mark - [Donor Methods] UISceneDelegate URL handler
312
+
313
+ - (void)scene:(UIScene *)scene
314
+ openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts API_AVAILABLE(ios(13.0), tvos(13.0)) {
315
+ if (@available(iOS 13.0, tvOS 13.0, *)) {
316
+ SEL methodSelector = @selector(scene:openURLContexts:);
317
+ // Call the real implementation if the real Scene Delegate has any.
318
+ NSValue *openURLContextsIMPPointer =
319
+ [GULSceneDelegateSwizzler originalImplementationForSelector:methodSelector object:self];
320
+ GULOpenURLContextsIMP openURLContextsIMP = [openURLContextsIMPPointer pointerValue];
321
+
322
+ [GULSceneDelegateSwizzler
323
+ notifyInterceptorsWithMethodSelector:methodSelector
324
+ callback:^(id<UISceneDelegate> interceptor) {
325
+ if ([interceptor
326
+ conformsToProtocol:@protocol(UISceneDelegate)]) {
327
+ id<UISceneDelegate> sceneInterceptor =
328
+ (id<UISceneDelegate>)interceptor;
329
+ [sceneInterceptor scene:scene openURLContexts:URLContexts];
330
+ }
331
+ }];
332
+
333
+ if (openURLContextsIMP) {
334
+ openURLContextsIMP(self, methodSelector, scene, URLContexts);
335
+ }
336
+ }
337
+ }
338
+
339
+ + (void)proxySceneDelegateIfNeeded:(UIScene *)scene {
340
+ Class realClass = [scene.delegate class];
341
+ NSString *className = NSStringFromClass(realClass);
342
+
343
+ // Skip proxying if failed to get the delegate class name for some reason (e.g. `delegate == nil`)
344
+ // or the class has a prefix of kGULAppDelegatePrefix, which means it has been proxied before.
345
+ if (className == nil || [className hasPrefix:kGULSceneDelegatePrefix]) {
346
+ return;
347
+ }
348
+
349
+ NSString *classNameWithPrefix = [kGULSceneDelegatePrefix stringByAppendingString:className];
350
+ NSString *newClassName =
351
+ [NSString stringWithFormat:@"%@-%@", classNameWithPrefix, [NSUUID UUID].UUIDString];
352
+
353
+ if (NSClassFromString(newClassName)) {
354
+ GULLogError(
355
+ kGULLoggerSwizzler, NO,
356
+ [NSString
357
+ stringWithFormat:@"I-SWZ%06ld",
358
+ (long)
359
+ kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate],
360
+ @"Cannot create a proxy for Scene Delegate. Subclass already exists. Original Class"
361
+ @": %@, subclass: %@",
362
+ className, newClassName);
363
+ return;
364
+ }
365
+
366
+ // Register the new class as subclass of the real one. Do not allocate more than the real class
367
+ // size.
368
+ Class sceneDelegateSubClass = objc_allocateClassPair(realClass, newClassName.UTF8String, 0);
369
+ if (sceneDelegateSubClass == Nil) {
370
+ GULLogError(
371
+ kGULLoggerSwizzler, NO,
372
+ [NSString
373
+ stringWithFormat:@"I-SWZ%06ld",
374
+ (long)
375
+ kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate],
376
+ @"Cannot create a proxy for Scene Delegate. Subclass already exists. Original Class"
377
+ @": %@, subclass: Nil",
378
+ className);
379
+ return;
380
+ }
381
+
382
+ NSMutableDictionary<NSString *, NSValue *> *realImplementationsBySelector =
383
+ [[NSMutableDictionary alloc] init];
384
+
385
+ // For scene:openURLContexts:
386
+ SEL openURLContextsSEL = @selector(scene:openURLContexts:);
387
+ [self proxyDestinationSelector:openURLContextsSEL
388
+ implementationsFromSourceSelector:openURLContextsSEL
389
+ fromClass:[GULSceneDelegateSwizzler class]
390
+ toClass:sceneDelegateSubClass
391
+ realClass:realClass
392
+ storeDestinationImplementationTo:realImplementationsBySelector];
393
+
394
+ // Store original implementations to a fake property of the original delegate.
395
+ objc_setAssociatedObject(scene.delegate, &kGULRealIMPBySelectorKey,
396
+ [realImplementationsBySelector copy], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
397
+ objc_setAssociatedObject(scene.delegate, &kGULRealClassKey, realClass,
398
+ OBJC_ASSOCIATION_RETAIN_NONATOMIC);
399
+
400
+ // The subclass size has to be exactly the same size with the original class size. The subclass
401
+ // cannot have more ivars/properties than its superclass since it will cause an offset in memory
402
+ // that can lead to overwriting the isa of an object in the next frame.
403
+ if (class_getInstanceSize(realClass) != class_getInstanceSize(sceneDelegateSubClass)) {
404
+ GULLogError(
405
+ kGULLoggerSwizzler, NO,
406
+ [NSString
407
+ stringWithFormat:@"I-SWZ%06ld",
408
+ (long)
409
+ kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate],
410
+ @"Cannot create subclass of Scene Delegate, because the created subclass is not the "
411
+ @"same size. %@",
412
+ className);
413
+ NSAssert(NO, @"Classes must be the same size to swizzle isa");
414
+ return;
415
+ }
416
+
417
+ // Make the newly created class to be the subclass of the real Scene Delegate class.
418
+ objc_registerClassPair(sceneDelegateSubClass);
419
+ if (object_setClass(scene.delegate, sceneDelegateSubClass)) {
420
+ GULLogDebug(
421
+ kGULLoggerSwizzler, NO,
422
+ [NSString
423
+ stringWithFormat:@"I-SWZ%06ld",
424
+ (long)
425
+ kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate],
426
+ @"Successfully created Scene Delegate Proxy automatically. To disable the "
427
+ @"proxy, set the flag %@ to NO (Boolean) in the Info.plist",
428
+ [GULSceneDelegateSwizzler correctSceneDelegateProxyKey]);
429
+ }
430
+ }
431
+
432
+ + (NSString *)correctSceneDelegateProxyKey {
433
+ return NSClassFromString(@"FIRCore") ? kGULFirebaseSceneDelegateProxyEnabledPlistKey
434
+ : kGULGoogleUtilitiesSceneDelegateProxyEnabledPlistKey;
435
+ }
436
+
437
+ #endif // UISCENE_SUPPORTED
438
+
439
+ @end
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright 2018 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #import <Foundation/Foundation.h>
18
+ #import "GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h"
19
+ #import "GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h"
20
+
21
+ @class GULApplication;
22
+
23
+ NS_ASSUME_NONNULL_BEGIN
24
+
25
+ @interface GULAppDelegateSwizzler ()
26
+
27
+ /** ISA Swizzles the given appDelegate as the original app delegate would be.
28
+ *
29
+ * @param appDelegate The object that needs to be isa swizzled. This should conform to the
30
+ * application delegate protocol.
31
+ */
32
+ + (void)proxyAppDelegate:(id<GULApplicationDelegate>)appDelegate;
33
+
34
+ /** Returns a dictionary containing interceptor IDs mapped to a GULZeroingWeakContainer.
35
+ *
36
+ * @return A dictionary of the form {NSString : GULZeroingWeakContainer}, where the NSString is
37
+ * the interceptorID.
38
+ */
39
+ + (GULMutableDictionary *)interceptors;
40
+
41
+ /** Deletes all the registered interceptors. */
42
+ + (void)clearInterceptors;
43
+
44
+ /** Resets the token that prevents the app delegate proxy from being isa swizzled multiple times. */
45
+ + (void)resetProxyOriginalDelegateOnceToken;
46
+
47
+ /** Returns the original app delegate that was proxied.
48
+ *
49
+ * @return The original app delegate instance that was proxied.
50
+ */
51
+ + (id<GULApplicationDelegate>)originalDelegate;
52
+
53
+ @end
54
+
55
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright 2019 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #import <Foundation/Foundation.h>
18
+ #import "GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULSceneDelegateSwizzler.h"
19
+ #import "GoogleUtilities/Network/Public/GoogleUtilities/GULMutableDictionary.h"
20
+
21
+ NS_ASSUME_NONNULL_BEGIN
22
+
23
+ @interface GULSceneDelegateSwizzler ()
24
+
25
+ #if UISCENE_SUPPORTED
26
+
27
+ /** Returns a dictionary containing interceptor IDs mapped to a GULZeroingWeakContainer.
28
+ *
29
+ * @return A dictionary of the form {NSString : GULZeroingWeakContainer}, where the NSString is
30
+ * the interceptorID.
31
+ */
32
+ + (GULMutableDictionary *)interceptors;
33
+
34
+ /** Deletes all the registered interceptors. */
35
+ + (void)clearInterceptors;
36
+
37
+ /** ISA Swizzles the given appDelegate as the original app delegate would be.
38
+ *
39
+ * @param scene The scene whose delegate needs to be isa swizzled. This should conform to the
40
+ * scene delegate protocol.
41
+ */
42
+ + (void)proxySceneDelegateIfNeeded:(UIScene *)scene API_AVAILABLE(ios(13.0), tvos(13.0));
43
+
44
+ #endif // UISCENE_SUPPORTED
45
+
46
+ @end
47
+
48
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Copyright 2018 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #import <Foundation/Foundation.h>
18
+
19
+ #import "GULApplication.h"
20
+
21
+ NS_ASSUME_NONNULL_BEGIN
22
+
23
+ typedef NSString *const GULAppDelegateInterceptorID;
24
+
25
+ /** This class contains methods that isa swizzle the app delegate. */
26
+ @interface GULAppDelegateSwizzler : NSProxy
27
+
28
+ /** Registers an app delegate interceptor whose methods will be invoked as they're invoked on the
29
+ * original app delegate.
30
+ *
31
+ * @param interceptor An instance of a class that conforms to the application delegate protocol.
32
+ * The interceptor is NOT retained.
33
+ * @return A unique GULAppDelegateInterceptorID if interceptor was successfully registered; nil
34
+ * if it fails.
35
+ */
36
+ + (nullable GULAppDelegateInterceptorID)registerAppDelegateInterceptor:
37
+ (id<GULApplicationDelegate>)interceptor;
38
+
39
+ /** Unregisters an interceptor with the given ID if it exists.
40
+ *
41
+ * @param interceptorID The object that was generated when the interceptor was registered.
42
+ */
43
+ + (void)unregisterAppDelegateInterceptorWithID:(GULAppDelegateInterceptorID)interceptorID;
44
+
45
+ /** This method ensures that the original app delegate has been proxied. Call this before
46
+ * registering your interceptor. This method is safe to call multiple times (but it only proxies
47
+ * the app delegate once).
48
+ *
49
+ * This method doesn't proxy APNS related methods:
50
+ * @code
51
+ * - application:didRegisterForRemoteNotificationsWithDeviceToken:
52
+ * - application:didFailToRegisterForRemoteNotificationsWithError:
53
+ * - application:didReceiveRemoteNotification:fetchCompletionHandler:
54
+ * - application:didReceiveRemoteNotification:
55
+ * @endcode
56
+ *
57
+ * To proxy these methods use +[GULAppDelegateSwizzler
58
+ * proxyOriginalDelegateIncludingAPNSMethods]. The methods have to be proxied separately to
59
+ * avoid potential warnings from Apple review about missing Push Notification Entitlement (e.g.
60
+ * https://github.com/firebase/firebase-ios-sdk/issues/2807)
61
+ *
62
+ * The method has no effect for extensions.
63
+ *
64
+ * @see proxyOriginalDelegateIncludingAPNSMethods
65
+ */
66
+ + (void)proxyOriginalDelegate;
67
+
68
+ /** This method ensures that the original app delegate has been proxied including APNS related
69
+ * methods. Call this before registering your interceptor. This method is safe to call multiple
70
+ * times (but it only proxies the app delegate once) or
71
+ * after +[GULAppDelegateSwizzler proxyOriginalDelegate]
72
+ *
73
+ * This method calls +[GULAppDelegateSwizzler proxyOriginalDelegate] under the hood.
74
+ * After calling this method the following App Delegate methods will be proxied in addition to
75
+ * the methods proxied by proxyOriginalDelegate:
76
+ * @code
77
+ * - application:didRegisterForRemoteNotificationsWithDeviceToken:
78
+ * - application:didFailToRegisterForRemoteNotificationsWithError:
79
+ * - application:didReceiveRemoteNotification:fetchCompletionHandler:
80
+ * - application:didReceiveRemoteNotification:
81
+ * @endcode
82
+ *
83
+ * The method has no effect for extensions.
84
+ *
85
+ * @see proxyOriginalDelegate
86
+ */
87
+ + (void)proxyOriginalDelegateIncludingAPNSMethods;
88
+
89
+ /** Indicates whether app delegate proxy is explicitly disabled or enabled. Enabled by default.
90
+ *
91
+ * @return YES if AppDelegateProxy is Enabled, NO otherwise.
92
+ */
93
+ + (BOOL)isAppDelegateProxyEnabled;
94
+
95
+ /** Returns the current sharedApplication.
96
+ *
97
+ * @return the current application instance if in an app, or nil if in extension or if it doesn't
98
+ * exist.
99
+ */
100
+ + (nullable GULApplication *)sharedApplication;
101
+
102
+ /** Do not initialize this class. */
103
+ - (instancetype)init NS_UNAVAILABLE;
104
+
105
+ NS_ASSUME_NONNULL_END
106
+
107
+ @end