cocoapods-dongjia 1.1.6 → 1.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cocoapods-dongjia/command/install.rb +0 -6
- data/lib/cocoapods-dongjia/command/open.rb +0 -6
- data/lib/cocoapods-dongjia/command/strip.rb +0 -3
- data/lib/cocoapods-dongjia/gem_version.rb +3 -3
- data/lib/cocoapods_plugin.rb +11 -4
- data/lib/dongjia_binarization.rb +191 -126
- metadata +4 -5
- data/lib/dongjia_branch_inspector.rb +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abe6387bbccd1ac19c893b9c384025c976cf5a8975668725670aac190b750abb
|
4
|
+
data.tar.gz: 125582ad4f0aa628467990eb2b43e32007f43043044a4a57a17331a1893bd734
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce36c1a22df3189675dec1775e998fbfdf2a6e413c730db99ea6abfdf90bbf8cb6af04df6d00a90b9b8ce1e7c0c65ee5e4bf1274c2290880b87a03f4b0e44fe6
|
7
|
+
data.tar.gz: d9a8b6d5b4496424efb19e4499edacaabf232cdf3069f7ec10cc554de5b2771fe2d63c2596e1e21a5055e3f3197ff3fa7227b9d54b0c31a594e43e852759f93f
|
@@ -1,11 +1,8 @@
|
|
1
1
|
require 'cocoapods'
|
2
2
|
|
3
3
|
module Pod
|
4
|
-
|
5
4
|
class Command
|
6
|
-
|
7
5
|
class Open < Command
|
8
|
-
|
9
6
|
self.summary = '快速打开项目的 .xcworkspace'
|
10
7
|
|
11
8
|
self.description = <<-DESC
|
@@ -24,9 +21,6 @@ module Pod
|
|
24
21
|
def run
|
25
22
|
`open #{@workspace_path}`
|
26
23
|
end
|
27
|
-
|
28
24
|
end
|
29
|
-
|
30
25
|
end
|
31
|
-
|
32
26
|
end
|
data/lib/cocoapods_plugin.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'cocoapods-dongjia/command'
|
2
2
|
require_relative 'dongjia_source'
|
3
|
-
require_relative 'dongjia_branch_inspector'
|
4
3
|
require_relative 'dongjia_enterprise_inspector'
|
5
4
|
require_relative 'dongjia_pods_iterator'
|
6
5
|
require_relative 'dongjia_router'
|
@@ -15,9 +14,17 @@ module Dongjia
|
|
15
14
|
|
16
15
|
Pod::HooksManager.register('cocoapods-dongjia', :pre_install) do |ctx, params|
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
private_config_path = ctx.podfile.defined_in_file.dirname.join("PrivateConfig.yml")
|
18
|
+
if private_config_path.exist?
|
19
|
+
private_config = YAML.load(File.read(private_config_path))
|
20
|
+
if private_config.is_a?(Hash)
|
21
|
+
binary = private_config["binary"]
|
22
|
+
if binary.is_a?(Hash)
|
23
|
+
Binarization.load_private_config(ctx, binary)
|
24
|
+
Binarization.remove_dirty_pod_projects()
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
21
28
|
|
22
29
|
podfile = ctx.podfile
|
23
30
|
|
data/lib/dongjia_binarization.rb
CHANGED
@@ -14,16 +14,16 @@ module Dongjia
|
|
14
14
|
@@ctx = nil
|
15
15
|
@@pod_cfg = {}
|
16
16
|
@@enabled = false
|
17
|
-
@@target_name = ""
|
18
17
|
@@submodules = {}
|
19
18
|
@@server_host = ""
|
20
19
|
|
21
|
-
#
|
22
|
-
@@
|
20
|
+
@@target_name = "dongjia" # 项目的 target 名
|
21
|
+
@@pods_proj = nil # Pods.xcodeproj
|
22
|
+
@@pods_target = nil # Pods.xcodeproj 中的 target 对象
|
23
23
|
|
24
24
|
class << self
|
25
25
|
# 加载配置
|
26
|
-
def load_private_config(ctx)
|
26
|
+
def load_private_config(ctx, binary)
|
27
27
|
@@ctx = ctx
|
28
28
|
|
29
29
|
submodule_info = load_submodules_info
|
@@ -34,107 +34,81 @@ module Dongjia
|
|
34
34
|
]
|
35
35
|
}
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
{ sha: s["sha"], binary: s["binary"], }
|
54
|
-
]
|
55
|
-
}.each { |k, v|
|
56
|
-
ignored = ignores.include?(k)
|
57
|
-
v[:binary] &&= !ignored && @@enabled
|
58
|
-
v[:ignored] = ignored
|
59
|
-
}
|
60
|
-
rescue => e
|
61
|
-
puts "Error: #{e}"
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
37
|
+
@@enabled ||= binary["enabled"]
|
38
|
+
@@server_host = binary["server_host"]
|
39
|
+
@@target_name = (binary["target_name"] || "").strip
|
40
|
+
ignores = binary["ignores"] || []
|
41
|
+
|
42
|
+
if @@enabled
|
43
|
+
@@submodules = query_components_existing(submodule_info).to_h { |s|
|
44
|
+
[
|
45
|
+
s["name"],
|
46
|
+
{ sha: s["sha"], binary: s["binary"], }
|
47
|
+
]
|
48
|
+
}.each { |k, v|
|
49
|
+
ignored = ignores.include?(k)
|
50
|
+
v[:binary] &&= !ignored && @@enabled
|
51
|
+
v[:ignored] = ignored
|
52
|
+
}
|
65
53
|
end
|
54
|
+
rescue => e
|
55
|
+
puts "Binarization error: #{e}"
|
66
56
|
end
|
67
57
|
|
68
58
|
# 移除脏工程
|
69
59
|
def remove_dirty_pod_projects
|
70
|
-
@@
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
60
|
+
if @@enabled
|
61
|
+
@@submodules
|
62
|
+
.filter { |k,v| !v[:binary] }
|
63
|
+
.map { |k,v| k }
|
64
|
+
.each { |name|
|
65
|
+
path = File.join(@@ctx.sandbox_root, "#{name}.xcodeproj")
|
66
|
+
next unless File.exist?(path)
|
67
|
+
proj = Xcodeproj::Project.open(path)
|
68
|
+
if proj.targets.map(&:name).include?("#{name}-Binary")
|
69
|
+
FileUtils.rm_rf(path)
|
70
|
+
end
|
71
|
+
}
|
72
|
+
else
|
73
|
+
# 不启用,清除所有包含 -Binary 的工程
|
74
|
+
removing_paths = []
|
75
|
+
Dir.foreach(@@ctx.sandbox_root) { |filename|
|
76
|
+
next if File.extname(filename) != '.xcodeproj'
|
77
|
+
pod_name = filename.delete_suffix('.xcodeproj')
|
78
|
+
next if pod_name == "Pods"
|
79
|
+
process_pod_xcconfig(pod_name)
|
80
|
+
path = File.join(@@ctx.sandbox_root, filename)
|
76
81
|
proj = Xcodeproj::Project.open(path)
|
77
|
-
|
78
|
-
|
79
|
-
end
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
|
-
# 加载子模块信息
|
84
|
-
def load_submodules_info
|
85
|
-
# 获取子模块的哈希值
|
86
|
-
def git_sha_value(component_name)
|
87
|
-
git_dir = ".git/modules/componentsOnRemote/#{component_name}"
|
88
|
-
git_sha = File.read(File.join(git_dir, "HEAD")).strip
|
89
|
-
if git_sha.start_with?("ref: ")
|
90
|
-
head_file = git_sha[5, git_sha.length]
|
91
|
-
git_sha = File.read(File.join(git_dir, head_file)).strip
|
92
|
-
end
|
93
|
-
git_sha
|
94
|
-
end
|
95
|
-
|
96
|
-
Dir.foreach("./componentsOnRemote").to_a
|
97
|
-
.delete_if { |x| x.start_with?('.') }
|
98
|
-
.map { |comp|
|
99
|
-
{
|
100
|
-
name: comp,
|
101
|
-
sha: git_sha_value(comp),
|
102
|
-
binary: false,
|
82
|
+
included_binary_target = proj.targets.map(&:name).any? { |target_name|
|
83
|
+
target_name.end_with?("-Binary")
|
103
84
|
}
|
85
|
+
removing_paths << path if included_binary_target
|
104
86
|
}
|
87
|
+
removing_paths.each { |path| FileUtils.rm_rf(path) }
|
88
|
+
end
|
105
89
|
end
|
106
90
|
|
107
91
|
# 开始处理二进制
|
108
92
|
def process(installer)
|
109
|
-
return unless @@config_file_exist
|
110
93
|
return if @@ctx == nil || @@ctx.sandbox_root == nil
|
111
94
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
}
|
119
|
-
|
120
|
-
pods_proj = Xcodeproj::Project.open(File.join(@@ctx.sandbox_root, "Pods.xcodeproj"))
|
121
|
-
if @@target_name && !@@target_name.empty?
|
122
|
-
pods_target = pods_proj.targets.find { |t| t.name == "Pods-#{@@target_name}" }
|
123
|
-
else
|
124
|
-
pods_target = pods_proj.targets.first
|
95
|
+
path = File.join(@@ctx.sandbox_root, "Pods.xcodeproj")
|
96
|
+
@@pods_proj = Xcodeproj::Project.open(path) if File.exist?(path)
|
97
|
+
@@pods_target = (@@target_name.empty?) ? @@pods_proj.targets.first : @@pods_proj.target_by_name("Pods-#{@@target_name}")
|
98
|
+
if @@pods_target.nil?
|
99
|
+
Pod::UI.warn("[Binarization] 未完成二进制转换,target_name 配置错误")
|
100
|
+
return
|
125
101
|
end
|
126
102
|
|
103
|
+
setup_pod_cfg(installer)
|
104
|
+
|
127
105
|
download_frameworks
|
128
106
|
|
129
|
-
each_pod_proj do |name|
|
130
|
-
|
131
|
-
cfg = @@pod_cfg[name]
|
132
|
-
cfg[:project] = proj
|
133
|
-
|
134
|
-
cfg[:save] = process_target_and_dependencies(proj, name, pods_target, cfg)
|
107
|
+
each_pod_proj do |name, cfg|
|
108
|
+
process_pods_project_dependencies(name)
|
135
109
|
|
136
110
|
# 处理 Binary Group
|
137
|
-
process_binary_group(
|
111
|
+
process_binary_group(name)
|
138
112
|
|
139
113
|
# 处理 XXX-xcframeworks.sh 脚本
|
140
114
|
process_xcframeworks_shell(name)
|
@@ -143,38 +117,68 @@ module Dongjia
|
|
143
117
|
end
|
144
118
|
|
145
119
|
# 更新依赖关系
|
146
|
-
each_pod_proj do |name|
|
147
|
-
cfg = @@pod_cfg[name]
|
148
|
-
proj = cfg[:project]
|
120
|
+
each_pod_proj do |name, cfg|
|
149
121
|
target = cfg[:target]
|
150
122
|
next if target.nil?
|
151
123
|
delete_list = []
|
124
|
+
add_list = []
|
152
125
|
target.dependencies.each { |dep|
|
153
|
-
|
126
|
+
dep_pod_name = real_name(dep.name)
|
127
|
+
dep_cfg = @@pod_cfg[dep_pod_name]
|
154
128
|
next if dep_cfg.nil?
|
155
|
-
if dep_cfg[:
|
156
|
-
|
129
|
+
if dep_cfg[:target].name != dep.name
|
130
|
+
add_list << dep_cfg[:target]
|
157
131
|
delete_list << dep
|
158
132
|
end
|
159
133
|
}
|
160
134
|
target.dependencies.delete_if { |dep| delete_list.include?(dep) }
|
161
|
-
|
135
|
+
add_list.each { |t| target.add_dependency(t) }
|
136
|
+
cfg[:save] ||= !delete_list.empty? || !add_list.empty?
|
162
137
|
end
|
163
138
|
|
164
139
|
# 保存
|
165
|
-
|
166
|
-
each_pod_proj do |name|
|
167
|
-
cfg = @@pod_cfg[name]
|
168
|
-
cfg[:project].save if cfg[:save]
|
169
|
-
should_save ||= cfg[:save]
|
170
|
-
end
|
171
|
-
pods_proj.save if should_save
|
140
|
+
save_projects
|
172
141
|
|
173
142
|
process_aggregate_target_xcconfig(installer.aggregate_targets.first.name)
|
174
143
|
end
|
175
144
|
|
176
145
|
private
|
177
146
|
|
147
|
+
# 加载配置
|
148
|
+
def setup_pod_cfg(installer)
|
149
|
+
installer.analysis_result.podfile_dependency_cache.podfile_dependencies.each { |dep|
|
150
|
+
name = dep.name.split('/').first
|
151
|
+
cfg = @@submodules[name] || {}
|
152
|
+
cfg[:binary] = false unless cfg[:binary]
|
153
|
+
cfg[:save] = false unless cfg[:save]
|
154
|
+
cfg[:project] = Xcodeproj::Project.open(File.join(@@ctx.sandbox_root, "#{name}.xcodeproj"))
|
155
|
+
@@pod_cfg[name] = cfg
|
156
|
+
}
|
157
|
+
end
|
158
|
+
|
159
|
+
# 获取实际的 pod 名,如果有 -Binary 后缀,则去除后缀
|
160
|
+
def real_name(name)
|
161
|
+
name = name.delete_suffix("-Binary") if name.end_with?("-Binary")
|
162
|
+
return name
|
163
|
+
end
|
164
|
+
|
165
|
+
def save_projects
|
166
|
+
if Pod::Config.instance.verbose == true
|
167
|
+
pods_should_save = @@pod_cfg.filter { |k, v| v[:save] }.keys
|
168
|
+
Pod::UI.notice "Saving Pods project" unless pods_should_save.empty?
|
169
|
+
pods_should_save.each { |name|
|
170
|
+
puts " #{name}"
|
171
|
+
}
|
172
|
+
end
|
173
|
+
|
174
|
+
should_save = false
|
175
|
+
each_pod_proj do |name, cfg|
|
176
|
+
cfg[:project].save if cfg[:save]
|
177
|
+
should_save ||= cfg[:save]
|
178
|
+
end
|
179
|
+
@@pods_proj.save if !@@pods_proj.nil? && should_save
|
180
|
+
end
|
181
|
+
|
178
182
|
# 遍历 Pods 目录下的 xcodeproj
|
179
183
|
def each_pod_proj
|
180
184
|
Dir.foreach(@@ctx.sandbox_root) do |filename|
|
@@ -184,13 +188,15 @@ module Dongjia
|
|
184
188
|
next if name == 'Pods'
|
185
189
|
|
186
190
|
cfg = @@pod_cfg[name]
|
191
|
+
next if cfg.nil?
|
187
192
|
|
188
|
-
yield(name) if block_given?
|
193
|
+
yield(name, cfg) if block_given?
|
189
194
|
end
|
190
195
|
end
|
191
196
|
|
192
197
|
# 向服务器查询哪些 Pod 需要打包
|
193
198
|
def query_components_existing(components)
|
199
|
+
return components unless @@enabled
|
194
200
|
result = components
|
195
201
|
begin
|
196
202
|
uri = URI.parse(URI::join(@@server_host, 'api/binary/checkup').to_s)
|
@@ -204,49 +210,94 @@ module Dongjia
|
|
204
210
|
end
|
205
211
|
result = JSON.parse(resp.body).dig('res', 'components')
|
206
212
|
rescue => e
|
207
|
-
puts "
|
213
|
+
puts "Binarization error: #{e}"
|
208
214
|
end
|
209
215
|
return result
|
210
216
|
end
|
211
217
|
|
212
|
-
|
218
|
+
# 加载子模块信息
|
219
|
+
def load_submodules_info
|
220
|
+
return [] unless File.exist?("./componentsOnRemote")
|
221
|
+
|
222
|
+
# 获取子模块的哈希值
|
223
|
+
def git_sha_value(component_name)
|
224
|
+
git_dir = ".git/modules/componentsOnRemote/#{component_name}"
|
225
|
+
git_sha = File.read(File.join(git_dir, "HEAD")).strip
|
226
|
+
if git_sha.start_with?("ref: ")
|
227
|
+
head_file = git_sha[5, git_sha.length]
|
228
|
+
head_path = File.join(git_dir, head_file)
|
229
|
+
if File.exist?(head_path)
|
230
|
+
git_sha = File.read(head_path).strip
|
231
|
+
else
|
232
|
+
git_sha = nil
|
233
|
+
end
|
234
|
+
end
|
235
|
+
git_sha
|
236
|
+
end
|
237
|
+
|
238
|
+
Dir.foreach("./componentsOnRemote").to_a
|
239
|
+
.delete_if { |x| x.start_with?('.') }
|
240
|
+
.delete_if { |x|
|
241
|
+
# 如果子模块初始化错误,会导致目录下没有内容,需要排除掉
|
242
|
+
Dir.foreach("./componentsOnRemote/#{x}").to_a.all? { |f| f.start_with?(".") }
|
243
|
+
}
|
244
|
+
.map { |comp|
|
245
|
+
{
|
246
|
+
name: comp,
|
247
|
+
sha: git_sha_value(comp),
|
248
|
+
binary: false,
|
249
|
+
}
|
250
|
+
}
|
251
|
+
end
|
252
|
+
|
253
|
+
# 处理 Pods.xcodeproj 的依赖
|
254
|
+
def process_pods_project_dependencies(name)
|
255
|
+
cfg = @@pod_cfg[name]
|
256
|
+
proj = cfg[:project]
|
213
257
|
changed = false
|
214
|
-
|
215
|
-
|
258
|
+
|
259
|
+
latest_target = nil
|
260
|
+
removing_target_name = nil
|
216
261
|
|
217
262
|
if cfg[:binary] == true
|
218
|
-
# 使用 Binary 版本的 target
|
263
|
+
# 使用 Binary 版本的 target,如果不存在则创建一个
|
264
|
+
binary_target = proj.target_by_name("#{name}-Binary")
|
219
265
|
if binary_target == nil
|
220
266
|
binary_target = add_binary_target(proj, name)
|
221
267
|
changed = true
|
222
268
|
end
|
223
269
|
|
224
|
-
|
225
|
-
|
226
|
-
# 移除源码版本的 target
|
227
|
-
if source_target
|
228
|
-
replace_target_dependency(pods_target, source_target, binary_target)
|
229
|
-
proj.targets.delete_if { |t| t == source_target }
|
230
|
-
changed = true
|
231
|
-
end
|
270
|
+
latest_target = binary_target
|
271
|
+
removing_target_name = name
|
232
272
|
else
|
233
|
-
@@pod_cfg[name][:target] = source_target
|
234
273
|
# 使用源码版本的 target
|
274
|
+
source_target = proj.target_by_name(name)
|
235
275
|
source_target.build_configurations.each { |cfg|
|
236
276
|
if cfg.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] != "YES"
|
237
277
|
cfg.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
|
238
278
|
changed = true
|
239
279
|
end
|
240
280
|
}
|
281
|
+
|
282
|
+
latest_target = source_target
|
283
|
+
removing_target_name = "#{name}-Binary"
|
241
284
|
end
|
242
|
-
|
285
|
+
|
286
|
+
cfg[:target] = latest_target
|
287
|
+
|
288
|
+
# 更新依赖
|
289
|
+
changed = update_pods_target_dependency(removing_target_name, latest_target) || changed
|
290
|
+
changed = proj.targets.map(&:name).include?(removing_target_name) || changed
|
291
|
+
proj.targets.delete_if { |t| t.name == removing_target_name }
|
292
|
+
|
293
|
+
cfg[:save] = changed
|
243
294
|
end
|
244
295
|
|
245
|
-
#
|
296
|
+
# 处理组件 pod 的 xcconfig
|
246
297
|
def process_pod_xcconfig(name)
|
247
298
|
# 根据 pod 是源码还是二进制包,切换路径为 PODS_CONFIGURATION_BUILD_DIR 或 PODS_XCFRAMEWORKS_BUILD_DIR
|
248
299
|
["debug", "release"].each { |cfg_name|
|
249
|
-
cfg_path = Pathname("
|
300
|
+
cfg_path = Pathname(File.join(@@ctx.sandbox_root, "Target Support Files", name, "#{name}.#{cfg_name}.xcconfig"))
|
250
301
|
next if not File.exist?(cfg_path)
|
251
302
|
cfg = Xcodeproj::Config.new(cfg_path)
|
252
303
|
fsp_str = cfg.attributes["FRAMEWORK_SEARCH_PATHS"] || "$(inherited)"
|
@@ -283,7 +334,7 @@ module Dongjia
|
|
283
334
|
# 处理 Pods/Target Support Files/Pods-项目名/Pods-项目名.debug(release).xcconfig
|
284
335
|
# 所有被二进制化的 pod,增加 "${PODS_XCFRAMEWORKS_BUILD_DIR}/#{pod_name}"
|
285
336
|
["debug", "release"].each { |cfg_name|
|
286
|
-
cfg_path = Pathname("
|
337
|
+
cfg_path = Pathname(File.join(@@ctx.sandbox_root, "Target Support Files", aggregate_target_name, "#{aggregate_target_name}.#{cfg_name}.xcconfig"))
|
287
338
|
next if not File.exist?(cfg_path)
|
288
339
|
cfg = Xcodeproj::Config.new(cfg_path)
|
289
340
|
fsp = cfg.attributes["FRAMEWORK_SEARCH_PATHS"].split(" ") || ["$(inherited)"]
|
@@ -316,20 +367,33 @@ module Dongjia
|
|
316
367
|
|
317
368
|
# 添加依赖
|
318
369
|
bin_target.dependencies.replace(source_target.dependencies)
|
370
|
+
|
319
371
|
return bin_target
|
320
372
|
end
|
321
373
|
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
374
|
+
# 更新 Pods.xcodeproj 中 target 的依赖关系
|
375
|
+
def update_pods_target_dependency(removing_target_name, new_target)
|
376
|
+
dep_names = @@pods_target.dependencies.map(&:name)
|
377
|
+
changed = false
|
378
|
+
|
379
|
+
index = dep_names.index(removing_target_name)
|
380
|
+
if index
|
381
|
+
@@pods_target.dependencies.delete_at(index)
|
382
|
+
changed = true
|
383
|
+
end
|
384
|
+
|
385
|
+
index = dep_names.index(new_target.name)
|
386
|
+
unless index
|
387
|
+
@@pods_target.add_dependency(new_target)
|
388
|
+
changed = true
|
389
|
+
end
|
390
|
+
|
391
|
+
return changed
|
329
392
|
end
|
330
393
|
|
331
394
|
# 下载 framework 到 Pods/_Frameworks 目录下
|
332
395
|
def download_frameworks
|
396
|
+
return unless @@enabled
|
333
397
|
framework_root = File.join(@@ctx.sandbox_root, "_Frameworks")
|
334
398
|
cache_root = File.join(framework_root, "Caches")
|
335
399
|
FileUtils.mkdir_p(cache_root) unless File.exist?(cache_root)
|
@@ -359,8 +423,9 @@ module Dongjia
|
|
359
423
|
}
|
360
424
|
end
|
361
425
|
|
362
|
-
def process_binary_group(
|
426
|
+
def process_binary_group(name)
|
363
427
|
cfg = @@pod_cfg[name]
|
428
|
+
proj = cfg[:project]
|
364
429
|
binary_group = proj.groups.find { |g| g.name == "Binary" }
|
365
430
|
if cfg[:binary] == true
|
366
431
|
if binary_group == nil
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-dongjia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jiangzhuoyi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06
|
11
|
+
date: 2021-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,7 +112,6 @@ files:
|
|
112
112
|
- lib/cocoapods-dongjia/gem_version.rb
|
113
113
|
- lib/cocoapods_plugin.rb
|
114
114
|
- lib/dongjia_binarization.rb
|
115
|
-
- lib/dongjia_branch_inspector.rb
|
116
115
|
- lib/dongjia_config.rb
|
117
116
|
- lib/dongjia_enterprise_inspector.rb
|
118
117
|
- lib/dongjia_pods_iterator.rb
|
@@ -130,8 +129,8 @@ licenses:
|
|
130
129
|
- MIT
|
131
130
|
metadata:
|
132
131
|
update_desc: |2
|
133
|
-
-
|
134
|
-
-
|
132
|
+
- 修复源码和二进制切换后的集成依赖问题
|
133
|
+
- 修复一些导致 crash 的问题
|
135
134
|
post_install_message:
|
136
135
|
rdoc_options: []
|
137
136
|
require_paths:
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'cocoapods'
|
2
|
-
|
3
|
-
module Pod
|
4
|
-
|
5
|
-
class Podfile
|
6
|
-
|
7
|
-
gitdir = File.join(Dir.pwd, '.git')
|
8
|
-
if File.exist?(gitdir)
|
9
|
-
|
10
|
-
# 获取当前分支,仅对 dev 和 master 进行校验
|
11
|
-
branch = `git symbolic-ref --short -q HEAD`.strip
|
12
|
-
if branch == 'dev' or branch == 'master'
|
13
|
-
|
14
|
-
# Hook pod 方法
|
15
|
-
alias_method :pod_alias_by_inspector, :pod
|
16
|
-
|
17
|
-
def pod(name = nil, *requirements, &block)
|
18
|
-
|
19
|
-
if name.start_with?('DJ') && requirements.count > 0
|
20
|
-
req = requirements.first
|
21
|
-
if req[:branch] && req[:branch] != 'master'
|
22
|
-
UI.warn "检测到 #{name} 指向了分支 #{req[:branch]}\n"
|
23
|
-
exit -1
|
24
|
-
elsif req[:tag]
|
25
|
-
UI.warn "检测到 #{name} 指向了标签 #{req[:tag]}\n"
|
26
|
-
exit -1
|
27
|
-
elsif req[:commit]
|
28
|
-
UI.warn "检测到 #{name} 指向了节点 #{req[:commit]}\n"
|
29
|
-
exit -1
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
pod_alias_by_inspector(name, *requirements, &block)
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|