podfileDep 2.1.6 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/cocoapods_plugin.rb +5 -3
- data/lib/podfileDep/reference/unused.rb +9 -145
- data/lib/podfileDep/thin/installer.rb +161 -0
- data/lib/podfileDep/thin/local.rb +40 -0
- data/lib/podfileDep/thin/pod_target.rb +37 -0
- data/lib/podfileDep/thin/shell.rb +128 -0
- data/lib/podfileDep/version.rb +1 -1
- data/lib/podfileDep/yaml/yaml_dep.rb +244 -270
- data/lib/podfileDep/yaml/yaml_pod.rb +44 -0
- data/lib/podfileDep.rb +14 -3
- metadata +7 -3
- data/CODE_OF_CONDUCT.md +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 406874c289ed4d9d0ec411d2fd51ce4c96245e5a77681b3279fea018f59f9352
|
4
|
+
data.tar.gz: e9d7611c9061082d53ceba3b4fd779242b2be327b12e4f4439301e48d0713ada
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49208d1aa83769ab3c512d32707d9c2897879f27a7bcc9558e03c0ad3cf4ebe81786bd6d2fcd0346173050171d5bece63826d1afb90ed9857ec98f949686ea38
|
7
|
+
data.tar.gz: '03164879f5bdd16ab7be623a83add20bba17d4f069c1d46e8bdd668b85b172896c3734fab33251478bc92a66d952a1ce8894689647339f8fb4f1fc27738f9282'
|
data/CHANGELOG.md
CHANGED
data/lib/cocoapods_plugin.rb
CHANGED
@@ -37,9 +37,6 @@ module CocoapodsPlugin
|
|
37
37
|
# 间接依赖
|
38
38
|
PodfileLock::Indirect.new.log_indirect
|
39
39
|
|
40
|
-
# 未被使用的依赖库
|
41
|
-
Unused::UnusedManager.check_unused
|
42
|
-
|
43
40
|
# 添加yaml到引用和忽略
|
44
41
|
Project::ProjectManager.yaml_reference
|
45
42
|
|
@@ -52,3 +49,8 @@ module CocoapodsPlugin
|
|
52
49
|
# puts context
|
53
50
|
# end
|
54
51
|
end
|
52
|
+
|
53
|
+
END {
|
54
|
+
# 未被使用的依赖库
|
55
|
+
Unused::UnusedManager.check_unused
|
56
|
+
}
|
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
require_relative '../
|
3
|
-
require_relative 'uninstall'
|
1
|
+
|
2
|
+
require_relative '../constants'
|
4
3
|
require_relative '../yaml/yaml_dep'
|
5
4
|
|
6
5
|
module Unused
|
@@ -8,152 +7,17 @@ module Unused
|
|
8
7
|
|
9
8
|
# 打印未被引用的依赖库
|
10
9
|
def self.check_unused
|
11
|
-
puts "\n未被引用的组件检查中..."
|
12
|
-
start = (Time.now.to_f * 1000).to_i
|
13
|
-
|
14
|
-
podfile_lock_manager = PodfileLock::PodfileLockManager
|
15
|
-
project_manager = XCProject::XcodeprojManager.share_manager
|
16
|
-
|
17
|
-
# podfile.lock的内容
|
18
|
-
lock_content = podfile_lock_manager.podfile_lock_content
|
19
|
-
|
20
|
-
# 所有已安装的模块
|
21
|
-
installed_modules = self.get_installed_modules(lock_content)
|
22
|
-
|
23
|
-
# 壳工程里引用的所有模块
|
24
|
-
shell_modules = project_manager.get_shell_module
|
25
|
-
if installed_modules.size == 0
|
26
|
-
return
|
27
|
-
end
|
28
|
-
|
29
|
-
# 是否需要快速编译
|
30
|
-
quick_build = Pod::YamlManager.share_manager.quick_build
|
31
|
-
|
32
|
-
uninstaller = Pod::Uninstall.new
|
33
|
-
|
34
|
-
# 未使用的列表
|
35
|
-
unused_list = []
|
36
|
-
uninstall_list = []
|
37
|
-
installed_modules.each do |module_item|
|
38
|
-
|
39
|
-
module_name = module_item.keys[0]
|
40
|
-
real_module_name = module_name.include?("/") ? module_name.split("/")[0] : module_name #处理有子模块的情况
|
41
|
-
|
42
|
-
used = self.dep_used(real_module_name, installed_modules)
|
43
|
-
|
44
|
-
unless used
|
45
|
-
used = self.dep_used_in_shell_modules(real_module_name, shell_modules) #在壳工程里检验看用到没
|
46
|
-
end
|
47
|
-
|
48
|
-
if not used and not unused_list.include?(real_module_name)
|
49
|
-
local_contain = Pod::YamlManager.share_manager.local_yaml_contain(real_module_name)
|
50
|
-
if quick_build and not local_contain
|
51
|
-
uninstall_list << real_module_name
|
52
|
-
else
|
53
|
-
unused_list << real_module_name
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
if unused_list.size >0
|
59
|
-
# puts unused_list
|
60
|
-
puts "未被任何地方引用的组件:#{unused_list}"
|
61
|
-
end
|
62
|
-
|
63
|
-
if uninstall_list.size > 0
|
64
|
-
# puts uninstall_list
|
65
|
-
puts "被移除组件:#{uninstall_list}"
|
66
|
-
uninstaller.uninstall(uninstall_list)
|
67
|
-
end
|
68
|
-
|
69
|
-
duration = ((Time.now.to_f * 1000).to_i - start)*0.001
|
70
|
-
puts "未被引用的组件处理完毕! 共检查#{installed_modules.size.to_s}个组件 耗时:#{duration.round(2)}秒"
|
71
|
-
end
|
72
|
-
|
73
|
-
# 获取某个库是否在壳工程内被使用
|
74
|
-
def self.dep_used_in_shell_modules(module_name, shell_modules)
|
75
|
-
used = false
|
76
|
-
shell_modules.each do |shell_module, shell_module_item|
|
77
|
-
shell_module_item.source_files.each{|source_file|
|
78
|
-
if self.dep_used_in_file(module_name, source_file)
|
79
|
-
used = true
|
80
|
-
break
|
81
|
-
end
|
82
|
-
}
|
83
|
-
end
|
84
|
-
used
|
85
|
-
end
|
86
|
-
|
87
|
-
# 获取某个库是否在文件内被使用
|
88
|
-
def self.dep_used_in_file(module_name, file_path)
|
89
|
-
if File.directory?(file_path)
|
90
|
-
return false
|
91
|
-
end
|
92
|
-
|
93
|
-
line_array = IO.readlines(file_path)
|
94
|
-
line_array.each_with_index { |line, index|
|
95
|
-
unless line.start_with?("#import <")
|
96
|
-
next
|
97
|
-
end
|
98
|
-
|
99
|
-
line_split_array = line.split("/")
|
100
|
-
if line_split_array.size < 1
|
101
|
-
next
|
102
|
-
end
|
103
|
-
|
104
|
-
line_module_name = line_split_array[0].gsub("#import <","")
|
105
|
-
|
106
|
-
real_module_name = module_name.include?("/") ? module_name.split("/")[0] : module_name #处理有子模块的情况
|
107
|
-
|
108
|
-
if real_module_name == line_module_name
|
109
|
-
return true
|
110
|
-
end
|
111
|
-
}
|
112
|
-
false
|
113
|
-
end
|
114
|
-
|
115
|
-
# 获取某个库是否被使用
|
116
|
-
# @return bool
|
117
|
-
def self.dep_used(module_name, installed_modules)
|
118
|
-
|
119
|
-
installed_modules.each do |module_item|
|
120
|
-
module_item.each_value {|deps|
|
121
|
-
deps.each{|dep|
|
122
|
-
real_dep = dep.include?("/") ? dep.split("/")[0] : dep #处理有子模块的情况
|
123
|
-
if real_dep == module_name
|
124
|
-
return true
|
125
|
-
end
|
126
|
-
}
|
127
|
-
}
|
128
|
-
end
|
129
|
-
return false
|
130
|
-
end
|
131
|
-
|
132
|
-
# 获取已安装的依赖库列表
|
133
|
-
# @return Array
|
134
|
-
def self.get_installed_modules(lock_content)
|
135
|
-
all_modules = lock_content["PODS"]
|
136
|
-
|
137
|
-
result_array = []
|
138
|
-
Array(all_modules).each do |item|
|
139
|
-
if item.class == String
|
140
|
-
dep = item.split(" (")[0]
|
141
|
-
result_array << {dep => []}
|
142
|
-
elsif item.class == Hash
|
143
|
-
item_key = item.keys[0]
|
144
|
-
dep = item_key.split(" (")[0]
|
145
10
|
|
146
|
-
|
147
|
-
child_deps = []
|
148
|
-
item_value.each { |child|
|
149
|
-
child_deps << child.split(" (")[0]
|
150
|
-
}
|
11
|
+
yaml_dep = Pod::YamlDep.new
|
151
12
|
|
152
|
-
|
153
|
-
|
13
|
+
if yaml_dep.quick_build
|
14
|
+
puts "🔰 已开启编译优化选项,请关注上方日志 '下载依赖...'部分"
|
15
|
+
puts "#{Constants::PODFILE_LOCAL_YAML}文件内的依赖库,将不会被优化忽略掉"
|
16
|
+
else
|
17
|
+
warn "\n ⚠️ 检测到你未开启编译优化选项,如你处于开发模式,可打开此开关,移除不被引用的依赖库来加速编译"
|
18
|
+
warn "位置:#{Constants::PODFILE_LOCAL_YAML} 顶层 QUICK_BUILD字段设置为true, 然后重新pod install"
|
154
19
|
end
|
155
20
|
|
156
|
-
result_array
|
157
21
|
end
|
158
22
|
|
159
23
|
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
require 'cocoapods/installer'
|
2
|
+
require 'yaml'
|
3
|
+
require_relative 'shell'
|
4
|
+
require_relative 'local'
|
5
|
+
require_relative 'pod_target'
|
6
|
+
|
7
|
+
module Pod
|
8
|
+
class Installer
|
9
|
+
|
10
|
+
# @return [Hash{String, Pod:Target}] 所有的pod库被使用的次数
|
11
|
+
attr_accessor :thin_pods
|
12
|
+
|
13
|
+
# @return [String] 未被使用的pod库列表
|
14
|
+
attr_accessor :thin_unused_pods
|
15
|
+
|
16
|
+
|
17
|
+
def download_dependencies
|
18
|
+
UI.section '下载依赖...' do
|
19
|
+
|
20
|
+
thin_pod_unused #自定义
|
21
|
+
thin_delete_pods_unused #自定义
|
22
|
+
|
23
|
+
install_pod_sources
|
24
|
+
run_podfile_pre_install_hooks
|
25
|
+
clean_pod_sources
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# 删除未被使用的依赖
|
30
|
+
# @return nil
|
31
|
+
def thin_pod_unused
|
32
|
+
@thin_pods = Hash.new
|
33
|
+
thin_all_deps_pods_targets
|
34
|
+
thin_all_deps_shell_targets
|
35
|
+
thin_all_deps_local_yaml
|
36
|
+
thin_unused_deps
|
37
|
+
end
|
38
|
+
|
39
|
+
# 获取未被使用到的依赖库
|
40
|
+
# @return thin_unused_pods
|
41
|
+
def thin_unused_deps
|
42
|
+
thin_unused_pods = []
|
43
|
+
thin_pods.each do |name, pod_target|
|
44
|
+
pod_target.reduce_reference_count
|
45
|
+
end
|
46
|
+
|
47
|
+
thin_pods.each do |name, pod_target|
|
48
|
+
if pod_target.reference_count <= 0
|
49
|
+
thin_unused_pods << name
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
@thin_unused_pods = thin_unused_pods
|
54
|
+
end
|
55
|
+
|
56
|
+
# 获取在pods_targets使用的依赖库
|
57
|
+
# @return thin_pods
|
58
|
+
def thin_all_deps_pods_targets
|
59
|
+
|
60
|
+
pod_targets = analysis_result.pod_targets
|
61
|
+
|
62
|
+
pod_targets.each do |pod_target|
|
63
|
+
thin_pods[pod_target.to_s] = pod_target
|
64
|
+
end
|
65
|
+
|
66
|
+
pod_targets.each do |pod_target|
|
67
|
+
pod_target.dependent_targets.each do|sub_pod_target|
|
68
|
+
thin_update_reference_count(sub_pod_target)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
thin_pods
|
73
|
+
end
|
74
|
+
|
75
|
+
# 递归更新引用计数
|
76
|
+
# @return nil
|
77
|
+
def thin_update_reference_count(pod_target)
|
78
|
+
pod = thin_pods[pod_target.to_s]
|
79
|
+
pod.reference_count += 1
|
80
|
+
pod.dependent_targets.each do|sub_pod_target|
|
81
|
+
thin_update_reference_count(sub_pod_target)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# 获取在壳工程里使用的依赖库
|
86
|
+
# @return thin_pods
|
87
|
+
def thin_all_deps_shell_targets
|
88
|
+
shell = Shell.new
|
89
|
+
|
90
|
+
shell.deps_shell.each { |shell_pod|
|
91
|
+
if thin_pods.has_key?(shell_pod)
|
92
|
+
thin_pods[shell_pod].max_reference_count
|
93
|
+
end
|
94
|
+
}
|
95
|
+
thin_pods
|
96
|
+
end
|
97
|
+
|
98
|
+
# 获取在local_yaml里使用的依赖库
|
99
|
+
# @return thin_pods
|
100
|
+
def thin_all_deps_local_yaml
|
101
|
+
local = Local.new
|
102
|
+
local.deps_yaml.each do |yaml_pod|
|
103
|
+
if thin_pods.has_key?(yaml_pod)
|
104
|
+
thin_pods[yaml_pod].max_reference_count
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
thin_pods
|
109
|
+
end
|
110
|
+
|
111
|
+
# 删除某些依赖库
|
112
|
+
# @return nil
|
113
|
+
def thin_delete_pods_unused
|
114
|
+
if thin_unused_pods.empty?
|
115
|
+
return
|
116
|
+
end
|
117
|
+
|
118
|
+
thin_unused_pods.each do |unused_pod|
|
119
|
+
title_options = { :verbose_prefix => '-> '.red }
|
120
|
+
UI.titled_section("忽略 #{unused_pod}".red, title_options) do
|
121
|
+
thin_delete_pod(unused_pod)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
# 删除某个依赖库
|
128
|
+
# @param unused_pod: String 依赖库名字
|
129
|
+
# @return nil
|
130
|
+
def thin_delete_pod(unused_pod)
|
131
|
+
sandbox_state.added.delete(unused_pod)
|
132
|
+
sandbox_state.changed.delete(unused_pod)
|
133
|
+
sandbox_state.unchanged.delete(unused_pod)
|
134
|
+
|
135
|
+
pod_targets.delete_if { |pod_target|
|
136
|
+
pod_target.to_s == unused_pod
|
137
|
+
}
|
138
|
+
|
139
|
+
aggregate_targets.each { |aggregate_target|
|
140
|
+
aggregate_target.pod_targets.delete_if { |pod_target|
|
141
|
+
pod_target.to_s == unused_pod
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
aggregate_targets.each do |aggregate_target|
|
146
|
+
aggregate_target.user_build_configurations.each_key do |config|
|
147
|
+
pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
|
148
|
+
pod_targets.delete_if { |pod_target|
|
149
|
+
pod_target.to_s == unused_pod
|
150
|
+
}
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
analysis_result.specifications.delete_if { |specification|
|
155
|
+
real_specification = specification.to_s.split(" (")[0]
|
156
|
+
real_pod = real_specification.split("/")[0]
|
157
|
+
real_pod == unused_pod
|
158
|
+
}
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require_relative '../yaml/yaml_dep'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Local
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
super
|
9
|
+
@reference_pods = []
|
10
|
+
end
|
11
|
+
|
12
|
+
# PODFILE_LOCAL_YAML指定的依赖库
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :reference_pods
|
15
|
+
|
16
|
+
def deps_yaml
|
17
|
+
|
18
|
+
yaml_dep = YamlDep.new
|
19
|
+
|
20
|
+
yaml_dep.generate_yaml
|
21
|
+
|
22
|
+
podfile_local_yaml = yaml_dep.podfile_local_yaml
|
23
|
+
yaml_dep.read_yaml_deps_file(podfile_local_yaml)
|
24
|
+
|
25
|
+
yaml_dependencies = yaml_dep.yaml_deps[podfile_local_yaml]
|
26
|
+
|
27
|
+
if yaml_dependencies
|
28
|
+
# 处理烦人的子模块
|
29
|
+
yaml_dependencies.keys.each do |pod|
|
30
|
+
real_pod = pod.split("/")[0]
|
31
|
+
unless reference_pods.include?(real_pod)
|
32
|
+
reference_pods << real_pod
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
reference_pods
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Pod
|
2
|
+
class PodTarget < Target
|
3
|
+
|
4
|
+
# 被引用的次数
|
5
|
+
# @return Int
|
6
|
+
attr_accessor :reference_count
|
7
|
+
|
8
|
+
# 引用计数最大
|
9
|
+
def max_reference_count
|
10
|
+
self.reference_count = 99999
|
11
|
+
self.dependent_targets.each do |dep|
|
12
|
+
dep.max_reference_count
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# 引用计数减1
|
17
|
+
def reduce_reference_count
|
18
|
+
if self.reference_count > 0
|
19
|
+
self.reference_count -= 1
|
20
|
+
end
|
21
|
+
|
22
|
+
self.dependent_targets.each do |dep|
|
23
|
+
if dep.reference_count == 0
|
24
|
+
next
|
25
|
+
end
|
26
|
+
dep.reduce_reference_count
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# 获取引用计数
|
31
|
+
# @return Int
|
32
|
+
def reference_count
|
33
|
+
@reference_count ? @reference_count : 0
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'xcodeproj'
|
2
|
+
require 'pathname'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Shell
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
super
|
9
|
+
@reference_files = []
|
10
|
+
@reference_pods = []
|
11
|
+
end
|
12
|
+
|
13
|
+
# 壳工程project对象
|
14
|
+
# @return Xcodeproj::Project
|
15
|
+
attr_accessor :project_shell
|
16
|
+
|
17
|
+
# 壳工程引用的文件列表
|
18
|
+
# @return [Pathname]
|
19
|
+
attr_accessor :reference_files
|
20
|
+
|
21
|
+
# 壳工程引用的依赖库
|
22
|
+
# @return [String]
|
23
|
+
attr_accessor :reference_pods
|
24
|
+
|
25
|
+
# 获取壳工程所引用的依赖库
|
26
|
+
# @return [String]
|
27
|
+
def deps_shell
|
28
|
+
init_project_shell
|
29
|
+
|
30
|
+
reference_code_file(project_shell.root_object.main_group)
|
31
|
+
|
32
|
+
reference_files.each do |reference_file|
|
33
|
+
pod_in_file(reference_file)
|
34
|
+
end
|
35
|
+
|
36
|
+
reference_pods
|
37
|
+
end
|
38
|
+
|
39
|
+
# 初始化project对象
|
40
|
+
# @return project_shell
|
41
|
+
def init_project_shell
|
42
|
+
xcodeproj_file = nil
|
43
|
+
Dir.foreach(Dir.pwd) do |file|
|
44
|
+
if file.end_with?(".xcodeproj")
|
45
|
+
xcodeproj_file = file
|
46
|
+
break
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
xcodeproj_path = "#{Dir.pwd}/#{xcodeproj_file}"
|
51
|
+
unless File.exist?(xcodeproj_path)
|
52
|
+
return nil
|
53
|
+
end
|
54
|
+
|
55
|
+
@project_shell = Xcodeproj::Project.open(xcodeproj_path)
|
56
|
+
end
|
57
|
+
|
58
|
+
# 获取其对应的引用代码文件和路径
|
59
|
+
# @return reference_files
|
60
|
+
def reference_code_file(group)
|
61
|
+
# 文件引用
|
62
|
+
file_reference = Xcodeproj::Project::Object::PBXFileReference
|
63
|
+
group.children.each {|child|
|
64
|
+
|
65
|
+
if child.class != file_reference
|
66
|
+
self.reference_code_file(child)
|
67
|
+
next
|
68
|
+
end
|
69
|
+
|
70
|
+
file_name = child.real_path.basename
|
71
|
+
extend_name = file_name.extname
|
72
|
+
if not extend_name == ".h" and
|
73
|
+
not extend_name == ".m" and
|
74
|
+
not extend_name == ".mm" and
|
75
|
+
not extend_name == ".pch" and
|
76
|
+
not extend_name == ".c" and
|
77
|
+
not extend_name == ".cc" and
|
78
|
+
not extend_name == ".hpp" and
|
79
|
+
not extend_name == ".cpp"
|
80
|
+
next
|
81
|
+
end
|
82
|
+
|
83
|
+
# 引用关系路径
|
84
|
+
hierarchy_path_array = child.hierarchy_path.split("/")
|
85
|
+
if hierarchy_path_array.size < 2
|
86
|
+
next
|
87
|
+
end
|
88
|
+
|
89
|
+
reference_files << child.real_path
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
93
|
+
# 获取某个文件里引用的依赖库名字
|
94
|
+
# @param file_path 文件路径
|
95
|
+
# @return reference_pods
|
96
|
+
def pod_in_file(file_path)
|
97
|
+
if File.directory?(file_path)
|
98
|
+
return reference_pods
|
99
|
+
end
|
100
|
+
|
101
|
+
line_array = IO.readlines(file_path)
|
102
|
+
line_array.each_with_index { |line|
|
103
|
+
unless line.start_with?("#import <")
|
104
|
+
next
|
105
|
+
end
|
106
|
+
|
107
|
+
unless line.include?("/")
|
108
|
+
next
|
109
|
+
end
|
110
|
+
|
111
|
+
line_split_array = line.split("/")
|
112
|
+
if line_split_array.size < 1
|
113
|
+
next
|
114
|
+
end
|
115
|
+
|
116
|
+
line_module_name = line_split_array[0].gsub("#import <","")
|
117
|
+
|
118
|
+
real_module_name = line_module_name.include?("/") ? line_module_name.split("/")[0] : line_module_name #处理有子模块的情况
|
119
|
+
|
120
|
+
unless reference_pods.include?(real_module_name)
|
121
|
+
reference_pods << real_module_name
|
122
|
+
end
|
123
|
+
}
|
124
|
+
reference_pods
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
end
|
data/lib/podfileDep/version.rb
CHANGED