使用Xcodeproj修改依赖库顺序
Posted 兵临城下也
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Xcodeproj修改依赖库顺序相关的知识,希望对你有一定的参考价值。
基于某种特定的需求,需要动态的按照特定的顺序来对项目依赖的库进行排序,得知 Cocoapods 团队大佬已经开发了 Xcodeproj 来管理工程的配置,所以本次记录一下使用 Xcodeproj 来完成我的目的
具体的代码如下:
require 'xcodeproj'
def priorityDependencesFunction(dependencies)
# 自定义依赖排序库(下面的排序优先级最高)
priorityDependences = ["SDWebImage", "CocoaLumberjack",
"HDBaseProject", "MJRefresh", "PINCache",
"AFNetworking"]
# 将工程所有依赖组件移除,并按照priorityDependences的顺序加入到deleteDependences中
deleteDependences = []
for dependencyName in priorityDependences do
for dependency in dependencies do
if dependencyName == dependency.name
deleteDependences << dependency
break
end
end
end
# dependencies删除deleteDependences的元素
dependencies.delete_if |dependency|
deleteDependences.include?(dependency)
# 将deleteDependences插入到最前面
for deleteDependency in deleteDependences.reverse do
dependencies.unshift(deleteDependency)
end
end
def sortDependecies()
puts "sortDependecies start"
# 当前路径
base_path = File.dirname(__FILE__)
project_path = base_path + '/Pods/Pods.xcodeproj'
pod_project = Xcodeproj::Project.open(project_path)
pod_target = nil
pod_project.targets.each_with_index do |target, index|
if target.name == "Pods-HDXcodeProjDemo"
pod_target = target
end
end
priorityDependencesFunction(pod_target.dependencies)
pod_project.save
puts "sortDependecies end"
end
sortDependecies()
执行步骤:
1、可以选择下载 测试工程 ,然后 pod install
安装,项目依赖库的顺序默认是按照字母排序
2、在项目路径下,执行 ruby dependency.rb
,实现自定义依赖库排序
3、最终效果
参考资料
以上是关于使用Xcodeproj修改依赖库顺序的主要内容,如果未能解决你的问题,请参考以下文章
你可以在 iOS 应用程序中使用 Package.swift 而不是使用 .xcodeproj 吗?
Android Gradle 插件Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )
Android Gradle 插件Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )