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.