cocoapods-mtxx-bin 0.0.9.1 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cocoapods-mtxx-bin/command/bin/buildAll.rb +2 -1
- data/lib/cocoapods-mtxx-bin/command/bin/upload.rb +3 -1
- data/lib/cocoapods-mtxx-bin/command/bin.rb +1 -1
- data/lib/cocoapods-mtxx-bin/gem_version.rb +1 -1
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/bin_helper.rb +30 -8
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/builder.rb +5 -1
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/podspec_util.rb +1 -1
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/zip_file_helper.rb +4 -2
- data/lib/cocoapods-mtxx-bin/helpers/pod_size_helper.rb +36 -0
- data/lib/cocoapods-mtxx-bin/native/installer.rb +119 -0
- data/lib/cocoapods-mtxx-bin/native/lockfile.rb +69 -0
- data/lib/cocoapods-mtxx-bin/native/resolver.rb +9 -1
- data/lib/cocoapods-mtxx-bin/native.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6887cb67f5682b2edff6ac1e6ba31233d4b58a2ae509fecf4fcbcecd5e7af693
|
4
|
+
data.tar.gz: ce7199feb46ac2a4e2e49b30b6ee2e99acf26f4300164f4e7a6689f520c7de31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd5da7bb0b6476632cc6323ba276cf17264adcdfadd000aa1965333860905e43c74d3b8d5072414e81777f8cef92bea5c522057a473c5351e31b17626cf2d839
|
7
|
+
data.tar.gz: 8c4bc558c517cb54bb453026b1222f7f4ddadd67bffaba2c1a5b3868ff08288694b71a37daaa836ec36145c1da404246d93c4a60a2dd3dfb23bf8ffb5c88d8c1
|
@@ -35,6 +35,7 @@ module Pod
|
|
35
35
|
@repo_update = argv.flag?('repo-update', false)
|
36
36
|
@full_build = argv.flag?('full-build', false)
|
37
37
|
@base_dir = "#{Pathname.pwd}/build_pods"
|
38
|
+
@version_helper = BinHelper.new
|
38
39
|
super
|
39
40
|
end
|
40
41
|
|
@@ -187,7 +188,7 @@ module Pod
|
|
187
188
|
created_pods = []
|
188
189
|
pod_targets.map do |pod_target|
|
189
190
|
begin
|
190
|
-
version =
|
191
|
+
version = @version_helper.version(pod_target.pod_name, pod_target.root_spec.version.to_s, @analyze_result.specifications)
|
191
192
|
# 全量
|
192
193
|
if @full_build
|
193
194
|
# 黑名单
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'cocoapods-mtxx-bin/helpers/buildAll/bin_helper'
|
2
3
|
|
3
4
|
module Pod
|
4
5
|
class Command
|
@@ -38,6 +39,7 @@ pod bin upload Pod1 1.0.0 Pod1.framework mtxxspecs --spec=Pod1.podspec
|
|
38
39
|
@file = argv.shift_argument
|
39
40
|
@repo = argv.shift_argument
|
40
41
|
@spec = argv.option('spec', nil)
|
42
|
+
@xcode_version = BinHelper.xcode_version
|
41
43
|
super
|
42
44
|
end
|
43
45
|
|
@@ -125,7 +127,7 @@ pod bin upload Pod1 1.0.0 Pod1.framework mtxxspecs --spec=Pod1.podspec
|
|
125
127
|
end
|
126
128
|
|
127
129
|
def source
|
128
|
-
url = "#{CBin.config.binary_download_url_str}/#{@name}/#{@version}/#{zip_file_name}"
|
130
|
+
url = "#{CBin.config.binary_download_url_str}/#{@xcode_version}/#{@name}/#{@version}/#{zip_file_name}"
|
129
131
|
{ http: url, type: 'zip' }
|
130
132
|
end
|
131
133
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'cocoapods-mtxx-bin/command/bin/init'
|
3
3
|
require 'cocoapods-mtxx-bin/command/bin/archive'
|
4
4
|
require 'cocoapods-mtxx-bin/command/bin/auto'
|
5
|
-
require 'cocoapods-mtxx-bin/command/bin/code'
|
5
|
+
# require 'cocoapods-mtxx-bin/command/bin/code'
|
6
6
|
require 'cocoapods-mtxx-bin/command/bin/update'
|
7
7
|
require 'cocoapods-mtxx-bin/command/bin/install'
|
8
8
|
# require 'cocoapods-mtxx-bin/command/bin/imy'
|
@@ -5,15 +5,37 @@ module CBin
|
|
5
5
|
class BinHelper
|
6
6
|
include Pod
|
7
7
|
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
@specs_str_md5_hash = Hash.new
|
11
|
+
end
|
12
|
+
|
8
13
|
# 二进制版本号(x.y.z.bin[md5前6位])
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
def version(pod_name, original_version, specifications)
|
15
|
+
# 有缓存从缓存中取,没有则新建
|
16
|
+
if @specs_str_md5_hash[pod_name].nil?
|
17
|
+
specs = specifications.map(&:name).select { |spec|
|
18
|
+
spec.include?(pod_name) && !spec.include?('/Binary')
|
19
|
+
}.sort!
|
20
|
+
specs << xcode_version
|
21
|
+
specs_str = specs.join('')
|
22
|
+
specs_str_md5 = Digest::MD5.hexdigest(specs_str)[0,6]
|
23
|
+
@specs_str_md5_hash[pod_name] = specs_str_md5
|
24
|
+
else
|
25
|
+
specs_str_md5 = @specs_str_md5_hash[pod_name]
|
26
|
+
end
|
27
|
+
"#{original_version}.bin#{specs_str_md5}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def xcode_version
|
31
|
+
@xcode_version ||= begin
|
32
|
+
`xcodebuild -version`.split(' ').join('')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.xcode_version
|
37
|
+
xcode_version = `xcodebuild -version`.split(' ').join('')
|
38
|
+
xcode_version
|
17
39
|
end
|
18
40
|
|
19
41
|
end
|
@@ -140,9 +140,13 @@ clean build \
|
|
140
140
|
BUILD
|
141
141
|
UI.info "#{command}"
|
142
142
|
output = `#{command}`
|
143
|
-
puts output
|
143
|
+
# puts output
|
144
144
|
if $CHILD_STATUS.exitstatus != 0
|
145
145
|
UI.info "#{@pod_target}(#{sdk}) 编译失败!".red
|
146
|
+
error_log_file = "#{temp_dir}/#{@pod_target}_error.log"
|
147
|
+
File.open(error_log_file, "w+") do |f|
|
148
|
+
f.write(output)
|
149
|
+
end
|
146
150
|
return false
|
147
151
|
end
|
148
152
|
return true
|
@@ -119,7 +119,7 @@ module CBin
|
|
119
119
|
|
120
120
|
def source
|
121
121
|
# url = "http://localhost:8080/frameworks/#{@pod_target.root_spec.module_name}/#{version}/zip"
|
122
|
-
url = "#{CBin.config.binary_download_url_str}/#{@pod_target.root_spec.module_name}/#{version}/#{@pod_target.root_spec.module_name}.framework_#{version}.zip"
|
122
|
+
url = "#{CBin.config.binary_download_url_str}/#{BinHelper.xcode_version}/#{@pod_target.root_spec.module_name}/#{version}/#{@pod_target.root_spec.module_name}.framework_#{version}.zip"
|
123
123
|
{ http: url, type: 'zip' }
|
124
124
|
end
|
125
125
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'cocoapods-mtxx-bin/helpers/buildAll/bin_helper'
|
2
3
|
|
3
4
|
module CBin
|
4
5
|
module BuildAll
|
@@ -22,8 +23,9 @@ module CBin
|
|
22
23
|
end
|
23
24
|
UI.info "Uploading binary zip file #{@pod_target.root_spec.name} (#{@version || @pod_target.root_spec.version})".yellow do
|
24
25
|
upload_url = CBin.config.binary_upload_url_str
|
25
|
-
# upload_url = "http://localhost:8080/frameworks"
|
26
|
-
|
26
|
+
# upload_url = "http://localhost:8080/frameworks" xcode_version
|
27
|
+
xcode_version = BinHelper.xcode_version
|
28
|
+
command = "curl -F \"name=#{@pod_target.product_module_name}\" -F \"version=#{@version || @pod_target.root_spec.version}\" -F \"xcode_version=#{xcode_version}\" -F \"file=@#{zip_file}\" #{upload_url}"
|
27
29
|
UI.info "#{command}"
|
28
30
|
json = `#{command}`
|
29
31
|
UI.info json
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module CBin
|
2
|
+
class PodSize
|
3
|
+
include Pod
|
4
|
+
|
5
|
+
# 存放大于阈值的Pod
|
6
|
+
@@pods = []
|
7
|
+
# 阈值,单位MB
|
8
|
+
@@size_threshold = 500
|
9
|
+
|
10
|
+
# 添加超过阈值的pod
|
11
|
+
def self.add_pod(pod)
|
12
|
+
if pod['size'].to_i < @@size_threshold * 1024
|
13
|
+
return
|
14
|
+
end
|
15
|
+
@@pods << pod
|
16
|
+
end
|
17
|
+
|
18
|
+
# 打印超过阈值的Pod库
|
19
|
+
def self.print_pods
|
20
|
+
if @@pods.empty?
|
21
|
+
return
|
22
|
+
end
|
23
|
+
UI.puts "\n"
|
24
|
+
UI.puts "以下Pod库下载大小大于阈值`#{@@size_threshold}MB`:".green
|
25
|
+
@@pods.map do |pod|
|
26
|
+
unit = 'KB'
|
27
|
+
size = pod['size'].to_i
|
28
|
+
if size >= 1024
|
29
|
+
unit = 'MB'
|
30
|
+
size = ('%.1f' % (size / 1024.0)).to_f
|
31
|
+
end
|
32
|
+
UI.puts " - #{pod['name']}:#{size}#{unit}".green
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -3,9 +3,103 @@ require 'parallel'
|
|
3
3
|
require 'cocoapods'
|
4
4
|
require 'xcodeproj'
|
5
5
|
require 'cocoapods-mtxx-bin/native/pod_source_installer'
|
6
|
+
require 'cocoapods-mtxx-bin/helpers/pod_size_helper'
|
6
7
|
|
7
8
|
module Pod
|
8
9
|
class Installer
|
10
|
+
|
11
|
+
def cost_time_hash
|
12
|
+
@cost_time_hash ||= begin
|
13
|
+
Hash.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# TODO: 不知道为啥无法hook
|
18
|
+
# 准备
|
19
|
+
alias old_prepare prepare
|
20
|
+
def prepare
|
21
|
+
start_time = Time.now
|
22
|
+
old_prepare
|
23
|
+
cost_time_hash['prepare'] = Time.now - start_time
|
24
|
+
end
|
25
|
+
|
26
|
+
# 依赖分析
|
27
|
+
alias old_resolve_dependencies resolve_dependencies
|
28
|
+
def resolve_dependencies
|
29
|
+
start_time = Time.now
|
30
|
+
analyzer = old_resolve_dependencies
|
31
|
+
cost_time_hash['resolve_dependencies'] = Time.now - start_time
|
32
|
+
analyzer
|
33
|
+
end
|
34
|
+
|
35
|
+
# 依赖下载
|
36
|
+
alias old_download_dependencies download_dependencies
|
37
|
+
def download_dependencies
|
38
|
+
start_time = Time.now
|
39
|
+
old_download_dependencies
|
40
|
+
cost_time_hash['download_dependencies'] = Time.now - start_time
|
41
|
+
end
|
42
|
+
|
43
|
+
# 验证target
|
44
|
+
alias old_validate_targets validate_targets
|
45
|
+
def validate_targets
|
46
|
+
start_time = Time.now
|
47
|
+
old_validate_targets
|
48
|
+
cost_time_hash['validate_targets'] = Time.now - start_time
|
49
|
+
end
|
50
|
+
|
51
|
+
# 集成
|
52
|
+
alias old_integrate integrate
|
53
|
+
def integrate
|
54
|
+
start_time = Time.now
|
55
|
+
old_integrate
|
56
|
+
cost_time_hash['integrate'] = Time.now - start_time
|
57
|
+
end
|
58
|
+
|
59
|
+
# 写入lock文件
|
60
|
+
def write_lockfiles
|
61
|
+
start_time = Time.now
|
62
|
+
@lockfile = generate_lockfile
|
63
|
+
|
64
|
+
UI.message "- Writing Lockfile in #{UI.path config.lockfile_path}" do
|
65
|
+
# No need to invoke Sandbox#update_changed_file here since this logic already handles checking if the
|
66
|
+
# contents of the file are the same.
|
67
|
+
@lockfile.write_to_disk(config.lockfile_path)
|
68
|
+
end
|
69
|
+
|
70
|
+
UI.message "- Writing Manifest in #{UI.path sandbox.manifest_path}" do
|
71
|
+
# No need to invoke Sandbox#update_changed_file here since this logic already handles checking if the
|
72
|
+
# contents of the file are the same.
|
73
|
+
@lockfile.write_to_disk(sandbox.manifest_path)
|
74
|
+
end
|
75
|
+
cost_time_hash['write_lockfiles'] = Time.now - start_time
|
76
|
+
end
|
77
|
+
|
78
|
+
# 执行post install
|
79
|
+
alias old_perform_post_install_actions perform_post_install_actions
|
80
|
+
def perform_post_install_actions
|
81
|
+
start_time = Time.now
|
82
|
+
old_perform_post_install_actions
|
83
|
+
cost_time_hash['perform_post_install_actions'] = Time.now - start_time
|
84
|
+
# 打印耗时
|
85
|
+
print_cost_time
|
86
|
+
# 打印大小大于阈值的库
|
87
|
+
CBin::PodSize.print_pods
|
88
|
+
end
|
89
|
+
|
90
|
+
# 打印耗时
|
91
|
+
def print_cost_time
|
92
|
+
UI.title '执行耗时:'.green do
|
93
|
+
UI.info '———————————————————————————————————————————————'.green
|
94
|
+
UI.info "|#{'Stage'.center(30)}|#{'Time(s)'.center(15)}|".green
|
95
|
+
UI.info '———————————————————————————————————————————————'.green
|
96
|
+
cost_time_hash.each do |key, value|
|
97
|
+
UI.info "|#{key.center(30)}|#{('%.3f' % value).to_s.center(15)}|".green
|
98
|
+
end
|
99
|
+
UI.info '———————————————————————————————————————————————'.green
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
9
103
|
alias old_create_pod_installer create_pod_installer
|
10
104
|
def create_pod_installer(pod_name)
|
11
105
|
installer = old_create_pod_installer(pod_name)
|
@@ -79,6 +173,7 @@ module Pod
|
|
79
173
|
|
80
174
|
module Downloader
|
81
175
|
class Cache
|
176
|
+
require 'cocoapods-mtxx-bin/helpers/pod_size_helper'
|
82
177
|
# 多线程锁
|
83
178
|
@@lock = Mutex.new
|
84
179
|
|
@@ -100,6 +195,30 @@ module Pod
|
|
100
195
|
version_file.open('w') { |f| f << Pod::VERSION }
|
101
196
|
end
|
102
197
|
end
|
198
|
+
|
199
|
+
def uncached_pod(request)
|
200
|
+
in_tmpdir do |target|
|
201
|
+
result, podspecs = download(request, target)
|
202
|
+
result.location = nil
|
203
|
+
|
204
|
+
# 记录下载大小大于阈值的库及大小
|
205
|
+
if File.exist?(target.to_s)
|
206
|
+
dir_size = `du -sk #{target.to_s}`.strip().split(' ')[0]
|
207
|
+
CBin::PodSize.add_pod({'name' => request.name, 'size' => dir_size})
|
208
|
+
end
|
209
|
+
|
210
|
+
podspecs.each do |name, spec|
|
211
|
+
destination = path_for_pod(request, :name => name, :params => result.checkout_options)
|
212
|
+
copy_and_clean(target, destination, spec)
|
213
|
+
write_spec(spec, path_for_spec(request, :name => name, :params => result.checkout_options))
|
214
|
+
if request.name == name
|
215
|
+
result.location = destination
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
result
|
220
|
+
end
|
221
|
+
end
|
103
222
|
end
|
104
223
|
end
|
105
224
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Pod
|
2
|
+
class Lockfile
|
3
|
+
def detect_changes_with_podfile(podfile)
|
4
|
+
result = {}
|
5
|
+
[:added, :changed, :removed, :unchanged].each { |k| result[k] = [] }
|
6
|
+
|
7
|
+
installed_deps = {}
|
8
|
+
dependencies.each do |dep|
|
9
|
+
name = dep.root_name
|
10
|
+
installed_deps[name] ||= dependencies_to_lock_pod_named(name)
|
11
|
+
end
|
12
|
+
|
13
|
+
installed_deps = installed_deps.values.flatten(1).group_by(&:name)
|
14
|
+
|
15
|
+
podfile_dependencies = podfile.dependencies
|
16
|
+
podfile_dependencies_by_name = podfile_dependencies.group_by(&:name)
|
17
|
+
|
18
|
+
all_dep_names = (dependencies + podfile_dependencies).map(&:name).uniq
|
19
|
+
all_dep_names.each do |name|
|
20
|
+
installed_dep = installed_deps[name]
|
21
|
+
installed_dep &&= installed_dep.first
|
22
|
+
|
23
|
+
# 需要将二进制版本的 specific_version 最后一位去掉,否则二进制下依赖解析很慢
|
24
|
+
unless installed_dep.nil?
|
25
|
+
installed_dep_version = installed_dep.specific_version.to_s
|
26
|
+
if installed_dep_version.include?('bin')
|
27
|
+
req_arr = installed_dep_version.split('.').delete_if { |r| r.include?('bin') }
|
28
|
+
installed_dep_version = req_arr.join('.')
|
29
|
+
installed_dep.specific_version = Pod::Version.create(installed_dep_version)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
podfile_dep = podfile_dependencies_by_name[name]
|
34
|
+
podfile_dep &&= podfile_dep.first
|
35
|
+
|
36
|
+
if installed_dep.nil? then key = :added
|
37
|
+
elsif podfile_dep.nil? then key = :removed
|
38
|
+
elsif podfile_dep.compatible?(installed_dep) then key = :unchanged
|
39
|
+
else key = :changed
|
40
|
+
end
|
41
|
+
result[key] << name
|
42
|
+
end
|
43
|
+
result
|
44
|
+
end
|
45
|
+
|
46
|
+
class << self
|
47
|
+
def generate_spec_repos(spec_repos)
|
48
|
+
result = Hash.new
|
49
|
+
spec_repos.map do |source, specs|
|
50
|
+
next unless source
|
51
|
+
next if specs.empty?
|
52
|
+
key = source.url || source.name
|
53
|
+
|
54
|
+
# save `trunk` as 'trunk' so that the URL itself can be changed without lockfile churn
|
55
|
+
key = Pod::TrunkSource::TRUNK_REPO_NAME if source.name == Pod::TrunkSource::TRUNK_REPO_NAME
|
56
|
+
|
57
|
+
value = specs.map { |s| s.root.name }.uniq
|
58
|
+
# 合并重复的source源,而不是替换
|
59
|
+
if result[key].nil?
|
60
|
+
result[key] = YAMLHelper.sorted_array(value)
|
61
|
+
else
|
62
|
+
result[key] = YAMLHelper.sorted_array(result[key].concat(value))
|
63
|
+
end
|
64
|
+
end
|
65
|
+
result.compact
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -131,7 +131,9 @@ module Pod
|
|
131
131
|
value.payload = dep
|
132
132
|
end
|
133
133
|
|
134
|
+
start_time = Time.now
|
134
135
|
@activated = Molinillo::Resolver.new(self, self).resolve(dependencies, locked_dependencies)
|
136
|
+
UI.puts "Molinillo resolve耗时:#{'%.1f' % (Time.now - start_time)}s".green
|
135
137
|
resolver_specs_by_target
|
136
138
|
rescue Molinillo::ResolverError => e
|
137
139
|
handle_resolver_error(e)
|
@@ -177,7 +179,7 @@ module Pod
|
|
177
179
|
use_binary = use_binary_rspecs.include?(rspec)
|
178
180
|
if use_binary
|
179
181
|
source = sources_manager.binary_source
|
180
|
-
spec_version =
|
182
|
+
spec_version = version_helper.version(rspec.root.name, rspec.spec.version, specifications)
|
181
183
|
else
|
182
184
|
# 获取podfile中的source
|
183
185
|
podfile_sources = podfile.sources.uniq.map { |source| sources_manager.source_with_name_or_url(source) }
|
@@ -263,6 +265,12 @@ module Pod
|
|
263
265
|
specs_by_target
|
264
266
|
end
|
265
267
|
end
|
268
|
+
|
269
|
+
def version_helper
|
270
|
+
@version_helper ||= begin
|
271
|
+
CBin::BuildAll::BinHelper.new
|
272
|
+
end
|
273
|
+
end
|
266
274
|
end
|
267
275
|
|
268
276
|
if Pod.match_version?('~> 1.4.0')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-mtxx-bin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -135,6 +135,7 @@ files:
|
|
135
135
|
- lib/cocoapods-mtxx-bin/helpers/framework_builder.rb
|
136
136
|
- lib/cocoapods-mtxx-bin/helpers/library.rb
|
137
137
|
- lib/cocoapods-mtxx-bin/helpers/library_builder.rb
|
138
|
+
- lib/cocoapods-mtxx-bin/helpers/pod_size_helper.rb
|
138
139
|
- lib/cocoapods-mtxx-bin/helpers/sources_helper.rb
|
139
140
|
- lib/cocoapods-mtxx-bin/helpers/spec_creator.rb
|
140
141
|
- lib/cocoapods-mtxx-bin/helpers/spec_files_helper.rb
|
@@ -148,6 +149,7 @@ files:
|
|
148
149
|
- lib/cocoapods-mtxx-bin/native/installation_options.rb
|
149
150
|
- lib/cocoapods-mtxx-bin/native/installer.rb
|
150
151
|
- lib/cocoapods-mtxx-bin/native/linter.rb
|
152
|
+
- lib/cocoapods-mtxx-bin/native/lockfile.rb
|
151
153
|
- lib/cocoapods-mtxx-bin/native/path_source.rb
|
152
154
|
- lib/cocoapods-mtxx-bin/native/pod_source_installer.rb
|
153
155
|
- lib/cocoapods-mtxx-bin/native/pod_target_installer.rb
|