cocoapods-dev-env 0.9.8 → 2.0.2
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/.gitignore +1 -0
- data/Gemfile.lock +20 -0
- data/cocoapods-dev-env.gemspec +1 -0
- data/lib/cocoapods/dev/env/version.rb +1 -1
- data/lib/cocoapods_plugin.rb +256 -144
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87f011b42c1df26a04c8ac866532a91eef0f0d7e1d854bf97e369714107c0844
|
4
|
+
data.tar.gz: 9befa3b3fe9f53aa5adbd201be02fa44d33ff48b56bada40c433e90235706f0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce2e9238b1dfb6dad9ce583adb3b9cd61bf7744e91e376dd51dfd7a516d2cbe1c8f95b2469a212c41d4b1f9cbb4be9f915f9ccb0d0b2055f52ff140fa23fe069
|
7
|
+
data.tar.gz: 7d30f8dd72ef7bc78625f144e5fdd517c10f55ffec6c6985ae00fe9023673d3c6132f8cca17908f350c2bf15e55845769c684c606d729a2932ed2f5073c69f03
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cocoapods-dev-env (2.0.2)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
rake (10.5.0)
|
10
|
+
|
11
|
+
PLATFORMS
|
12
|
+
ruby
|
13
|
+
|
14
|
+
DEPENDENCIES
|
15
|
+
bundler (~> 2.0)
|
16
|
+
cocoapods-dev-env!
|
17
|
+
rake (~> 10.0)
|
18
|
+
|
19
|
+
BUNDLED WITH
|
20
|
+
2.1.4
|
data/cocoapods-dev-env.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
|
+
spec.add_dependency 'luna-binary-uploader'
|
31
32
|
spec.add_development_dependency "bundler", "~> 2.0"
|
32
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
33
34
|
end
|
data/lib/cocoapods_plugin.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "file_processer"
|
2
|
+
require "luna-binary-uploader"
|
2
3
|
|
3
4
|
Pod::HooksManager.register('cocoapods-dev-env', :pre_install) do |installer|
|
4
5
|
podfile = installer.podfile
|
@@ -23,10 +24,15 @@ module Pod
|
|
23
24
|
def self.keyword
|
24
25
|
:dev_env # 'dev'/'beta'/'release'
|
25
26
|
end
|
27
|
+
def self.binary_key
|
28
|
+
:dev_env_use_binary # true / false
|
29
|
+
end
|
26
30
|
UI.message "🎉 plugin cocoapods-dev-env loaded 🎉".green
|
27
31
|
end
|
28
32
|
class Podfile
|
29
33
|
class TargetDefinition
|
34
|
+
attr_reader :binary_repo_url
|
35
|
+
attr_reader :binary_source
|
30
36
|
|
31
37
|
def searchAndOpenLocalExample(path)
|
32
38
|
_currentDir = Dir.pwd
|
@@ -161,10 +167,16 @@ class Podfile
|
|
161
167
|
index = STDIN.gets.to_i - 1
|
162
168
|
end until (index >= 0 && index < podfile.sources.size)
|
163
169
|
source = podfile.sources[index]
|
170
|
+
UI.puts "#{"选择了发布到: ".yellow}. #{source.green}(#{index + 1})"
|
164
171
|
return source
|
165
172
|
end
|
166
173
|
|
167
174
|
def changeVersionInCocoapods(name, newVersion)
|
175
|
+
if (newVersion == nil)
|
176
|
+
UI.puts "💔 切换版本号的版本现在为空,无法设置版本号".yellow
|
177
|
+
return
|
178
|
+
end
|
179
|
+
newVersion = get_pure_version(newVersion)
|
168
180
|
specName = name + ".podspec"
|
169
181
|
FileProcesserManager.new(specName,
|
170
182
|
[
|
@@ -177,6 +189,7 @@ class Podfile
|
|
177
189
|
end
|
178
190
|
|
179
191
|
## --- option for setting using prebuild framework ---
|
192
|
+
|
180
193
|
def parse_pod_dev_env(name, requirements)
|
181
194
|
options = requirements.last
|
182
195
|
pod_name = Specification.root_name(name)
|
@@ -189,176 +202,275 @@ class Podfile
|
|
189
202
|
else
|
190
203
|
requirements.push(last_options)
|
191
204
|
end
|
192
|
-
|
193
|
-
|
194
|
-
end
|
195
|
-
if options.is_a?(Hash)
|
205
|
+
elsif options.is_a?(Hash)
|
206
|
+
use_binary = options.delete(Pod::DevEnv::binary_key)
|
196
207
|
dev_env = options.delete(Pod::DevEnv::keyword)
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
git = options.delete(:git)
|
202
|
-
branch = options.delete(:branch)
|
203
|
-
tag = options.delete(:tag)
|
204
|
-
path = options.delete(:path)
|
205
|
-
if path == nil
|
206
|
-
path = "./developing_pods/#{pod_name}"
|
208
|
+
|
209
|
+
deal_dev_env_with_options(dev_env, options, pod_name, name, requirements)
|
210
|
+
if dev_env != 'dev'
|
211
|
+
binary_processer(dev_env, pod_name, use_binary, options, requirements)
|
207
212
|
end
|
208
|
-
|
209
|
-
|
213
|
+
|
214
|
+
|
215
|
+
if dev_env || use_binary
|
216
|
+
$processedPodsOptions[pod_name] = options.clone
|
217
|
+
requirements.pop if options.empty?
|
210
218
|
end
|
211
|
-
|
212
|
-
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def deal_dev_env_with_options(dev_env, options, pod_name, name, requirements)
|
223
|
+
if dev_env == nil
|
224
|
+
return
|
225
|
+
end
|
226
|
+
UI.message "pod #{name.green} dev-env: #{dev_env.green}"
|
227
|
+
git = options.delete(:git)
|
228
|
+
branch = options.delete(:branch)
|
229
|
+
tag = options.delete(:tag)
|
230
|
+
path = options.delete(:path)
|
231
|
+
if path == nil
|
232
|
+
path = "./developing_pods/#{pod_name}"
|
233
|
+
end
|
234
|
+
if git == nil || git.length == 0
|
235
|
+
raise "💔 #{pod_name.yellow} 未定义:git => 'xxx'库地址"
|
236
|
+
end
|
237
|
+
if branch == nil || branch.length == 0
|
238
|
+
raise "💔 #{pod_name.yellow} 未定义:branch => 'xxx'"
|
239
|
+
end
|
240
|
+
if tag == nil || tag.length == 0
|
241
|
+
raise "💔 #{pod_name.yellow} 未定义:tag => 'xxx', tag 将会作为 dev模式下载最新代码检查的依据,beta模式引用的tag 以及 release模式引用的版本号"
|
242
|
+
end
|
243
|
+
|
244
|
+
if dev_env == 'subtree'
|
245
|
+
if !File.directory?(path)
|
246
|
+
_toplevelDir = `git rev-parse --show-toplevel`
|
247
|
+
_currentDir = `pwd`
|
248
|
+
_subtreeDir = path
|
249
|
+
if _currentDir != _toplevelDir
|
250
|
+
Dir.chdir(_toplevelDir)
|
251
|
+
_end = path
|
252
|
+
if _end[0,2] == './'
|
253
|
+
_end = _end[1, _end.length - 1]
|
254
|
+
else
|
255
|
+
_end = '/' + _end
|
256
|
+
end
|
257
|
+
_subtreeDir = './' + _currentDir[_toplevelDir.length, _currentDir.length - _toplevelDir.length] + path
|
258
|
+
end
|
259
|
+
_cmd = "git subtree add --prefix #{_subtreeDir} #{git} #{branch} --squash"
|
260
|
+
UI.puts _cmd
|
261
|
+
system(_cmd)
|
262
|
+
Dir.chdir(_currentDir)
|
213
263
|
end
|
214
|
-
|
215
|
-
|
264
|
+
options[:path] = path
|
265
|
+
if requirements.length >= 2
|
266
|
+
requirements.delete_at(0)
|
216
267
|
end
|
268
|
+
UI.message "pod #{pod_name.green} enabled #{"subtree".green}-mode 🍺"
|
269
|
+
elsif dev_env == 'dev'
|
270
|
+
# 开发模式,使用path方式引用本地的submodule git库
|
271
|
+
if !File.directory?(path)
|
272
|
+
UI.puts "add submodule for #{pod_name.green}".yellow
|
273
|
+
_cmd = "git submodule add --force -b #{branch} #{git} #{path}"
|
274
|
+
UI.puts _cmd
|
275
|
+
system(_cmd)
|
217
276
|
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
Dir.chdir(_toplevelDir)
|
225
|
-
_end = path
|
226
|
-
if _end[0,2] == './'
|
227
|
-
_end = _end[1, _end.length - 1]
|
228
|
-
else
|
229
|
-
_end = '/' + _end
|
230
|
-
end
|
231
|
-
_subtreeDir = './' + _currentDir[_toplevelDir.length, _currentDir.length - _toplevelDir.length] + path
|
232
|
-
end
|
233
|
-
_cmd = "git subtree add --prefix #{_subtreeDir} #{git} #{branch} --squash"
|
277
|
+
_currentDir = Dir.pwd
|
278
|
+
Dir.chdir(path)
|
279
|
+
|
280
|
+
curGitRemoteUrl = `git remote get-url origin`.rstrip()
|
281
|
+
if curGitRemoteUrl == git
|
282
|
+
_cmd = "git reset --hard"
|
234
283
|
UI.puts _cmd
|
235
284
|
system(_cmd)
|
236
|
-
Dir.chdir(_currentDir)
|
237
285
|
end
|
238
|
-
|
239
|
-
|
240
|
-
|
286
|
+
Dir.chdir(_currentDir)
|
287
|
+
|
288
|
+
# if inputNeedJumpForReson("本地库#{pod_name} 开发模式加载完成,是否自动打开Example工程")
|
289
|
+
# searchAndOpenLocalExample(path)
|
290
|
+
# end
|
291
|
+
if !checkTagIsEqualToHead(tag, path) && !checkTagIsEqualToHead("#{tag}_beta", path)
|
292
|
+
raise "💔 #{pod_name.yellow} branch:#{branch.yellow} 与 tag:#{tag.yellow}[_beta] 内容不同步,请自行确认所用分支和tag后重新执行 pod install"
|
241
293
|
end
|
242
|
-
|
243
|
-
|
244
|
-
#
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
294
|
+
else
|
295
|
+
# if inputNeedJumpForReson("本地库#{pod_name} 处于开发模式,是否自动打开Example工程")
|
296
|
+
# searchAndOpenLocalExample(path)
|
297
|
+
# end
|
298
|
+
end
|
299
|
+
options[:path] = path
|
300
|
+
if requirements.length >= 2
|
301
|
+
requirements.delete_at(0)
|
302
|
+
end
|
303
|
+
UI.message "pod #{pod_name.green} enabled #{"dev".green}-mode 🍺"
|
304
|
+
elsif dev_env == 'beta'
|
305
|
+
# Beta模式,使用tag引用远端git库的代码
|
306
|
+
originTag = tag
|
307
|
+
tag = "#{tag}_beta"
|
308
|
+
if File.directory?(path)
|
309
|
+
# 从Dev模式刚刚切换过来,需要打tag并且push
|
310
|
+
UI.puts "release beta-version for #{pod_name.green}".yellow
|
311
|
+
_currentDir = Dir.pwd
|
312
|
+
Dir.chdir(path)
|
313
|
+
# 已经进入到podspec的文件夹中了
|
314
|
+
checkGitStatusAndPush(pod_name) # push一下
|
315
|
+
ret = checkRemoteTagExist(tag)
|
316
|
+
if ret == true
|
317
|
+
# tag已经存在,要么没改动,要么已经手动打过tag,要么是需要引用老版本tag的代码
|
318
|
+
if checkTagOrBranchIsEqalToHead(tag, "./")
|
319
|
+
UI.puts "#{pod_name.green} 检测到未做任何调整,或已手动打过Tag"
|
320
|
+
else
|
321
|
+
if !inputNeedJumpForReson("是否跳过beta发布并删除本地submodule(直接引用远端库)")
|
322
|
+
raise "💔 #{pod_name.yellow} tag:#{tag.yellow} 已存在, 且与当前Commit不对应. 请确认拉到本地之后已经在podfile中手动修改tag版本号"
|
323
|
+
end
|
267
324
|
end
|
268
325
|
else
|
269
|
-
#
|
270
|
-
|
271
|
-
#
|
326
|
+
# tag不存在,
|
327
|
+
changeVersionInCocoapods(pod_name, originTag)
|
328
|
+
checkGitStatusAndPush(pod_name) # 再push一下
|
329
|
+
addGitTagAndPush(tag, pod_name)
|
272
330
|
end
|
273
|
-
|
274
|
-
|
275
|
-
|
331
|
+
Dir.chdir(_currentDir)
|
332
|
+
checkAndRemoveSubmodule(path)
|
333
|
+
end
|
334
|
+
options[:git] = git
|
335
|
+
options[:tag] = tag
|
336
|
+
if requirements.length >= 2
|
337
|
+
requirements.delete_at(0)
|
338
|
+
end
|
339
|
+
UI.message "enabled #{"beta".green}-mode for #{pod_name.green}"
|
340
|
+
elsif dev_env == 'release'
|
341
|
+
# Release模式,直接使用远端对应的版本
|
342
|
+
if File.directory?(path)
|
343
|
+
UI.puts "release release-version for #{pod_name.green}".yellow
|
344
|
+
_currentDir = Dir.pwd
|
345
|
+
Dir.chdir(path)
|
346
|
+
verboseParamStr = ""
|
347
|
+
if Config.instance.verbose
|
348
|
+
verboseParamStr = " --verbose"
|
276
349
|
end
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
checkGitStatusAndPush(pod_name) # push一下
|
289
|
-
ret = checkRemoteTagExist(tag)
|
290
|
-
if ret == true
|
291
|
-
# tag已经存在,要么没改动,要么已经手动打过tag,要么是需要引用老版本tag的代码
|
292
|
-
if checkTagOrBranchIsEqalToHead(tag, "./")
|
293
|
-
UI.puts "#{pod_name.green} 检测到未做任何调整,或已手动打过Tag"
|
294
|
-
else
|
295
|
-
if !inputNeedJumpForReson("是否跳过beta发布并删除本地submodule(直接引用远端库)")
|
296
|
-
raise "💔 #{pod_name.yellow} tag:#{tag.yellow} 已存在, 且与当前Commit不对应. 请确认拉到本地之后已经在podfile中手动修改tag版本号"
|
297
|
-
end
|
298
|
-
end
|
350
|
+
ret = system("pod lib lint --skip-import-validation --fail-fast --allow-warnings#{getReposStrForLint()}#{verboseParamStr}")
|
351
|
+
if ret != true
|
352
|
+
raise "💔 #{pod_name.yellow} lint 失败"
|
353
|
+
end
|
354
|
+
checkGitStatusAndPush(pod_name)
|
355
|
+
changeVersionInCocoapods(pod_name, tag)
|
356
|
+
checkGitStatusAndPush(pod_name)
|
357
|
+
ret = addGitTagAndPush(tag, pod_name)
|
358
|
+
if ret == false
|
359
|
+
if checkTagOrBranchIsEqalToHead(tag, "./")
|
360
|
+
UI.puts "#{pod_name.green} 已经打过tag".yellow
|
299
361
|
else
|
300
|
-
# tag
|
301
|
-
changeVersionInCocoapods(pod_name, originTag)
|
302
|
-
checkGitStatusAndPush(pod_name) # 再push一下
|
303
|
-
addGitTagAndPush(tag, pod_name)
|
362
|
+
raise "💔 #{pod_name.yellow} tag:#{tag.yellow} 已存在, 请确认已经手动修改tag版本号"
|
304
363
|
end
|
305
|
-
Dir.chdir(_currentDir)
|
306
|
-
checkAndRemoveSubmodule(path)
|
307
364
|
end
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
365
|
+
## TODO:: 发布到的目标库名称需要用变量设置
|
366
|
+
repoAddrs = getUserRepoAddress()
|
367
|
+
cmd = "pod repo push #{repoAddrs} #{pod_name}.podspec --skip-import-validation --allow-warnings --use-modular-headers#{getReposStrForLint()}#{verboseParamStr}"
|
368
|
+
UI.puts cmd.green
|
369
|
+
ret = system(cmd)
|
370
|
+
if ret != true
|
371
|
+
raise "💔 #{pod_name.yellow} 发布失败"
|
312
372
|
end
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
373
|
+
## 到最后统一执行,判断如果当次release过
|
374
|
+
`pod repo update`
|
375
|
+
Dir.chdir(_currentDir)
|
376
|
+
checkAndRemoveSubmodule(path)
|
377
|
+
end
|
378
|
+
if requirements.length < 2
|
379
|
+
requirements.insert(0, "#{get_pure_version(tag)}")
|
380
|
+
end
|
381
|
+
UI.message "enabled #{"release".green}-mode for #{pod_name.green}"
|
382
|
+
else
|
383
|
+
raise "💔 :dev_env 必须要设置成 dev/beta/release之一,不接受其他值"
|
384
|
+
end
|
385
|
+
end
|
386
|
+
|
387
|
+
def binary_processer(dev_env, pod_name, use_binary, options, requirements)
|
388
|
+
if use_binary && use_binary == true
|
389
|
+
if options[:tag] != nil
|
390
|
+
begin
|
391
|
+
version = get_pure_version(options[:tag])
|
392
|
+
spec = binary_source.specification_path(pod_name, Version.new(version))
|
393
|
+
if spec
|
394
|
+
if requirements.length < 2
|
395
|
+
options.delete(:git)
|
396
|
+
options.delete(:path)
|
397
|
+
options.delete(:tag)
|
398
|
+
options[:source] = binary_repo_url
|
399
|
+
requirements.insert(0, "#{version}")
|
334
400
|
else
|
335
|
-
|
401
|
+
UI.puts "pod '#{pod_name}' :tag => #{options[:tag]} version: #{version} 对应的版本,但是已经标记版本号#{requirements}, 不知道用哪个".red
|
336
402
|
end
|
403
|
+
else
|
404
|
+
UI.puts "pod '#{pod_name}' :tag => #{options[:tag]} version: #{version} 没有找到: tag 对应的版本".red
|
337
405
|
end
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
ret = system(cmd)
|
343
|
-
if ret != true
|
344
|
-
raise "💔 #{pod_name.yellow} 发布失败"
|
345
|
-
end
|
346
|
-
## 到最后统一执行,判断如果当次release过
|
347
|
-
`pod repo update`
|
348
|
-
Dir.chdir(_currentDir)
|
349
|
-
checkAndRemoveSubmodule(path)
|
350
|
-
end
|
351
|
-
if requirements.length < 2
|
352
|
-
requirements.insert(0, "#{tag}")
|
406
|
+
rescue => exception
|
407
|
+
UI.puts "pod '#{pod_name}' :tag => #{options[:tag]} version: #{version} 没有找到: tag 对应的版本".red
|
408
|
+
else
|
409
|
+
|
353
410
|
end
|
354
|
-
UI.message "enabled #{"release".green}-mode for #{pod_name.green}"
|
355
411
|
else
|
356
|
-
|
412
|
+
options.delete(:git)
|
413
|
+
options.delete(:path)
|
414
|
+
options.delete(:tag)
|
415
|
+
options[:source] = binary_repo_url
|
357
416
|
end
|
358
|
-
|
359
|
-
|
417
|
+
|
418
|
+
else
|
419
|
+
if options[:source] == nil
|
420
|
+
begin
|
421
|
+
sources = find_pod_repos(pod_name).sources.select{|item| item.url.downcase != binary_repo_url.downcase } if options.empty?
|
422
|
+
if sources != nil
|
423
|
+
if sources.length >= 2
|
424
|
+
UI.puts "#{pod_name.green} 有多个source #{sources}".yellow
|
425
|
+
source_url = sources.detect{|item| item.url.downcase != Pod::TrunkSource::TRUNK_REPO_URL.downcase && item.url.downcase != "https://github.com/CocoaPods/Specs.git".downcase}.url
|
426
|
+
else
|
427
|
+
source_url = sources.first.url
|
428
|
+
end
|
429
|
+
end
|
430
|
+
options[:source] = source_url if source_url != nil
|
431
|
+
rescue => exception
|
432
|
+
UI.puts "#{pod_name} exception:#{exception}".red
|
433
|
+
else
|
434
|
+
|
435
|
+
end
|
436
|
+
end
|
437
|
+
end
|
438
|
+
UI.puts "#{pod_name.green} :source=> #{options[:source].green} by cocoapods-dev-env" if options[:source] != nil
|
439
|
+
UI.message "#{pod_name.yellow} options #{options} by cocoapods-dev-env" if options[:source] != nil
|
440
|
+
UI.message "#{pod_name.yellow} requirements #{requirements} by cocoapods-dev-env" if options[:source] != nil
|
441
|
+
end
|
442
|
+
|
443
|
+
def binary_repo_url
|
444
|
+
if @binary_repo_url == nil
|
445
|
+
@binary_repo_url = Luna::Binary::Common.instance.binary_repo_url #从luna-binary-uploader里获取binary_repo_url
|
360
446
|
end
|
447
|
+
return @binary_repo_url
|
361
448
|
end
|
449
|
+
|
450
|
+
def binary_source
|
451
|
+
if @binary_source == nil
|
452
|
+
@binary_source = Pod::Config.instance.sources_manager.all.detect{|item| item.url.downcase == binary_repo_url.downcase}
|
453
|
+
end
|
454
|
+
return @binary_source
|
455
|
+
end
|
456
|
+
|
457
|
+
def get_pure_version(version)
|
458
|
+
return version.split.last.scan(/\d+/).join('.')
|
459
|
+
end
|
460
|
+
|
461
|
+
def find_pod_repos(pod_name) #等同pod search
|
462
|
+
sets = Pod::Config.instance.sources_manager.search_by_name(pod_name)
|
463
|
+
if sets.count == 1
|
464
|
+
set = sets.first
|
465
|
+
elsif sets.map(&:name).include?(pod_name)
|
466
|
+
set = sets.find { |s| s.name == pod_name }
|
467
|
+
else
|
468
|
+
names = sets.map(&:name) * ', '
|
469
|
+
raise Informative, "More than one spec found for '#{pod_name}':\n#{names}"
|
470
|
+
end
|
471
|
+
return set
|
472
|
+
end
|
473
|
+
|
362
474
|
# ---- patch method ----
|
363
475
|
# We want modify `store_pod` method, but it's hard to insert a line in the
|
364
476
|
# implementation. So we patch a method called in `store_pod`.
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-dev-env
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 吴锡苗
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: luna-binary-uploader
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,6 +62,7 @@ files:
|
|
48
62
|
- ".gitignore"
|
49
63
|
- CODE_OF_CONDUCT.md
|
50
64
|
- Gemfile
|
65
|
+
- Gemfile.lock
|
51
66
|
- LICENSE.txt
|
52
67
|
- README.md
|
53
68
|
- Rakefile
|