程序笔记   发布时间:2022-06-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了简陋的swift carthage copy-frameworks 辅助脚本代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在看 carthage 时,其中需要配置一个 copy-frameworks 脚本,此脚本特殊的地方,需要手动填写 input files 和 Output files.一个一个填写,很糟心~

观察了下,对应修改的是 xxx.xcodeproj/project.pbxproj 中这个文本文件的特定位置的字段,类似于:

/* 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 */

所以,就像着,自动生inputPaths outputPaths ,然后直接手动修改 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)
/*
控制台的单引号,要手动全局替换为双引号.
[ "$(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 辅助脚本代码就是小编分享给大家的全部内容了,希望能给大家一个参,也希望大家多多支持编程小技巧。

大佬总结

以上是大佬教程为你收集整理的简陋的swift carthage copy-frameworks 辅助脚本代码全部内容,希望文章能够帮你解决简陋的swift carthage copy-frameworks 辅助脚本代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。