简陋的swift carthage copy-frameworks 辅助脚本代码

 更新时间:2018年01月15日 09:08:24   作者:iOS122  
下面小编就为大家分享一篇简陋的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 中编写Git Hooks脚本的方法

    在 Swift 中编写Git Hooks脚本的方法

    在本例中,我使用了 commit-msg 钩子,它能够在当前提交信息生效前修改此信息,钩子由一个参数调用,该参数是指向包含用户输入的提交消息的文件的路径,这意味着,为了改变提交消息,我们只需要从文件中读取、修改其内容,然后写回调用挂钩的文件
    2022-06-06
  • 详解Swift编程中的for循环的编写方法

    详解Swift编程中的for循环的编写方法

    这篇文章主要介绍了Swift编程中的for循环的编写方法,包括相关的for...in循环,需要的朋友可以参考下
    2015-11-11
  • Swift中闭包实战案例详解

    Swift中闭包实战案例详解

    接触过Swift的小伙伴对“闭包”应该不陌生,相当于OC中的Block,是Swift语法中比较难理解的一块。下面这篇文章主要介绍了关于Swift中闭包实战的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Swift版使用ThPullRefresh实现下拉上拉刷新数据

    Swift版使用ThPullRefresh实现下拉上拉刷新数据

    这篇文章主要介绍了Swift版使用ThPullRefresh实现下拉上拉刷新数据,需要的朋友可以参考下
    2016-01-01
  • swift如何利用系统库将汉字转换为拼音详解

    swift如何利用系统库将汉字转换为拼音详解

    将汉字转换为拼音更利于我们大家开发搜索功能,所以这篇文章主要给大家介绍了关于swift如何利用系统库将汉字转换为拼音的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • 苹果公司编程语言Swift语言简介

    苹果公司编程语言Swift语言简介

    这篇文章主要介绍了苹果公司编程语言Swift语言简介,Swift 是一门新的编程语言,兼容Objective-C代码,是用来代替Objective-C的苹果主力开发语言,需要的朋友可以参考下
    2014-07-07
  • NotificationCenter类实现原理

    NotificationCenter类实现原理

    这篇文章主要为大家介绍了NotificationCenter类实现原理源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Swift 3.0基础学习之类与结构体

    Swift 3.0基础学习之类与结构体

    最近在学swift 3.0,主要看的是苹果的官方文档,这里只是根据自己看官方文档的理解所做的一些记录,不是完整的翻译,希望也对你有所帮助。下面这篇文章主要介绍了Swift 3.0基础学习之类与结构体的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 如何使用Swift来实现一个命令行工具的方法

    如何使用Swift来实现一个命令行工具的方法

    这篇文章主要介绍了如何使用Swift来实现一个命令行工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Swift HTTP加载请求Loading Requests教程

    Swift HTTP加载请求Loading Requests教程

    这篇文章主要为大家介绍了Swift HTTP加载请求Loading Requests教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论