SoFunction
Updated on 2025-03-10

The simple swift carthage copy-frameworks auxiliary script code

When looking at carthage, you need to configure a copy-frameworks script. The special place of this script is that you need to manually fill in Input Files and Output Files. Fill in one by one, which is very bad~

After observing, the corresponding modified fields in / are similar to:

/* Begin PBXShellScriptBuildPhase section */
  750D68EC2000817C006235CD /* ShellScript */ = {
   isa = PBXShellScriptBuildPhase;
   buildActionMask = 2147483647;
   files = (
   );
   inputPaths = (
    "$(SRCROOT)/Carthage/Build/iOS/",
   );
   outputPaths = (
    "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
   );
   runOnlyForDeploymentPostprocessing = 0;
   shellPath = /bin/sh;
   shellScript = "/usr/local/bin/carthage copy-frameworks";
  };
/* End PBXShellScriptBuildPhase section */

So, it's like, automatically generatedinputPaths andoutputPaths , and then manually modify the file and tried it. It works. The simple nodejs script is as follows:

var glob = require("glob")
// options is optional
let frameWorks = ("**/*.framework", {
  cwd: "path/to/Carthage/Build/iOS/",
 })
 (frameWorks)
 let inputPaths = (p=>!("test")&&!("Test")).map((p)=>`$(SRCROOT)/Carthage/Build/iOS/${p}`)
 let outputPaths = (p=>!("test")&&!("Test")).map((p)=>`$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/${p}`)
 (inputPaths)
 (outputPaths)
 /*
 Single quotes on the console should be replaced globally with double quotes manually.
 [ "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/",
  "$(SRCROOT)/Carthage/Build/iOS/" ]
 [ "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/",
  "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/" ]
 */

The above simple swift carthage copy-frameworks auxiliary script code is all the content I share with you. I hope you can give you a reference and I hope you can support me more.