簡陋的swift carthage copy-frameworks 輔助腳本代碼
在看 carthage 時(shí),其中需要配置一個(gè) copy-frameworks 腳本,此腳本特殊的地方,需要手動(dòng)填寫 Input Files 和 Output Files.一個(gè)一個(gè)填寫,很糟心~
觀察了下,對應(yīng)修改的是 xxx.xcodeproj/project.pbxproj 中這個(gè)文本文件的特定位置的字段,類似于:
/* 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 */
所以,就像著,自動(dòng)生成 inputPaths 和 outputPaths ,然后直接手動(dòng)修改 project.pbxproj 文件,試了下,可行.簡單 nodejs 腳本如下:
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)
/*
控制臺的單引號,要手動(dòng)全局替換為雙引號.
[ "$(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" ]
*/
以上這篇簡陋的swift carthage copy-frameworks 輔助腳本代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu 16.04上安裝 Swift 3.0及問題解答
本文給大家分享的是在Ubuntu系統(tǒng)中安裝 Swift 3.0的方法和步驟,以及安裝過程中有可能遇到的問題的解答,這里推薦給小伙伴們,希望大家能夠喜歡2016-07-07
淺析Swift中struct與class的區(qū)別(匯編角度底層分析)
這篇文章主要介紹了Swift中struct與class的區(qū)別 ,本文從匯編角度分析struct與class的區(qū)別,通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
Swift實(shí)現(xiàn)表格視圖單元格單選(2)
這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)表格視圖單元格單選的第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
深入探究Swift枚舉關(guān)聯(lián)值的內(nèi)存
這篇文章主要給大家介紹了關(guān)于Swift枚舉關(guān)聯(lián)值的內(nèi)存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
mac git xcrun error active developer path 錯(cuò)誤
本文主要是講訴了如何解決在mac下使用git;xcode4.6的環(huán)境時(shí),出現(xiàn)了錯(cuò)誤(mac git xcrun error active developer path)的解決辦法,希望對大家有所幫助2014-09-09
Swift使用transform 實(shí)現(xiàn)重復(fù)平移動(dòng)畫效果
這篇文章主要介紹了Swift使用transform 實(shí)現(xiàn)重復(fù)平移動(dòng)畫效果,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Swift中static和class關(guān)鍵字的深入講解
這篇文章主要給大家介紹了關(guān)于Swift中static和class關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

