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

PBXAggregateTarget used to "build" (e.g. copy) xcframework

Open lacasseio opened this issue 2 years ago • 0 comments

PBXAggregateTarget doesn't seem to have any productReference. However, in this very particular scenario, the target has a single script build phase which copy a xcframework to a build dir. There are several questions to answer here: 1- Is the outputs of the build phase participate to the implicit dependency resolution? 2- Should build phase output paths be used as target paths of the target? If yes, does it make sense for a target to have multiple output files? 3- PBXAggregateTarget always has no productReference? 4- Is this only a Cocoapods thing? Or do other projects use this construct?

Example:

   49                 DD6DBFB0950D5ACA7BBB5F25E1C1A342 /* MobileVLCKit */ = {
   50                         isa = PBXAggregateTarget;
   51                         buildConfigurationList = 46EB2E0000E7B0 /* Build configuration list for PBXAggregateTarget "MobileVLCKit" */;
   52                         buildPhases = (
   53                                 46EB2E0001A340 /* [CP] Copy XCFrameworks */,
   54                         );
   55                         dependencies = (
   56                         );
   57                         name = MobileVLCKit;
   58                 };
[...]
14303                 46EB2E0001A340 /* [CP] Copy XCFrameworks */ = {
14304                         isa = PBXShellScriptBuildPhase;
14305                         buildActionMask = 2147483647;
14306                         files = (
14307                         );
14308                         inputPaths = (
14309                                 "${PODS_ROOT}/Target Support Files/MobileVLCKit/MobileVLCKit-xcframeworks.sh",
14310                                 "${PODS_ROOT}/MobileVLCKit/MobileVLCKit.xcframework",
14311                         );
14312                         name = "[CP] Copy XCFrameworks";
14313                         outputPaths = (
14314                                 "${PODS_XCFRAMEWORKS_BUILD_DIR}/MobileVLCKit/MobileVLCKit.framework",
14315                         );
14316                         runOnlyForDeploymentPostprocessing = 0;
14317                         shellPath = /bin/sh;
14318                         shellScript = "\"${PODS_ROOT}/Target Support Files/MobileVLCKit/MobileVLCKit-xcframeworks.sh\"\n";
14319                         showEnvVarsInLog = 0;
14320                 };

lacasseio avatar Aug 10 '22 01:08 lacasseio