Просмотр исходного кода

Git submodules & cocoapods setup

xcbosa mbp16 2 лет назад
Родитель
Сommit
f18c778085
28 измененных файлов с 754 добавлено и 74 удалено
  1. 1 0
      .gitignore
  2. 3 0
      .gitmodules
  3. 18 0
      ComponentizationDemo.xcodeproj/project.pbxproj
  4. 0 14
      ComponentizationDemo.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/xcschememanagement.plist
  5. 1 0
      Modules/XCComponentization
  6. 6 0
      Podfile
  7. 14 1
      Podfile.lock
  8. 22 0
      Pods/Local Podspecs/XCComponentization.podspec.json
  9. 14 1
      Pods/Manifest.lock
  10. 271 58
      Pods/Pods.xcodeproj/project.pbxproj
  11. 58 0
      Pods/Pods.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/XCComponentization.xcscheme
  12. 7 0
      Pods/Pods.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/xcschememanagement.plist
  13. 23 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-acknowledgements.markdown
  14. 29 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-acknowledgements.plist
  15. 2 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Debug-input-files.xcfilelist
  16. 1 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Debug-output-files.xcfilelist
  17. 2 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Release-input-files.xcfilelist
  18. 1 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Release-output-files.xcfilelist
  19. 186 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks.sh
  20. 4 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.debug.xcconfig
  21. 4 0
      Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.release.xcconfig
  22. 26 0
      Pods/Target Support Files/XCComponentization/XCComponentization-Info.plist
  23. 5 0
      Pods/Target Support Files/XCComponentization/XCComponentization-dummy.m
  24. 12 0
      Pods/Target Support Files/XCComponentization/XCComponentization-prefix.pch
  25. 16 0
      Pods/Target Support Files/XCComponentization/XCComponentization-umbrella.h
  26. 11 0
      Pods/Target Support Files/XCComponentization/XCComponentization.debug.xcconfig
  27. 6 0
      Pods/Target Support Files/XCComponentization/XCComponentization.modulemap
  28. 11 0
      Pods/Target Support Files/XCComponentization/XCComponentization.release.xcconfig

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+ComponentizationDemo.xcodeproj/xcuserdata

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "Modules/XCComponentization"]
+	path = Modules/XCComponentization
+	url = https://git.forgetive.org/Componentization/XCComponentization.git

+ 18 - 0
ComponentizationDemo.xcodeproj/project.pbxproj

@@ -112,6 +112,7 @@
 				75F49F432A5911DB000E2160 /* Sources */,
 				75F49F442A5911DB000E2160 /* Frameworks */,
 				75F49F452A5911DB000E2160 /* Resources */,
+				44DD950CFABDE9C20274E7B6 /* [CP] Embed Pods Frameworks */,
 			);
 			buildRules = (
 			);
@@ -168,6 +169,23 @@
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
+		44DD950CFABDE9C20274E7B6 /* [CP] Embed Pods Frameworks */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+				"${PODS_ROOT}/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+			);
+			name = "[CP] Embed Pods Frameworks";
+			outputFileListPaths = (
+				"${PODS_ROOT}/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks.sh\"\n";
+			showEnvVarsInLog = 0;
+		};
 		C63F12A538A01FBB065208E9 /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;

+ 0 - 14
ComponentizationDemo.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>SchemeUserState</key>
-	<dict>
-		<key>ComponentizationDemo.xcscheme_^#shared#^_</key>
-		<dict>
-			<key>orderHint</key>
-			<integer>1</integer>
-		</dict>
-	</dict>
-</dict>
-</plist>

+ 1 - 0
Modules/XCComponentization

@@ -0,0 +1 @@
+Subproject commit a806c686f9bd14c0b51fc00e27dc679bb1687a65

+ 6 - 0
Podfile

@@ -1,10 +1,16 @@
 # Uncomment the next line to define a global platform for your project
 # platform :ios, '9.0'
 
+source 'https://git.forgetive.org/Componentization/CMPodSpec.git'
+
 target 'ComponentizationDemo' do
   # Comment the next line if you don't want to use dynamic frameworks
   use_frameworks!
+  
+  # pod 'XCComponentization'
 
   # Pods for ComponentizationDemo
+  
+  pod 'XCComponentization', :path => './Modules/XCComponentization', :modular_headers => true
 
 end

+ 14 - 1
Podfile.lock

@@ -1,3 +1,16 @@
-PODFILE CHECKSUM: 5652b5d74f7e89395f6c76a807fb2daf20b07a07
+PODS:
+  - XCComponentization (0.1.0)
+
+DEPENDENCIES:
+  - XCComponentization (from `./Modules/XCComponentization`)
+
+EXTERNAL SOURCES:
+  XCComponentization:
+    :path: "./Modules/XCComponentization"
+
+SPEC CHECKSUMS:
+  XCComponentization: 77602a14f10ff327f382f92661e55e81d988248b
+
+PODFILE CHECKSUM: 4b4b4d61652e645db85fd04553e21e1d8edae780
 
 COCOAPODS: 1.11.3

+ 22 - 0
Pods/Local Podspecs/XCComponentization.podspec.json

@@ -0,0 +1,22 @@
+{
+  "name": "XCComponentization",
+  "version": "0.1.0",
+  "summary": "A short description of XCComponentization.",
+  "description": "TODO: Add long description of the pod here.",
+  "homepage": "https://git.forgetive.org/Componentization/XCComponentization.git",
+  "license": {
+    "type": "MIT",
+    "file": "LICENSE"
+  },
+  "authors": {
+    "xcbosa mbp16": "xcbosa@forgetive.org"
+  },
+  "source": {
+    "git": "https://git.forgetive.org/Componentization/XCComponentization.git",
+    "tag": "0.1.0"
+  },
+  "platforms": {
+    "ios": "10.0"
+  },
+  "source_files": "XCComponentization/Classes/**/*"
+}

+ 14 - 1
Pods/Manifest.lock

@@ -1,3 +1,16 @@
-PODFILE CHECKSUM: 5652b5d74f7e89395f6c76a807fb2daf20b07a07
+PODS:
+  - XCComponentization (0.1.0)
+
+DEPENDENCIES:
+  - XCComponentization (from `./Modules/XCComponentization`)
+
+EXTERNAL SOURCES:
+  XCComponentization:
+    :path: "./Modules/XCComponentization"
+
+SPEC CHECKSUMS:
+  XCComponentization: 77602a14f10ff327f382f92661e55e81d988248b
+
+PODFILE CHECKSUM: 4b4b4d61652e645db85fd04553e21e1d8edae780
 
 COCOAPODS: 1.11.3

+ 271 - 58
Pods/Pods.xcodeproj/project.pbxproj

@@ -7,43 +7,79 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		0DAE8CD3EA08B283F15ED773E6EB6FAF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
-		889B9E41A18D70C1CA5B1A7F7B303B46 /* Pods-ComponentizationDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D540ACDA7E8845AA14F8BBCCD58F40ED /* Pods-ComponentizationDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		B7E263E03BF316EB97C9D00CF0ACA354 /* Pods-ComponentizationDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D5DFD920F3D320A277A8ADD7F00FE3D6 /* Pods-ComponentizationDemo-dummy.m */; };
+		07F82E7A04B06FC17A452A155C45A45E /* XCComponentization-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 953EAF515DD637704F441379D48B1659 /* XCComponentization-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		14A48172C4D61058F2A71D8A12D2FFC6 /* Pods-ComponentizationDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E03DE98B3EE917A2534CC6B1047257CC /* Pods-ComponentizationDemo-dummy.m */; };
+		1CA772CB065CA84D549713393CC38C3A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
+		615AF392214E81357136E6191697AF83 /* XCComponentization-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CBFDAF2DD081FA0A3FCA2A05425C68CB /* XCComponentization-dummy.m */; };
+		9BB083DC3ECB5635AB92D42576D75298 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
+		BFFA2355B8F3FDE6B218C2B4F9740514 /* ReplaceMe.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B88FADB6A3536ABCA2DB83A4E25C16D /* ReplaceMe.m */; };
+		F4DC5D5284FE4A59A687AC0B5F636499 /* Pods-ComponentizationDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C6E66C0C8ED786CB9C7240DFD631FC /* Pods-ComponentizationDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
 /* End PBXBuildFile section */
 
+/* Begin PBXContainerItemProxy section */
+		378210127D30B8A39F634E823388E503 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = C73C7A88EE757EDE3645B8664E7EAD08;
+			remoteInfo = XCComponentization;
+		};
+/* End PBXContainerItemProxy section */
+
 /* Begin PBXFileReference section */
-		14E4405B4F41F1FD6C8AB1BA181C1686 /* Pods-ComponentizationDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ComponentizationDemo-Info.plist"; sourceTree = "<group>"; };
-		2AA04D5B8D7E91CA2E50E7DFB4BF51E4 /* Pods-ComponentizationDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ComponentizationDemo.release.xcconfig"; sourceTree = "<group>"; };
-		4FA6DCD51052A737118BF41AA5BBF06A /* Pods-ComponentizationDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ComponentizationDemo-acknowledgements.markdown"; sourceTree = "<group>"; };
+		071F363EE336AB92B522951B52F05591 /* Pods-ComponentizationDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ComponentizationDemo-acknowledgements.plist"; sourceTree = "<group>"; };
+		0B88FADB6A3536ABCA2DB83A4E25C16D /* ReplaceMe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ReplaceMe.m; path = XCComponentization/Classes/ReplaceMe.m; sourceTree = "<group>"; };
+		2BFD3DEE6E6E99D0BAF57B21019BFD32 /* XCComponentization-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "XCComponentization-Info.plist"; sourceTree = "<group>"; };
+		2E3F9679CD7092FF5844E1AA255DAFDE /* XCComponentization.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = XCComponentization.modulemap; sourceTree = "<group>"; };
+		2F59372CE724DCCB6FDB1FE64014CA28 /* XCComponentization-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XCComponentization-prefix.pch"; sourceTree = "<group>"; };
+		4313D993AFB9CC9D71C0A26FEC4F60FF /* Pods-ComponentizationDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ComponentizationDemo.debug.xcconfig"; sourceTree = "<group>"; };
 		5AB0FB59AB584EF655E421452E3EB6E8 /* Pods-ComponentizationDemo */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ComponentizationDemo"; path = Pods_ComponentizationDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		6E0D474800FF6B57D27AB09C74B87D92 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
 		73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
-		897284625E15D6D64B7691213A994A20 /* Pods-ComponentizationDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ComponentizationDemo.modulemap"; sourceTree = "<group>"; };
+		76996EA00C4E1108C2F6E567041B11DF /* Pods-ComponentizationDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ComponentizationDemo-acknowledgements.markdown"; sourceTree = "<group>"; };
+		793704DE43D808643EA1F537679DDFAE /* Pods-ComponentizationDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ComponentizationDemo.release.xcconfig"; sourceTree = "<group>"; };
+		809B8399929C2A3706F56BE5B85C3797 /* Pods-ComponentizationDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ComponentizationDemo-Info.plist"; sourceTree = "<group>"; };
+		89C6E66C0C8ED786CB9C7240DFD631FC /* Pods-ComponentizationDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ComponentizationDemo-umbrella.h"; sourceTree = "<group>"; };
+		8E1E74197DBC024C34E2D1A805CB0FD8 /* XCComponentization */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = XCComponentization; path = XCComponentization.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		9063F843D38CE43F485949A148662D18 /* XCComponentization.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = XCComponentization.debug.xcconfig; sourceTree = "<group>"; };
+		953EAF515DD637704F441379D48B1659 /* XCComponentization-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XCComponentization-umbrella.h"; sourceTree = "<group>"; };
+		9C31059F1AD808EA4675AC4228783F84 /* XCComponentization.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = XCComponentization.release.xcconfig; sourceTree = "<group>"; };
 		9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
-		D540ACDA7E8845AA14F8BBCCD58F40ED /* Pods-ComponentizationDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ComponentizationDemo-umbrella.h"; sourceTree = "<group>"; };
-		D5DFD920F3D320A277A8ADD7F00FE3D6 /* Pods-ComponentizationDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ComponentizationDemo-dummy.m"; sourceTree = "<group>"; };
-		E133F29E8CCE19F53D54A4D3470E2B6E /* Pods-ComponentizationDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ComponentizationDemo-acknowledgements.plist"; sourceTree = "<group>"; };
-		EC93776C22ABDDDD7B6C2F5269B659CC /* Pods-ComponentizationDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ComponentizationDemo.debug.xcconfig"; sourceTree = "<group>"; };
+		C11FA632BA51B50D05033004CCEB675C /* Pods-ComponentizationDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ComponentizationDemo-frameworks.sh"; sourceTree = "<group>"; };
+		CBFDAF2DD081FA0A3FCA2A05425C68CB /* XCComponentization-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XCComponentization-dummy.m"; sourceTree = "<group>"; };
+		E03DE98B3EE917A2534CC6B1047257CC /* Pods-ComponentizationDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ComponentizationDemo-dummy.m"; sourceTree = "<group>"; };
+		F2B9C731C907D3E4A68B843D4B87F93C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
+		FF6050DD215667CEF275B276558B08E7 /* XCComponentization.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = XCComponentization.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+		FF67AABF2EED6EE2406C65A069713844 /* Pods-ComponentizationDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ComponentizationDemo.modulemap"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
-		2C04185C14F9A59BA17EE24E7C37F210 /* Frameworks */ = {
+		6596785AB5ED779D1154FF19201F576D /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				0DAE8CD3EA08B283F15ED773E6EB6FAF /* Foundation.framework in Frameworks */,
+				1CA772CB065CA84D549713393CC38C3A /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		D48E124E45411158411EC53C74B508F9 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9BB083DC3ECB5635AB92D42576D75298 /* Foundation.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
-		1217B45CF920F80BA49357BE3A4190EE /* Targets Support Files */ = {
+		02BB7C8D85D4A5D80C9F66FD9ADF6DF1 /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				A408E0DF8BC9A39166C5D49315FEDD51 /* Pods-ComponentizationDemo */,
+				5AB0FB59AB584EF655E421452E3EB6E8 /* Pods-ComponentizationDemo */,
+				8E1E74197DBC024C34E2D1A805CB0FD8 /* XCComponentization */,
 			);
-			name = "Targets Support Files";
+			name = Products;
 			sourceTree = "<group>";
 		};
 		578452D2E740E91742655AC8F1636D1F /* iOS */ = {
@@ -54,25 +90,70 @@
 			name = iOS;
 			sourceTree = "<group>";
 		};
-		81AB34087E8B5C88259A97D46D27F603 /* Products */ = {
+		66C33ECD25110C82BB4601ED2247656F /* XCComponentization */ = {
 			isa = PBXGroup;
 			children = (
-				5AB0FB59AB584EF655E421452E3EB6E8 /* Pods-ComponentizationDemo */,
+				0B88FADB6A3536ABCA2DB83A4E25C16D /* ReplaceMe.m */,
+				81DBE1871E7B7B72184C8B7EF6B4370C /* Pod */,
+				9A873BB4EFD7C39B5FF36C82A13CAB8B /* Support Files */,
 			);
-			name = Products;
+			name = XCComponentization;
+			path = ../Modules/XCComponentization;
+			sourceTree = "<group>";
+		};
+		6887A953D3F2E024DC8C02FE183E87A0 /* Development Pods */ = {
+			isa = PBXGroup;
+			children = (
+				66C33ECD25110C82BB4601ED2247656F /* XCComponentization */,
+			);
+			name = "Development Pods";
 			sourceTree = "<group>";
 		};
-		A408E0DF8BC9A39166C5D49315FEDD51 /* Pods-ComponentizationDemo */ = {
+		804689736242116AD05FBB94616A5235 /* Targets Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				897284625E15D6D64B7691213A994A20 /* Pods-ComponentizationDemo.modulemap */,
-				4FA6DCD51052A737118BF41AA5BBF06A /* Pods-ComponentizationDemo-acknowledgements.markdown */,
-				E133F29E8CCE19F53D54A4D3470E2B6E /* Pods-ComponentizationDemo-acknowledgements.plist */,
-				D5DFD920F3D320A277A8ADD7F00FE3D6 /* Pods-ComponentizationDemo-dummy.m */,
-				14E4405B4F41F1FD6C8AB1BA181C1686 /* Pods-ComponentizationDemo-Info.plist */,
-				D540ACDA7E8845AA14F8BBCCD58F40ED /* Pods-ComponentizationDemo-umbrella.h */,
-				EC93776C22ABDDDD7B6C2F5269B659CC /* Pods-ComponentizationDemo.debug.xcconfig */,
-				2AA04D5B8D7E91CA2E50E7DFB4BF51E4 /* Pods-ComponentizationDemo.release.xcconfig */,
+				C3EA20720992934EFC14E6AC80A64C83 /* Pods-ComponentizationDemo */,
+			);
+			name = "Targets Support Files";
+			sourceTree = "<group>";
+		};
+		81DBE1871E7B7B72184C8B7EF6B4370C /* Pod */ = {
+			isa = PBXGroup;
+			children = (
+				F2B9C731C907D3E4A68B843D4B87F93C /* LICENSE */,
+				6E0D474800FF6B57D27AB09C74B87D92 /* README.md */,
+				FF6050DD215667CEF275B276558B08E7 /* XCComponentization.podspec */,
+			);
+			name = Pod;
+			sourceTree = "<group>";
+		};
+		9A873BB4EFD7C39B5FF36C82A13CAB8B /* Support Files */ = {
+			isa = PBXGroup;
+			children = (
+				2E3F9679CD7092FF5844E1AA255DAFDE /* XCComponentization.modulemap */,
+				CBFDAF2DD081FA0A3FCA2A05425C68CB /* XCComponentization-dummy.m */,
+				2BFD3DEE6E6E99D0BAF57B21019BFD32 /* XCComponentization-Info.plist */,
+				2F59372CE724DCCB6FDB1FE64014CA28 /* XCComponentization-prefix.pch */,
+				953EAF515DD637704F441379D48B1659 /* XCComponentization-umbrella.h */,
+				9063F843D38CE43F485949A148662D18 /* XCComponentization.debug.xcconfig */,
+				9C31059F1AD808EA4675AC4228783F84 /* XCComponentization.release.xcconfig */,
+			);
+			name = "Support Files";
+			path = "../../Pods/Target Support Files/XCComponentization";
+			sourceTree = "<group>";
+		};
+		C3EA20720992934EFC14E6AC80A64C83 /* Pods-ComponentizationDemo */ = {
+			isa = PBXGroup;
+			children = (
+				FF67AABF2EED6EE2406C65A069713844 /* Pods-ComponentizationDemo.modulemap */,
+				76996EA00C4E1108C2F6E567041B11DF /* Pods-ComponentizationDemo-acknowledgements.markdown */,
+				071F363EE336AB92B522951B52F05591 /* Pods-ComponentizationDemo-acknowledgements.plist */,
+				E03DE98B3EE917A2534CC6B1047257CC /* Pods-ComponentizationDemo-dummy.m */,
+				C11FA632BA51B50D05033004CCEB675C /* Pods-ComponentizationDemo-frameworks.sh */,
+				809B8399929C2A3706F56BE5B85C3797 /* Pods-ComponentizationDemo-Info.plist */,
+				89C6E66C0C8ED786CB9C7240DFD631FC /* Pods-ComponentizationDemo-umbrella.h */,
+				4313D993AFB9CC9D71C0A26FEC4F60FF /* Pods-ComponentizationDemo.debug.xcconfig */,
+				793704DE43D808643EA1F537679DDFAE /* Pods-ComponentizationDemo.release.xcconfig */,
 			);
 			name = "Pods-ComponentizationDemo";
 			path = "Target Support Files/Pods-ComponentizationDemo";
@@ -82,9 +163,10 @@
 			isa = PBXGroup;
 			children = (
 				9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
+				6887A953D3F2E024DC8C02FE183E87A0 /* Development Pods */,
 				D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
-				81AB34087E8B5C88259A97D46D27F603 /* Products */,
-				1217B45CF920F80BA49357BE3A4190EE /* Targets Support Files */,
+				02BB7C8D85D4A5D80C9F66FD9ADF6DF1 /* Products */,
+				804689736242116AD05FBB94616A5235 /* Targets Support Files */,
 			);
 			sourceTree = "<group>";
 		};
@@ -99,29 +181,56 @@
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
-		A6CEE29D68E944186E1D9F3D7E836AC3 /* Headers */ = {
+		C47470599B9B1B152D6AAAABAB2FF5EF /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				07F82E7A04B06FC17A452A155C45A45E /* XCComponentization-umbrella.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		E2315FDE4A7A699F008DEAC3773F2F54 /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				889B9E41A18D70C1CA5B1A7F7B303B46 /* Pods-ComponentizationDemo-umbrella.h in Headers */,
+				F4DC5D5284FE4A59A687AC0B5F636499 /* Pods-ComponentizationDemo-umbrella.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
+		C73C7A88EE757EDE3645B8664E7EAD08 /* XCComponentization */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 10959866C5C9B9BB1320352B9FB04C25 /* Build configuration list for PBXNativeTarget "XCComponentization" */;
+			buildPhases = (
+				C47470599B9B1B152D6AAAABAB2FF5EF /* Headers */,
+				E34401EABFC8D32D3D7BA231A61E122E /* Sources */,
+				6596785AB5ED779D1154FF19201F576D /* Frameworks */,
+				DEED0A6672FDACD0E9454E745111EC74 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = XCComponentization;
+			productName = XCComponentization;
+			productReference = 8E1E74197DBC024C34E2D1A805CB0FD8 /* XCComponentization */;
+			productType = "com.apple.product-type.framework";
+		};
 		F5DB6AA3EC1536955E57D6B6DC48753E /* Pods-ComponentizationDemo */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = 5043129710F0DD2F9D4A605E998F3D09 /* Build configuration list for PBXNativeTarget "Pods-ComponentizationDemo" */;
+			buildConfigurationList = FE7080F97A6022B337B405FDF1EEA2F4 /* Build configuration list for PBXNativeTarget "Pods-ComponentizationDemo" */;
 			buildPhases = (
-				A6CEE29D68E944186E1D9F3D7E836AC3 /* Headers */,
-				A92071512CA554B9603BD2F34C18B6C0 /* Sources */,
-				2C04185C14F9A59BA17EE24E7C37F210 /* Frameworks */,
-				1416279438563D816598614CA8DBC673 /* Resources */,
+				E2315FDE4A7A699F008DEAC3773F2F54 /* Headers */,
+				7BCCC90FF17B5D0692395E85478335AB /* Sources */,
+				D48E124E45411158411EC53C74B508F9 /* Frameworks */,
+				B345A3D28DD774EA08EEE0ACBA9364DA /* Resources */,
 			);
 			buildRules = (
 			);
 			dependencies = (
+				9D042943BEE12FD26D1B59906B0C3FEA /* PBXTargetDependency */,
 			);
 			name = "Pods-ComponentizationDemo";
 			productName = Pods_ComponentizationDemo;
@@ -146,17 +255,25 @@
 				en,
 			);
 			mainGroup = CF1408CF629C7361332E53B88F7BD30C;
-			productRefGroup = 81AB34087E8B5C88259A97D46D27F603 /* Products */;
+			productRefGroup = 02BB7C8D85D4A5D80C9F66FD9ADF6DF1 /* Products */;
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
 				F5DB6AA3EC1536955E57D6B6DC48753E /* Pods-ComponentizationDemo */,
+				C73C7A88EE757EDE3645B8664E7EAD08 /* XCComponentization */,
 			);
 		};
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-		1416279438563D816598614CA8DBC673 /* Resources */ = {
+		B345A3D28DD774EA08EEE0ACBA9364DA /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		DEED0A6672FDACD0E9454E745111EC74 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -166,17 +283,72 @@
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
-		A92071512CA554B9603BD2F34C18B6C0 /* Sources */ = {
+		7BCCC90FF17B5D0692395E85478335AB /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				B7E263E03BF316EB97C9D00CF0ACA354 /* Pods-ComponentizationDemo-dummy.m in Sources */,
+				14A48172C4D61058F2A71D8A12D2FFC6 /* Pods-ComponentizationDemo-dummy.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		E34401EABFC8D32D3D7BA231A61E122E /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BFFA2355B8F3FDE6B218C2B4F9740514 /* ReplaceMe.m in Sources */,
+				615AF392214E81357136E6191697AF83 /* XCComponentization-dummy.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXSourcesBuildPhase section */
 
+/* Begin PBXTargetDependency section */
+		9D042943BEE12FD26D1B59906B0C3FEA /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = XCComponentization;
+			target = C73C7A88EE757EDE3645B8664E7EAD08 /* XCComponentization */;
+			targetProxy = 378210127D30B8A39F634E823388E503 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
 /* Begin XCBuildConfiguration section */
+		5C8E63574A0DD04C011F13AE9F18575B /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 4313D993AFB9CC9D71C0A26FEC4F60FF /* Pods-ComponentizationDemo.debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+				CLANG_ENABLE_OBJC_WEAK = NO;
+				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+				CURRENT_PROJECT_VERSION = 1;
+				DEFINES_MODULE = YES;
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				INFOPLIST_FILE = "Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-Info.plist";
+				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				MACH_O_TYPE = staticlib;
+				MODULEMAP_FILE = "Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.modulemap";
+				OTHER_LDFLAGS = "";
+				OTHER_LIBTOOLFLAGS = "";
+				PODS_ROOT = "$(SRCROOT)";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VERSIONING_SYSTEM = "apple-generic";
+				VERSION_INFO_PREFIX = "";
+			};
+			name = Debug;
+		};
 		6A5C026ED62BBFE3380CD257EEFAEB20 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -243,11 +415,10 @@
 			};
 			name = Debug;
 		};
-		A71DDF0A80F5702B9AD1D20D890557BB /* Debug */ = {
+		993E351E9940EF27CC116503EEA46A34 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = EC93776C22ABDDDD7B6C2F5269B659CC /* Pods-ComponentizationDemo.debug.xcconfig */;
+			baseConfigurationReference = 9063F843D38CE43F485949A148662D18 /* XCComponentization.debug.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
 				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -257,32 +428,65 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = "Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-Info.plist";
+				GCC_PREFIX_HEADER = "Target Support Files/XCComponentization/XCComponentization-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/XCComponentization/XCComponentization-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MACH_O_TYPE = staticlib;
-				MODULEMAP_FILE = "Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.modulemap";
-				OTHER_LDFLAGS = "";
-				OTHER_LIBTOOLFLAGS = "";
-				PODS_ROOT = "$(SRCROOT)";
-				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+				MODULEMAP_FILE = "Target Support Files/XCComponentization/XCComponentization.modulemap";
+				PRODUCT_MODULE_NAME = XCComponentization;
+				PRODUCT_NAME = XCComponentization;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSION_INFO_PREFIX = "";
 			};
 			name = Debug;
 		};
-		CF59C36A428C3DBBBABFA5D3CA39A798 /* Release */ = {
+		A037E5B55AEFBC90172C02A69537A500 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 2AA04D5B8D7E91CA2E50E7DFB4BF51E4 /* Pods-ComponentizationDemo.release.xcconfig */;
+			baseConfigurationReference = 9C31059F1AD808EA4675AC4228783F84 /* XCComponentization.release.xcconfig */;
+			buildSettings = {
+				CLANG_ENABLE_OBJC_WEAK = NO;
+				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+				CURRENT_PROJECT_VERSION = 1;
+				DEFINES_MODULE = YES;
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				GCC_PREFIX_HEADER = "Target Support Files/XCComponentization/XCComponentization-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/XCComponentization/XCComponentization-Info.plist";
+				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				MODULEMAP_FILE = "Target Support Files/XCComponentization/XCComponentization.modulemap";
+				PRODUCT_MODULE_NAME = XCComponentization;
+				PRODUCT_NAME = XCComponentization;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+				VERSIONING_SYSTEM = "apple-generic";
+				VERSION_INFO_PREFIX = "";
+			};
+			name = Release;
+		};
+		D9783584218C75CD0A2743CC953226D9 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 793704DE43D808643EA1F537679DDFAE /* Pods-ComponentizationDemo.release.xcconfig */;
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
 				CLANG_ENABLE_OBJC_WEAK = NO;
@@ -383,6 +587,15 @@
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
+		10959866C5C9B9BB1320352B9FB04C25 /* Build configuration list for PBXNativeTarget "XCComponentization" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				993E351E9940EF27CC116503EEA46A34 /* Debug */,
+				A037E5B55AEFBC90172C02A69537A500 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
@@ -392,11 +605,11 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		5043129710F0DD2F9D4A605E998F3D09 /* Build configuration list for PBXNativeTarget "Pods-ComponentizationDemo" */ = {
+		FE7080F97A6022B337B405FDF1EEA2F4 /* Build configuration list for PBXNativeTarget "Pods-ComponentizationDemo" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				A71DDF0A80F5702B9AD1D20D890557BB /* Debug */,
-				CF59C36A428C3DBBBABFA5D3CA39A798 /* Release */,
+				5C8E63574A0DD04C011F13AE9F18575B /* Debug */,
+				D9783584218C75CD0A2743CC953226D9 /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;

+ 58 - 0
Pods/Pods.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/XCComponentization.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1300"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "C73C7A88EE757EDE3645B8664E7EAD08"
+               BuildableName = "XCComponentization.framework"
+               BlueprintName = "XCComponentization"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 7 - 0
Pods/Pods.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -11,6 +11,13 @@
 			<key>orderHint</key>
 			<integer>0</integer>
 		</dict>
+		<key>XCComponentization.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+			<key>orderHint</key>
+			<integer>1</integer>
+		</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
 	<dict/>

+ 23 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-acknowledgements.markdown

@@ -1,3 +1,26 @@
 # Acknowledgements
 This application makes use of the following third party libraries:
+
+## XCComponentization
+
+Copyright (c) 2023 xcbosa mbp16 <xcbosa@forgetive.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
 Generated by CocoaPods - https://cocoapods.org

+ 29 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-acknowledgements.plist

@@ -12,6 +12,35 @@
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright (c) 2023 xcbosa mbp16 &lt;xcbosa@forgetive.org&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>XCComponentization</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>Generated by CocoaPods - https://cocoapods.org</string>

+ 2 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Debug-input-files.xcfilelist

@@ -0,0 +1,2 @@
+${PODS_ROOT}/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks.sh
+${BUILT_PRODUCTS_DIR}/XCComponentization/XCComponentization.framework

+ 1 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Debug-output-files.xcfilelist

@@ -0,0 +1 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/XCComponentization.framework

+ 2 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Release-input-files.xcfilelist

@@ -0,0 +1,2 @@
+${PODS_ROOT}/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks.sh
+${BUILT_PRODUCTS_DIR}/XCComponentization/XCComponentization.framework

+ 1 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks-Release-output-files.xcfilelist

@@ -0,0 +1 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/XCComponentization.framework

+ 186 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo-frameworks.sh

@@ -0,0 +1,186 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+function on_error {
+  echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
+}
+trap 'on_error $LINENO' ERR
+
+if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
+  # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
+  # frameworks to, so exit 0 (signalling the script phase was successful).
+  exit 0
+fi
+
+echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
+SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
+BCSYMBOLMAP_DIR="BCSymbolMaps"
+
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+  if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+    local source="${BUILT_PRODUCTS_DIR}/$1"
+  elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+    local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+  elif [ -r "$1" ]; then
+    local source="$1"
+  fi
+
+  local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+  if [ -L "${source}" ]; then
+    echo "Symlinked..."
+    source="$(readlink "${source}")"
+  fi
+
+  if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
+    # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
+    find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
+      echo "Installing $f"
+      install_bcsymbolmap "$f" "$destination"
+      rm "$f"
+    done
+    rmdir "${source}/${BCSYMBOLMAP_DIR}"
+  fi
+
+  # Use filter instead of exclude so missing patterns don't throw errors.
+  echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+  rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+  local basename
+  basename="$(basename -s .framework "$1")"
+  binary="${destination}/${basename}.framework/${basename}"
+
+  if ! [ -r "$binary" ]; then
+    binary="${destination}/${basename}"
+  elif [ -L "${binary}" ]; then
+    echo "Destination binary is symlinked..."
+    dirname="$(dirname "${binary}")"
+    binary="${dirname}/$(readlink "${binary}")"
+  fi
+
+  # Strip invalid architectures so "fat" simulator / device frameworks work on device
+  if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+    strip_invalid_archs "$binary"
+  fi
+
+  # Resign the code if required by the build settings to avoid unstable apps
+  code_sign_if_enabled "${destination}/$(basename "$1")"
+
+  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
+  if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
+    local swift_runtime_libs
+    swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
+    for lib in $swift_runtime_libs; do
+      echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+      rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+      code_sign_if_enabled "${destination}/${lib}"
+    done
+  fi
+}
+# Copies and strips a vendored dSYM
+install_dsym() {
+  local source="$1"
+  warn_missing_arch=${2:-true}
+  if [ -r "$source" ]; then
+    # Copy the dSYM into the targets temp dir.
+    echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+    rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+    local basename
+    basename="$(basename -s .dSYM "$source")"
+    binary_name="$(ls "$source/Contents/Resources/DWARF")"
+    binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
+
+    # Strip invalid architectures from the dSYM.
+    if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
+      strip_invalid_archs "$binary" "$warn_missing_arch"
+    fi
+    if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
+      # Move the stripped file into its final destination.
+      echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+      rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+    else
+      # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+      mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
+      touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
+    fi
+  fi
+}
+
+# Used as a return value for each invocation of `strip_invalid_archs` function.
+STRIP_BINARY_RETVAL=0
+
+# Strip invalid architectures
+strip_invalid_archs() {
+  binary="$1"
+  warn_missing_arch=${2:-true}
+  # Get architectures for current target binary
+  binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+  # Intersect them with the architectures we are building for
+  intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+  # If there are no archs supported by this binary then warn the user
+  if [[ -z "$intersected_archs" ]]; then
+    if [[ "$warn_missing_arch" == "true" ]]; then
+      echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+    fi
+    STRIP_BINARY_RETVAL=1
+    return
+  fi
+  stripped=""
+  for arch in $binary_archs; do
+    if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+      # Strip non-valid architectures in-place
+      lipo -remove "$arch" -output "$binary" "$binary"
+      stripped="$stripped $arch"
+    fi
+  done
+  if [[ "$stripped" ]]; then
+    echo "Stripped $binary of architectures:$stripped"
+  fi
+  STRIP_BINARY_RETVAL=0
+}
+
+# Copies the bcsymbolmap files of a vendored framework
+install_bcsymbolmap() {
+    local bcsymbolmap_path="$1"
+    local destination="${BUILT_PRODUCTS_DIR}"
+    echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
+    rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
+}
+
+# Signs a framework with the provided identity
+code_sign_if_enabled() {
+  if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
+    # Use the current code_sign_identity
+    echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
+    local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
+
+    if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+      code_sign_cmd="$code_sign_cmd &"
+    fi
+    echo "$code_sign_cmd"
+    eval "$code_sign_cmd"
+  fi
+}
+
+if [[ "$CONFIGURATION" == "Debug" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/XCComponentization/XCComponentization.framework"
+fi
+if [[ "$CONFIGURATION" == "Release" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/XCComponentization/XCComponentization.framework"
+fi
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+  wait
+fi

+ 4 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.debug.xcconfig

@@ -1,5 +1,9 @@
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization/XCComponentization.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_LDFLAGS = $(inherited) -framework "XCComponentization"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

+ 4 - 0
Pods/Target Support Files/Pods-ComponentizationDemo/Pods-ComponentizationDemo.release.xcconfig

@@ -1,5 +1,9 @@
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization/XCComponentization.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_LDFLAGS = $(inherited) -framework "XCComponentization"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

+ 26 - 0
Pods/Target Support Files/XCComponentization/XCComponentization-Info.plist

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>en</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>0.1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>

+ 5 - 0
Pods/Target Support Files/XCComponentization/XCComponentization-dummy.m

@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_XCComponentization : NSObject
+@end
+@implementation PodsDummy_XCComponentization
+@end

+ 12 - 0
Pods/Target Support Files/XCComponentization/XCComponentization-prefix.pch

@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+

+ 16 - 0
Pods/Target Support Files/XCComponentization/XCComponentization-umbrella.h

@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double XCComponentizationVersionNumber;
+FOUNDATION_EXPORT const unsigned char XCComponentizationVersionString[];
+

+ 11 - 0
Pods/Target Support Files/XCComponentization/XCComponentization.debug.xcconfig

@@ -0,0 +1,11 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Modules/XCComponentization
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 6 - 0
Pods/Target Support Files/XCComponentization/XCComponentization.modulemap

@@ -0,0 +1,6 @@
+framework module XCComponentization {
+  umbrella header "XCComponentization-umbrella.h"
+
+  export *
+  module * { export * }
+}

+ 11 - 0
Pods/Target Support Files/XCComponentization/XCComponentization.release.xcconfig

@@ -0,0 +1,11 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/XCComponentization
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Modules/XCComponentization
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES