Rudimentary swift carthage ES2en ES3en helper scripting code

  • 2020-06-07 05:22:54
  • OfStack

When looking at carthage, one ES2en-ES3en script needs to be configured. For the special part of this script, Input Files and Output Files need to be filled in manually

Observed, the corresponding modification is xxx xcodeproj/project pbxproj fields, this text file in a particular location is similar to:


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

So, just like inputPaths and outputPaths are generated automatically, and then the project. pbxproj file is modified manually.


var glob = require("glob")
// options is optional
let frameWorks = glob.sync("**/*.framework", {
 cwd: "path/to/Carthage/Build/iOS/",
})
console.log(frameWorks)
let inputPaths = frameWorks.filter(p=>!p.includes("test")&&!p.includes("Test")).map((p)=>`$(SRCROOT)/Carthage/Build/iOS/${p}`)
let outputPaths = frameWorks.filter(p=>!p.includes("test")&&!p.includes("Test")).map((p)=>`$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/${p}`)
console.log(inputPaths)
console.log(outputPaths)
/*
 Single quotes for the console , Manually replace the global with double quotes .
[ "$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Bond.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Differ.framework",
 "$(SRCROOT)/Carthage/Build/iOS/HEXColor.framework",
 "$(SRCROOT)/Carthage/Build/iOS/KeychainAccess.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Kingfisher.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Lottie.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Moya.framework",
 "$(SRCROOT)/Carthage/Build/iOS/ObjectMapper.framework",
 "$(SRCROOT)/Carthage/Build/iOS/PKHUD.framework",
 "$(SRCROOT)/Carthage/Build/iOS/ReactiveKit.framework",
 "$(SRCROOT)/Carthage/Build/iOS/ReactiveMoya.framework",
 "$(SRCROOT)/Carthage/Build/iOS/ReactiveSwift.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Realm.framework",
 "$(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework",
 "$(SRCROOT)/Carthage/Build/iOS/Result.framework",
 "$(SRCROOT)/Carthage/Build/iOS/RxBlocking.framework",
 "$(SRCROOT)/Carthage/Build/iOS/RxCocoa.framework",
 "$(SRCROOT)/Carthage/Build/iOS/RxMoya.framework",
 "$(SRCROOT)/Carthage/Build/iOS/RxSwift.framework",
 "$(SRCROOT)/Carthage/Build/iOS/SideMenu.framework",
 "$(SRCROOT)/Carthage/Build/iOS/SnapKit.framework",
 "$(SRCROOT)/Carthage/Build/iOS/SwiftyTimer.framework" ]
[ "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Alamofire.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Bond.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Differ.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/HEXColor.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/KeychainAccess.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Kingfisher.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Lottie.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Moya.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ObjectMapper.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/PKHUD.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactiveKit.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactiveMoya.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactiveSwift.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Realm.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RealmSwift.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Result.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxBlocking.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxCocoa.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxMoya.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxSwift.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SideMenu.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SnapKit.framework",
 "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SwiftyTimer.framework" ]
*/

Related articles: