gradle-native icon indicating copy to clipboard operation
gradle-native copied to clipboard

Handle script delegation in `PBXShellScriptBuildPhase`

Open lacasseio opened this issue 3 years ago • 0 comments
trafficstars

As a follow-up to https://github.com/nokeedev/gradle-native/issues/661 and complement to https://github.com/nokeedev/gradle-native/issues/667, we could detect script delegation in shellScript content of PBXShellScriptBuildPhase. Given the following build phase:

9706D52A0CDF446E336826A6 /* [CP] Copy Pods Resources */ = {
		isa = PBXShellScriptBuildPhase;
		buildActionMask = 2147483647;
		files = (
		);
		inputPaths = (
				"${PODS_ROOT}/Target Support Files/Pods-VLC-iOS/Pods-VLC-iOS-resources.sh",
				"${PODS_ROOT}/ADAL/ADALiOS/ADALiOS/ADAL_iPad_Storyboard.storyboard",
				"${PODS_ROOT}/ADAL/ADALiOS/ADALiOS/ADAL_iPhone_Storyboard.storyboard",
				"${PODS_CONFIGURATION_BUILD_DIR}/InAppSettingsKit/InAppSettingsKit.bundle",
				"${PODS_CONFIGURATION_BUILD_DIR}/XKKeychain-iOS/XKKeychain.bundle",
		);
		name = "[CP] Copy Pods Resources";
		outputPaths = (
				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ADAL_iPad_Storyboard.storyboardc",
				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ADAL_iPhone_Storyboard.storyboardc",
				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/InAppSettingsKit.bundle",
				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XKKeychain.bundle",
		);
		runOnlyForDeploymentPostprocessing = 0;
		shellPath = /bin/sh;
		shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-VLC-iOS/Pods-VLC-iOS-resources.sh\"\n";
		showEnvVarsInLog = 0;
};

In this case, we are lucky the inputPaths include the script (i.e. Pods-VLC-iOS-resources.sh). However, this demonstrates a possible common case where the shellScript contains a single call to another script. If we didn't have the input/output paths properly declared, we would have some difficulty with the user's intervention to know any of the paths used by the script.

lacasseio avatar Jun 04 '22 20:06 lacasseio