cocoapods-bb-PodAssistant 0.2.1 → 0.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46f2909212dda4283465cfe1db2a4b2311ed002e97f5c64290129b75a3f96c85
4
- data.tar.gz: b11851246802d6000005ebbc23cbdf19687de70805896ccae2915963aa8aca49
3
+ metadata.gz: db18fa9c11519008cc3187769f5aa81c9a8460b7eff538c9b277f3cefdd443c6
4
+ data.tar.gz: 28d2897172a135d0a74ddeddf4e9cfc9782f3a956b06c1aa546e18240695d2bf
5
5
  SHA512:
6
- metadata.gz: aa134b6cc558192b7b864c4872592299dc70efd9a1c58786e53048fbd0e6a7967e8d167467353002b700808249c1d390fbcba938b73dc9215ac7b9d45e28d5e2
7
- data.tar.gz: 3bff44bfca25a276653939eb3575b6872221a8412a3d3b717c9f1acfb3f566a5a65758226c04f992aae1f1dcef60390e39015e4770237457d3aa7282b9d7b650
6
+ metadata.gz: '0843133052d9eb17e2defc372439be5242c621b13fbe24c98fee6f6cfbb2b93d24abb452f7edf1df91ee8bab3ed5d7658a38ac8da0f187acc58e8f9d1765fd6a'
7
+ data.tar.gz: dc2656f219568af7fa787ab911683e64a9245d53d213ae628db6aa1e2c04a890d6c10a26ed24e885dda2345f17af1f93056df4f47675673f5e0dcd78cbd3513f
@@ -1,4 +1,5 @@
1
1
  require 'cocoapods-bb-PodAssistant/config/source_manager'
2
+ require 'cocoapods-bb-bin/native'
2
3
 
3
4
  module Pod
4
5
  class Command
@@ -10,11 +10,11 @@ module Pod
10
10
  self.description = <<-DESC
11
11
  常用命令如下:\n
12
12
  更新所有公共组件: `pod stable push`\n
13
- 更新指定公共组件: `pod stable push 组件名称`\n
14
- 更新指定公共组件/移除组件: `pod stable push 组件名称 --remove=组件名称` #多个移除名称带`,`\n
15
- 更新指定公共组件/带依赖关系: `pod stable push 组件名称 --dependencies=组件名称` #多个依赖名称带`,`\n
16
- 更新指定公共组件/带依赖关系/移除组件: `pod stable push 组件名称 --dependencies=组件名称 --remove=组件名称` #多个依赖名称带`,`\n
17
- 参数说明:--dependencies 依赖组件 --remove 需要移除组件 --update-matrix 更新矩阵产品公共业务线
13
+ 更新指定公共组件: `pod stable push <组件名称>`\n
14
+ 更新指定公共组件/移除组件: `pod stable push <组件名称> --remove=组件名称` #多个移除名称带`,`\n
15
+ 更新指定公共组件/带依赖关系: `pod stable push <组件名称> --dependencies=组件名称` #多个依赖名称带`,`\n
16
+ 更新指定公共组件/带依赖关系/移除组件: `pod stable push <组件名称> --dependencies=组件名称 --remove=组件名称` #多个依赖名称带`,`\n
17
+ 参数说明:--dependencies 依赖组件 --remove 需要移除组件 --update-matrix 更新矩阵产品公共业务线 --update-common 更新公共组件
18
18
  DESC
19
19
 
20
20
  self.arguments = [
@@ -25,7 +25,8 @@ module Pod
25
25
  [
26
26
  ['--dependencies', '依赖组件名称,多个使用`,`隔开'],
27
27
  ['--remove', '移除公共组件名称,多个使用`,`隔开'],
28
- ['--update-matrix', '更新矩阵产品公共业务线'],
28
+ ['--update-matrix', '更新[矩阵]产品公共业务线,默认true'],
29
+ ['--update-common', '更新公共组件,默认false'],
29
30
  ].concat(super)
30
31
  end
31
32
 
@@ -33,13 +34,14 @@ module Pod
33
34
  @pods = argv.arguments!
34
35
  @dependencies = argv.option('dependencies', nil)&.split(',')
35
36
  @remove = argv.option('remove', nil)&.split(',')
36
- @is_matrix = argv.flag?('update-matrix', false)
37
+ @is_pub = argv.flag?('update-common', false)
38
+ @is_matrix = !@is_pub # argv.flag?('update-matrix', true)
37
39
  super
38
40
  end
39
41
 
40
42
  def run
41
43
  puts "[PodAssistant] 开始执行 $ pod stable push".yellow
42
- source_manager = BB::SourceManager.new(false)
44
+ source_manager = BB::SourceManager.new(false, @is_matrix)
43
45
  cachePath = source_manager.cache_path
44
46
  puts "stable cache git=>#{cachePath}"
45
47
  Dir.chdir(File.join(cachePath)) {
@@ -1,4 +1,5 @@
1
1
  require 'cocoapods-bb-PodAssistant/config/source_manager'
2
+ require 'cocoapods-bb-bin/native'
2
3
 
3
4
  module Pod
4
5
  class Command
@@ -7,8 +7,8 @@ require 'cocoapods-bb-PodAssistant/helpers/stable_env_helper'
7
7
  # 数据源管理
8
8
  module BB
9
9
  class SourceManager
10
- def initialize(verify_stable_env=true)
11
- @env = BB::StableEnv.new(verify_stable_env)
10
+ def initialize(verify_stable_env=true, isMatrix=false)
11
+ @env = BB::StableEnv.new(verify_stable_env, isMatrix)
12
12
  @businessSpecName = @env.business_stable
13
13
  @stableMgr = BB::StableManager.new(@env, verify_stable_env)
14
14
  end
@@ -182,6 +182,12 @@ module BB
182
182
  stable_specs[YAML_CONFIG_REMOVE_KEY] = removedata
183
183
  stable_specs[YAML_CONFIG_DEPENDENCIES_KEY] = dependenciesdata
184
184
  update_stable_lock(stable_yaml, stable_specs)
185
+ puts "removedata:#{removedata} len:#{removedata.length}".red
186
+ puts "dependenciesdata:#{dependenciesdata} count:#{dependenciesdata.length}".red
187
+ # 提交依赖/移除数据
188
+ if removedata.length > 0 || dependenciesdata.length > 0
189
+ @stableMgr.commit_data(stable_yaml, "dependencies:#{dependenciesdata} remove:#{removedata}")
190
+ end
185
191
  end
186
192
  end
187
193
  def update_common_dependencies_and_remove_data(dependencies_pods, remove_pods)
@@ -218,10 +224,11 @@ module BB
218
224
  if (update_pods.length == 0) || (update_pods.include?(podCoreName))
219
225
  if versionGreat(version, local_version)
220
226
  updated_projects << "【#{name}】 (#{local_version}) -> (#{version.to_s.send(:yellow)})"
227
+ need_update_pod_lists[podCoreName] = version
221
228
  else
229
+ # 本地指向分支,以本地为主
222
230
  rollbacked_projects << "【#{name}】 (#{version.to_s.send(:red)}) <- (#{local_version})"
223
231
  end
224
- need_update_pod_lists[podCoreName] = version
225
232
  end
226
233
  end
227
234
  end
@@ -320,13 +327,137 @@ module BB
320
327
  return lockfile
321
328
  end
322
329
 
330
+ def name_and_version_from_string(string_representation)
331
+ match_data = string_representation.match(/\A((?:\s?[^\s(])+)(?: \((.+)\))?\Z/)
332
+ unless match_data
333
+ raise Informative, 'Invalid string representation for a ' \
334
+ "specification: `#{string_representation}`. " \
335
+ 'The string representation should include the name and ' \
336
+ 'optionally the version of the Pod.'
337
+ end
338
+ name = match_data[1]
339
+ vers = Pod::Version.new(match_data[2])
340
+ [name, vers]
341
+ end
342
+ def name_from_string(string_representation)
343
+ match_data = string_representation.match(/\A((?:\s?[^\s(])+)(?: \((.+)\))?\Z/)
344
+ unless match_data
345
+ raise Informative, 'Invalid string representation for a ' \
346
+ "specification: `#{string_representation}`. " \
347
+ 'The string representation should include the name and ' \
348
+ 'optionally the version of the Pod.'
349
+ end
350
+ name = match_data[1]
351
+ return name
352
+ end
353
+ def podfile_lock_pods
354
+ lockfile = podfile_lock
355
+ internal_data = lockfile.internal_data
356
+ pods = internal_data['PODS']
357
+ list={}
358
+ pods.each do |pod|
359
+ if pod.is_a?(Hash) # 存在依赖关系
360
+ pod_name = pod.keys.first
361
+ name, version = name_and_version_from_string(pod_name)
362
+ data = pod[pod_name]
363
+ data.each do | pod |
364
+ dependencies_pod_name = name_from_string(pod)
365
+ data = list[name]
366
+ if data.nil?
367
+ sub_data=[]
368
+ sub_data.push(dependencies_pod_name)
369
+ list[name]=sub_data
370
+ else
371
+ data.push(dependencies_pod_name)
372
+ list[name]=data
373
+ end
374
+ end
375
+ end
376
+ end
377
+ return list
378
+ end
379
+ def whitelist_podnames
380
+ return ['BBPostion', 'FMDB', 'Masonry', 'lottie-ios', 'SDWebImage', 'SSZipArchive', 'YYModel']
381
+ end
382
+ # 矩阵产品需要过滤组件
383
+ def matrix_filter_pod_names(pods, ignore_dependencies_pod_names=[])
384
+ ignore_dependencies_pod_names=['BBSAdvert'] unless ignore_dependencies_pod_names.nil? # 如果业务方配置,以业务方为主,默认处理广告业务
385
+ find_ok_dependencies_pod_names=[]
386
+ filter_pod_names=[]
387
+ whitelist_pods={}
388
+ whitelist = whitelist_podnames
389
+ # 查找需要进行过滤数据,解决多场景下组件动态更新,以广告为例
390
+ if ignore_dependencies_pod_names.length > 0
391
+ puts "业务方配置需要过滤数据:#{ignore_dependencies_pod_names} cls:#{ignore_dependencies_pod_names.class}".yellow
392
+ pods.each do |pod|
393
+ if pod.is_a?(Hash) # 存在依赖关系
394
+ pod_name = pod.keys.first
395
+ name, version = name_and_version_from_string(pod_name)
396
+ podCoreName = subspec_podname(name)
397
+ if ignore_dependencies_pod_names.include?(podCoreName) || find_ok_dependencies_pod_names.include?(name)
398
+ if !find_ok_dependencies_pod_names.include?(name)
399
+ find_ok_dependencies_pod_names.push(name)
400
+ end
401
+ sub_pods=[]
402
+ data = pod[pod_name]
403
+ data.each do | pod |
404
+ dependencies_pod_name = name_from_string(pod)
405
+ if dependencies_pod_name.include?(name) #subspecs
406
+ if !find_ok_dependencies_pod_names.include?(dependencies_pod_name)
407
+ find_ok_dependencies_pod_names.push(dependencies_pod_name)
408
+ end
409
+ end
410
+ if !sub_pods.include?(dependencies_pod_name)
411
+ sub_pods.push(dependencies_pod_name)
412
+ end
413
+ tmp_whitelist_pod_names = whitelist_pods[podCoreName]
414
+ if (podCoreName != name) && !tmp_whitelist_pod_names.include?(dependencies_pod_name)
415
+ dependencies_core_pod_name = subspec_podname(dependencies_pod_name)
416
+ if (podCoreName != dependencies_core_pod_name) && !whitelist.include?(dependencies_core_pod_name) && !filter_pod_names.include?(dependencies_core_pod_name)
417
+ filter_pod_names.push(dependencies_core_pod_name)
418
+ end
419
+ end
420
+ end
421
+ if podCoreName == name
422
+ whitelist_pods[podCoreName]=sub_pods
423
+ end
424
+ end
425
+ end
426
+ end
427
+ puts "过滤组件数据依赖:#{find_ok_dependencies_pod_names} cls:#{find_ok_dependencies_pod_names.class}"
428
+ # puts "==whitelist_pods:#{whitelist_pods} cls:#{whitelist_pods.class}".red
429
+ puts "需要过滤一级黑名单数据:#{filter_pod_names} cls:#{filter_pod_names.class}".yellow
430
+ if filter_pod_names.length > 0
431
+ pods_list = podfile_lock_pods
432
+ pods_list.keys.each do | pod_name |
433
+ podCoreName = subspec_podname(pod_name)
434
+ if filter_pod_names.include?(podCoreName)
435
+ data = pods_list[pod_name]
436
+ data.each do | sub_pod_name |
437
+ sub_podCoreName = subspec_podname(sub_pod_name)
438
+ if !sub_podCoreName.include?('BB') && !whitelist.include?(sub_podCoreName) && !filter_pod_names.include?(sub_podCoreName)
439
+ filter_pod_names.push(sub_podCoreName)
440
+ end
441
+ end
442
+ end
443
+ end
444
+ puts "需要过滤all黑名单数据:#{filter_pod_names} cls:#{filter_pod_names.class}".yellow
445
+ end
446
+ end
447
+ return filter_pod_names
448
+ end
323
449
  # 生成项目stable配置文件
324
450
  # 策略:根据podfile.lock dependencies依赖记录pod core标签/分支数据,不存储subspec数据
325
- def generate_localStable
451
+ def generate_localStable(ignore_dependencies_pod_names=[])
326
452
  lockfile = podfile_lock
327
453
  local_specs = {}
454
+ internal_data = lockfile.internal_data
455
+ pods = internal_data['PODS']
328
456
  dependencies = lockfile.dependencies
329
457
  pod_names = lockfile.pod_names
458
+ # puts "dependencies:#{dependencies}".red
459
+ # puts "pod_names:#{pod_names}".green
460
+ filter_pod_names = matrix_filter_pod_names(pods, ignore_dependencies_pod_names)
330
461
  # dependencies依赖数据
331
462
  dependencies.each do | dependency |
332
463
  pod_name = dependency.name
@@ -377,10 +508,17 @@ module BB
377
508
  end
378
509
  end
379
510
 
380
- # Pod::UI.puts "yml配置数据:#{local_specs}"
511
+ # 删除过滤数据
512
+ filter_pod_names.each do | pod_name |
513
+ if local_specs.include?(pod_name)
514
+ # puts "删除过滤数据pod_name:#{pod_name} #{local_specs[pod_name]}"
515
+ local_specs.delete(pod_name)
516
+ end
517
+ end
518
+ # puts "yml配置数据:#{local_specs}"
381
519
  if local_specs.length > 0
382
520
  update_localstable_datas(local_specs)
383
- Pod::UI.puts "Generating yml配置文件=> #{local_stable_yaml} 更新成功".green
521
+ puts "Generating yml配置文件=> #{local_stable_yaml} 更新成功".green
384
522
  end
385
523
  end
386
524
  # pod库是否包含core subspec
@@ -1,3 +1,3 @@
1
1
  module CocoapodsBbPodassistant
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -25,13 +25,29 @@ module BB
25
25
  @source_manager = BB::SourceManager.new()
26
26
  #加载远程稳定仓库 和本地podfile 指定的仓库进行合并
27
27
  if skip_stable_check == true
28
- @@all_modules = all_modules
28
+ # 过滤带:remove数据
29
+ @@all_modules = filter_origin_pod_modules(all_modules)
29
30
  else
30
31
  @@all_modules = load_stable_specs_to_podfile(all_modules, ignore_local_stable)
31
32
  end
32
33
  @@member_modules = member_modules
33
34
  @@member_configs = member_configs
34
35
  end
36
+ private def filter_origin_pod_modules(all_modules)
37
+ result_modules = []
38
+ all_modules.each do |pod|
39
+ if pod.is_a?(Hash)
40
+ remove = pod[:remove]
41
+ if remove
42
+ pod_name = pod.first
43
+ puts "###业务方配置需要移除插件####names:[#{pod_name}] pod:#{pod}".red
44
+ else
45
+ result_modules.push(pod)
46
+ end
47
+ end
48
+ end
49
+ return result_modules
50
+ end
35
51
 
36
52
  def current_member
37
53
  if @@member_configs
@@ -153,6 +169,23 @@ module BB
153
169
  }
154
170
  return podfile_hash
155
171
  end
172
+ # stable本地数据去除指向本地
173
+ def convert_local_stable_data(local_stable_data)
174
+ stable_hash = {}
175
+ local_stable_data.each do |name,pod|
176
+ if pod.is_a? Hash
177
+ path = pod[:path]
178
+ if path
179
+ puts "filter local path data:#{name}".red
180
+ else
181
+ stable_hash[name] = pod
182
+ end
183
+ else
184
+ stable_hash[name] = pod
185
+ end
186
+ end
187
+ return stable_hash
188
+ end
156
189
  # 合并组建数据
157
190
  # 策略:本地stable作为基础数据,遍历podfile组件进行替换,变化以本地为主,标签以stable为主
158
191
  def merge_module_data(podfile_specs, local_stable_data)
@@ -161,7 +194,8 @@ module BB
161
194
  # puts "podfile_hash: #{podfile_hash}".red
162
195
  # puts "local_stable_data: #{local_stable_data}".red
163
196
  need_update_pod_data={}
164
- stable_hash = local_stable_data
197
+ # fix 指向本地组件切换到远端组件,本地yml配置不会更新问题
198
+ stable_hash = convert_local_stable_data(local_stable_data) # stable_hash = local_stable_data
165
199
  podfile_hash.each do |podName,podfile_pod|
166
200
  if podfile_pod.count == 0
167
201
  puts "❌ podfile组件[#{podName}]配置异常,请确认:method => REMOTE_VERSION是否配置\n组件信息如下:\n#{podName} => #{podfile_pod}".red
@@ -222,10 +256,11 @@ module BB
222
256
  if pod.is_a? (Hash)
223
257
  stable_branch = pod[:branch]
224
258
  stable_git = pod[:git]
259
+ stable_path = pod[:path]
225
260
  if stable_git.nil?
226
261
  stable_git = pod[:git_format]
227
262
  end
228
- if (stable_branch && !stable_branch.empty?) || (stable_git && !stable_git.empty?)
263
+ if (stable_branch && !stable_branch.empty?) || (stable_git && !stable_git.empty?) || (stable_path && !stable_path.empty?)
229
264
  puts "[PodAssistant] '#{podName}', '#{podfile_pod}' 以podfile配置为主[分支=>标签]."
230
265
  newPod = podfile_pod
231
266
  is_podfile_data = true
@@ -233,7 +268,7 @@ module BB
233
268
  newPod = pod
234
269
  end
235
270
  elsif pod.is_a? (String)
236
- if pod.include?(':branch') || pod.include?(':git') || pod.include?(':git_format')
271
+ if pod.include?(':branch') || pod.include?(':git') || pod.include?(':git_format') || pod.include?(':path')
237
272
  puts "[PodAssistant] '#{podName}', '#{podfile_pod}' 以podfile配置为主[分支=>标签]."
238
273
  newPod = podfile_pod
239
274
  is_podfile_data = true
@@ -315,15 +350,17 @@ module BB
315
350
  data[:linkage] = linkage
316
351
  end
317
352
  if !data.empty?
318
- # puts "name:#{name} stable_specs: #{data}".green
353
+ # puts "===git===分支==> #{data}".green
319
354
  stable_specs.push(data)
320
355
  end
321
356
  elsif pod.is_a? String
357
+ # puts "===git===标签==> { names: [\"#{name}\"], version: #{pod}, method: REMOTE_TAG }".green
322
358
  stable_specs.push({ names: [name], version: pod, method: REMOTE_TAG })
323
359
  else
324
360
  puts "unknow type [#{name}] data:#{pod}".red
325
361
  end
326
362
  end
363
+ # puts "[PodAssistant] stable_specs:#{stable_specs}".green
327
364
  return stable_specs
328
365
  end
329
366
  ################################# linkline stable ����� #################################
@@ -2,8 +2,9 @@ require 'cocoapods-bb-PodAssistant/config/stable_source'
2
2
 
3
3
  module BB
4
4
  class StableEnv
5
- def initialize(verify_stable_env=true)
5
+ def initialize(verify_stable_env=true, isMatrix=false)
6
6
  @cache = BB::Cache.new(nil, verify_stable_env)
7
+ @isMatrix = isMatrix
7
8
  configGitPath(@cache.cachePath)
8
9
  if verify_stable_env
9
10
  # 自动加载stable环境
@@ -101,8 +102,14 @@ module BB
101
102
  return @stable_tag
102
103
  end
103
104
  def business_stable
105
+ if @businessSpec.nil? && @isMatrix
106
+ return default_matrix_business_stable
107
+ end
104
108
  return @businessSpec
105
109
  end
110
+ def default_matrix_business_stable
111
+ return "global_stable_specs"
112
+ end
106
113
  # 验证stable环境是否存在
107
114
  def verify_stable_env_exists
108
115
  return @stable_source.empty? ? false : true
@@ -25,8 +25,14 @@ module BB
25
25
  puts "没有配置业务线公共源,请确认!!!".yellow
26
26
  end
27
27
  end
28
- # podfile 更新配置文件使用(项目)
29
- def update_product_stable_lock(pod_targets)
28
+ # 提交数据
29
+ def commit_data(yml_path, commit_msg="")
30
+ puts "commit_stable_lock commit_msg:#{commit_msg}".red
31
+ commit_stable_lock_data(yml_path, commit_msg)
32
+ end
33
+
34
+ # podfile 更新配置文件使用(项目)
35
+ def update_product_stable_lock(pod_targets)
30
36
  update_local_stable_lock(local_stable_yaml, pod_targets)
31
37
  end
32
38
 
@@ -61,9 +67,12 @@ module BB
61
67
  stableSpec = BB::StableSpecs.new()
62
68
  stableSpec.update_stable_lock(yml_path, pod_targets)
63
69
  # step.2 提交修改后代码
70
+ commit_stable_lock_data(yml_path)
71
+ end
72
+ private def commit_stable_lock_data(yml_path, commit_msg="")
64
73
  yml_name = File.basename(yml_path)
65
74
  # `cd #{cachePath}; git pull --all; git add #{yml_name}; git commit -m "[update] 更新stable配置文件#{yml_name}"; git push; git pull --all;`
66
- `cd #{cachePath}; git pull --all; git add * ; git commit -m "[update] 更新stable配置文件#{yml_name}"; git push; git pull --all;`
75
+ `cd #{cachePath}; git pull --all; git add * ; git commit -m "[update] 更新stable配置文件#{yml_name} #{commit_msg}"; git push; git pull --all;`
67
76
  end
68
77
  private def update_local_stable_lock(yml_path, pod_targets)
69
78
  # step.1 更新yaml配置文件
@@ -0,0 +1,48 @@
1
+ require 'active_support/core_ext/string/inflections'
2
+ require 'fileutils'
3
+ require 'cocoapods/podfile'
4
+ require 'cocoapods-bb-bin/native'
5
+
6
+ module Pod
7
+ class Installer
8
+ autoload :Analyzer, 'cocoapods/installer/analyzer'
9
+ autoload :InstallationOptions, 'cocoapods/installer/installation_options'
10
+ autoload :PostInstallHooksContext, 'cocoapods/installer/post_install_hooks_context'
11
+ autoload :PreInstallHooksContext, 'cocoapods/installer/pre_install_hooks_context'
12
+ autoload :BaseInstallHooksContext, 'cocoapods/installer/base_install_hooks_context'
13
+ autoload :PostIntegrateHooksContext, 'cocoapods/installer/post_integrate_hooks_context'
14
+ autoload :PreIntegrateHooksContext, 'cocoapods/installer/pre_integrate_hooks_context'
15
+ autoload :SourceProviderHooksContext, 'cocoapods/installer/source_provider_hooks_context'
16
+ autoload :PodfileValidator, 'cocoapods/installer/podfile_validator'
17
+ autoload :PodSourceDownloader, 'cocoapods/installer/pod_source_downloader'
18
+ autoload :PodSourceInstaller, 'cocoapods/installer/pod_source_installer'
19
+ autoload :PodSourcePreparer, 'cocoapods/installer/pod_source_preparer'
20
+ autoload :UserProjectIntegrator, 'cocoapods/installer/user_project_integrator'
21
+ autoload :Xcode, 'cocoapods/installer/xcode'
22
+ autoload :SandboxHeaderPathsInstaller, 'cocoapods/installer/sandbox_header_paths_installer'
23
+ autoload :SandboxDirCleaner, 'cocoapods/installer/sandbox_dir_cleaner'
24
+ autoload :ProjectCache, 'cocoapods/installer/project_cache/project_cache'
25
+ autoload :TargetUUIDGenerator, 'cocoapods/installer/target_uuid_generator'
26
+
27
+ include Config::Mixin
28
+
29
+ # alias_method :origin_resolve_dependencies, :resolve_dependencies
30
+ # def resolve_dependencies
31
+ # puts "[PodAssistant] 开始执行 Installer resolve_dependencies".red
32
+ # puts "[PodAssistant] 开始执行 Installer resolve_dependencies [#{$*}] [#{$*.first}]".green
33
+ # analyzer = origin_resolve_dependencies
34
+ # puts "analyzer:#{analyzer}".green
35
+ # if ($*.first == "update" || $*.first == "install")
36
+ # puts 'Analyzing dependencies virtual'.red
37
+ # # UI.section 'Analyzing dependencies virtual' do
38
+ # $virtual_dependencies_names = @analysis_result.specifications.map(&:name)
39
+ # $virtual_dependencies_flag = true
40
+ # analyzer = origin_resolve_dependencies
41
+ # # end
42
+ # end
43
+ # puts "analyzer:#{analyzer}".red
44
+ # analyzer
45
+ # end
46
+
47
+ end
48
+ end
@@ -72,12 +72,12 @@ module BB
72
72
  $source_manager.generate_localStable
73
73
  $podEndTime = Time.new
74
74
  puts "[PodAssistant] plugin hook post_install".yellow
75
- puts "[PodAssistant] pod库下载耗时 GitCloneAllSize: #{$gitAllSize} M GitCloneAllTime: #{$cloneAllTime} S CDNDownloadAllSize: #{$pluginCurrentZipAllSize} M CDNAllTime: #{$downloadAllTime} S CDNDownloadAllTime: #{$cdnDownloadAllTime} S CDNUnzipAllTime: #{$cdnUnZipAllTime} S"
76
- # 如果是--verbose模式且$gitAllSize与$cloneAllTime(不为0表示有下载pod)
77
- if $pluginIsVerbose == true && $gitAllSize != 0 && $cloneAllTime != 0 && $pluginCurrentZipAllSize != 0 && $downloadAllTime != 0
78
- File.rename "#{Dir.home}/.AllPodsTimeAndSize.csv", "#{installer.sandbox_root}/AllPodsTimeAndSize.csv"
79
- puts "具体的统计数据请在#{installer.sandbox_root}/AllPodsTimeAndSize.csv中查看"
80
- end
75
+ # puts "[PodAssistant] pod库下载耗时 GitCloneAllSize: #{$gitAllSize} M GitCloneAllTime: #{$cloneAllTime} S CDNDownloadAllSize: #{$pluginCurrentZipAllSize} M CDNAllTime: #{$downloadAllTime} S CDNDownloadAllTime: #{$cdnDownloadAllTime} S CDNUnzipAllTime: #{$cdnUnZipAllTime} S"
76
+ # # 如果是--verbose模式且$gitAllSize与$cloneAllTime(不为0表示有下载pod)
77
+ # if $pluginIsVerbose == true && $gitAllSize != 0 && $cloneAllTime != 0 && $pluginCurrentZipAllSize != 0 && $downloadAllTime != 0
78
+ # File.rename "#{Dir.home}/.AllPodsTimeAndSize.csv", "#{installer.sandbox_root}/AllPodsTimeAndSize.csv"
79
+ # puts "具体的统计数据请在#{installer.sandbox_root}/AllPodsTimeAndSize.csv中查看"
80
+ # end
81
81
  # 获取时间差
82
82
  time = $podEndTime - $podStartTime
83
83
  puts "[PodAssistant] pod操作总耗时【#{time.to_s.send(:red)}秒】start:#{$podStartTime} end:#{$podEndTime}".green
@@ -87,202 +87,202 @@ module BB
87
87
  end
88
88
  end
89
89
 
90
- class Pod::Downloader::Cache
91
- # 使用方法别名hook copy_and_clean方法
92
- alias :origin_copy_and_clean :copy_and_clean
93
- def copy_and_clean(source, destination, spec)
94
- # 执行之前的拷贝到cache并且清除git clone临时目录的方法
95
- origin_copy_and_clean(source, destination, spec)
96
- # 如果是--verbose,则输出详细信息,生成csv
97
- if $pluginIsVerbose == true
98
- verboseCopy_and_clean(source, destination, spec)
99
- end
100
- end
90
+ # class Pod::Downloader::Cache
91
+ # # 使用方法别名hook copy_and_clean方法
92
+ # alias :origin_copy_and_clean :copy_and_clean
93
+ # def copy_and_clean(source, destination, spec)
94
+ # # 执行之前的拷贝到cache并且清除git clone临时目录的方法
95
+ # origin_copy_and_clean(source, destination, spec)
96
+ # # 如果是--verbose,则输出详细信息,生成csv
97
+ # if $pluginIsVerbose == true
98
+ # verboseCopy_and_clean(source, destination, spec)
99
+ # end
100
+ # end
101
101
 
102
- # --verbose输出详细信息,生成在home路径下.AllPodsTimeAndSize.csv的隐藏文件
103
- def verboseCopy_and_clean(source, destination, spec)
104
- begin
105
- # 计算拷贝到的目录下所有文件总大小,单位为M
106
- dirSum = Dir.size(destination.to_s)/1000.0/1000.0
107
- # 标红输出cache文件大小,单位为M
108
- puts "[PodAssistant] cachesize #{spec.name}: "+"#{dirSum}"+" M"
109
- # 如果相等则为CDN的下载方式
110
- if $gitSize == 0
111
- # CDN的下载方式
112
- CSV.open("#{Dir.home}/.AllPodsTimeAndSize.csv", "a+") do |csv|
113
- csv << [spec.name, $downloadTime, $pluginCurrentZipSize, dirSum, "CDN不统计此项", "CDN", $cdnDownloadTime, $cdnUnZipTime]
114
- end
115
- else
116
- # git的下载方式
117
- # 计算git clone大小和cache文件大小的差值,如果差值过大,则有优化空间
118
- diffSize = $gitSize - dirSum
119
- # 标红输出差值
120
- puts "[PodAssistant] diffSize = #{diffSize}"+"M "
121
- CSV.open("#{Dir.home}/.AllPodsTimeAndSize.csv", "a+") do |csv|
122
- csv << [spec.name, $cloneTime, $gitSize, dirSum, diffSize, "Git", "Git不统计此项", "Git不统计此项"]
123
- end
124
- end
102
+ # # --verbose输出详细信息,生成在home路径下.AllPodsTimeAndSize.csv的隐藏文件
103
+ # def verboseCopy_and_clean(source, destination, spec)
104
+ # begin
105
+ # # 计算拷贝到的目录下所有文件总大小,单位为M
106
+ # dirSum = Dir.size(destination.to_s)/1000.0/1000.0
107
+ # # 标红输出cache文件大小,单位为M
108
+ # puts "[PodAssistant] cachesize #{spec.name}: "+"#{dirSum}"+" M"
109
+ # # 如果相等则为CDN的下载方式
110
+ # if $gitSize == 0
111
+ # # CDN的下载方式
112
+ # CSV.open("#{Dir.home}/.AllPodsTimeAndSize.csv", "a+") do |csv|
113
+ # csv << [spec.name, $downloadTime, $pluginCurrentZipSize, dirSum, "CDN不统计此项", "CDN", $cdnDownloadTime, $cdnUnZipTime]
114
+ # end
115
+ # else
116
+ # # git的下载方式
117
+ # # 计算git clone大小和cache文件大小的差值,如果差值过大,则有优化空间
118
+ # diffSize = $gitSize - dirSum
119
+ # # 标红输出差值
120
+ # puts "[PodAssistant] diffSize = #{diffSize}"+"M "
121
+ # CSV.open("#{Dir.home}/.AllPodsTimeAndSize.csv", "a+") do |csv|
122
+ # csv << [spec.name, $cloneTime, $gitSize, dirSum, diffSize, "Git", "Git不统计此项", "Git不统计此项"]
123
+ # end
124
+ # end
125
125
 
126
- # 换行
127
- puts
126
+ # # 换行
127
+ # puts
128
128
 
129
- rescue => exception
130
- # 输出拷贝清除方法异常
131
- puts "[PodAssistant] verboseCopy_and_clean error(已捕获): #{exception}".red
132
- end
133
- $gitSize = 0
134
- end
135
- end
129
+ # rescue => exception
130
+ # # 输出拷贝清除方法异常
131
+ # puts "[PodAssistant] verboseCopy_and_clean error(已捕获): #{exception}".red
132
+ # end
133
+ # $gitSize = 0
134
+ # end
135
+ # end
136
136
 
137
137
 
138
- class Pod::Downloader::Cache
138
+ # class Pod::Downloader::Cache
139
139
 
140
- alias :origin_download :download
140
+ # alias :origin_download :download
141
141
 
142
- def download(request, target)
143
- # 获取downloader下载的文件路径
144
- source = target.to_s
145
- # 赋值当前正在下载的文件路径给全局变量,为了解压zip的时候做判断
146
- $pluginCurrentTarget = source
147
- # 赋值当前正在下载的pod名称给全局变量,为了解压zip的时候做输出
148
- $pluginCurrentPodName = request.name.to_s
149
- # 获取clone执行前时间点
150
- time1 = Time.new
151
- # 执行之前的download_source方法,接收该方法的返回值
152
- result, podspecs = origin_download(request, target)
142
+ # def download(request, target)
143
+ # # 获取downloader下载的文件路径
144
+ # source = target.to_s
145
+ # # 赋值当前正在下载的文件路径给全局变量,为了解压zip的时候做判断
146
+ # $pluginCurrentTarget = source
147
+ # # 赋值当前正在下载的pod名称给全局变量,为了解压zip的时候做输出
148
+ # $pluginCurrentPodName = request.name.to_s
149
+ # # 获取clone执行前时间点
150
+ # time1 = Time.new
151
+ # # 执行之前的download_source方法,接收该方法的返回值
152
+ # result, podspecs = origin_download(request, target)
153
153
 
154
- # 如果不是--verbose,只输出总耗时,总下载大小
155
- # 捕获一下异常,不会因为plugin的原因导致pod失败
156
- begin
157
- # 获取clone执行后时间点
158
- time2 = Time.new
159
- # 获取时间差
160
- time = time2 - time1
161
- if request.params["git".to_sym]
162
- # 说明是git方式
163
- # 赋值一个给全局变量,之后时间统计要用到
164
- $cloneTime = time
165
- # 赋值一个给全局变量,之后时间统计要用到
166
- $cloneAllTime = $cloneAllTime + time
167
- # 计算downloader下载的文件大小,单位为M
168
- dirSum = Dir.size(source)/1000.0/1000.0
169
- # 赋值给一个全局变量,之后输出会用到
170
- $gitAllSize = $gitAllSize + dirSum
171
- else
172
- # 说明是CDN方式
173
- # 赋值一个给全局变量,之后时间统计要用到
174
- $downloadTime = time
175
- # 赋值一个给全局变量,之后时间统计要用到
176
- $downloadAllTime = $downloadAllTime + time
177
- # 赋值给一个全局变量,之后输出会用到
178
- $cdnDownloadAllTime = $cdnDownloadAllTime + $cdnDownloadTime
179
- # 赋值给一个全局变量,之后输出会用到
180
- $cdnUnZipAllTime = $cdnUnZipAllTime + $cdnUnZipTime
181
- # 赋值给一个全局变量,之后输出会用到
182
- $pluginCurrentZipAllSize = $pluginCurrentZipAllSize + $pluginCurrentZipSize
183
- end
154
+ # # 如果不是--verbose,只输出总耗时,总下载大小
155
+ # # 捕获一下异常,不会因为plugin的原因导致pod失败
156
+ # begin
157
+ # # 获取clone执行后时间点
158
+ # time2 = Time.new
159
+ # # 获取时间差
160
+ # time = time2 - time1
161
+ # if request.params["git".to_sym]
162
+ # # 说明是git方式
163
+ # # 赋值一个给全局变量,之后时间统计要用到
164
+ # $cloneTime = time
165
+ # # 赋值一个给全局变量,之后时间统计要用到
166
+ # $cloneAllTime = $cloneAllTime + time
167
+ # # 计算downloader下载的文件大小,单位为M
168
+ # dirSum = Dir.size(source)/1000.0/1000.0
169
+ # # 赋值给一个全局变量,之后输出会用到
170
+ # $gitAllSize = $gitAllSize + dirSum
171
+ # else
172
+ # # 说明是CDN方式
173
+ # # 赋值一个给全局变量,之后时间统计要用到
174
+ # $downloadTime = time
175
+ # # 赋值一个给全局变量,之后时间统计要用到
176
+ # $downloadAllTime = $downloadAllTime + time
177
+ # # 赋值给一个全局变量,之后输出会用到
178
+ # $cdnDownloadAllTime = $cdnDownloadAllTime + $cdnDownloadTime
179
+ # # 赋值给一个全局变量,之后输出会用到
180
+ # $cdnUnZipAllTime = $cdnUnZipAllTime + $cdnUnZipTime
181
+ # # 赋值给一个全局变量,之后输出会用到
182
+ # $pluginCurrentZipAllSize = $pluginCurrentZipAllSize + $pluginCurrentZipSize
183
+ # end
184
184
 
185
- # 如果是--verbose,则输出详细信息,生成csv
186
- if $pluginIsVerbose == true
187
- verboseDownload(request, time, dirSum)
188
- end
189
- # 返回值
190
- [result, podspecs]
191
- rescue => exception
192
- # 标红输出git clone hook异常
193
- puts "[PodAssistant] download error(已捕获): #{exception}"
194
- end
195
- end
185
+ # # 如果是--verbose,则输出详细信息,生成csv
186
+ # if $pluginIsVerbose == true
187
+ # verboseDownload(request, time, dirSum)
188
+ # end
189
+ # # 返回值
190
+ # [result, podspecs]
191
+ # rescue => exception
192
+ # # 标红输出git clone hook异常
193
+ # puts "[PodAssistant] download error(已捕获): #{exception}"
194
+ # end
195
+ # end
196
196
 
197
- def verboseDownload(request, time, dirSum)
198
- if request.params["git".to_sym]
199
- # 说明是git方式
200
- # 标红输出git clone耗时
201
- puts "[PodAssistant] #{request.name.to_s} clone time: #{time}"+" S"
202
- # 赋值给一个全局变量,之后输出会用到
203
- $gitSize = dirSum
204
- # 标红输出git clone下载文件大小
205
- puts "[PodAssistant] #{request.name.to_s} clone allsize: "+"#{dirSum}"+" M"
206
- else
207
- # 说明是CDN方式
208
- # 标红输出CDN 下载耗时
209
- puts "[PodAssistant] #{request.name.to_s} CDN download time: #{$cdnDownloadTime}"+" S"
210
- # 标红输出CDN 解压耗时
211
- puts "[PodAssistant] #{request.name.to_s} CDN unzip time: #{$cdnUnZipTime}"+" S"
212
- # 标红输出CDN 总耗时
213
- puts "[PodAssistant] #{request.name.to_s} CDN All time: #{$downloadTime}"+" S"
214
- # 标红输出CDN clone下载文件大小
215
- puts "[PodAssistant] #{request.name.to_s} CDN zipSize: "+"#{$pluginCurrentZipSize}"+" M"
216
- end
197
+ # def verboseDownload(request, time, dirSum)
198
+ # if request.params["git".to_sym]
199
+ # # 说明是git方式
200
+ # # 标红输出git clone耗时
201
+ # puts "[PodAssistant] #{request.name.to_s} clone time: #{time}"+" S"
202
+ # # 赋值给一个全局变量,之后输出会用到
203
+ # $gitSize = dirSum
204
+ # # 标红输出git clone下载文件大小
205
+ # puts "[PodAssistant] #{request.name.to_s} clone allsize: "+"#{dirSum}"+" M"
206
+ # else
207
+ # # 说明是CDN方式
208
+ # # 标红输出CDN 下载耗时
209
+ # puts "[PodAssistant] #{request.name.to_s} CDN download time: #{$cdnDownloadTime}"+" S"
210
+ # # 标红输出CDN 解压耗时
211
+ # puts "[PodAssistant] #{request.name.to_s} CDN unzip time: #{$cdnUnZipTime}"+" S"
212
+ # # 标红输出CDN 总耗时
213
+ # puts "[PodAssistant] #{request.name.to_s} CDN All time: #{$downloadTime}"+" S"
214
+ # # 标红输出CDN clone下载文件大小
215
+ # puts "[PodAssistant] #{request.name.to_s} CDN zipSize: "+"#{$pluginCurrentZipSize}"+" M"
216
+ # end
217
217
 
218
- end
218
+ # end
219
219
 
220
- end
220
+ # end
221
221
 
222
- class Pod::Downloader::Http
223
- # 使用方法别名hook解压方法,获取解压之前的文件大小
224
- alias :origin_download_file :download_file
225
- alias :origin_extract_with_type :extract_with_type
222
+ # class Pod::Downloader::Http
223
+ # # 使用方法别名hook解压方法,获取解压之前的文件大小
224
+ # alias :origin_download_file :download_file
225
+ # alias :origin_extract_with_type :extract_with_type
226
226
 
227
- def download_file(_full_filename)
228
- # 捕获一下异常,不会因为plugin的原因导致pod失败
229
- begin
230
- if _full_filename.to_s.include?($pluginCurrentTarget)
231
- # 说明是之前被赋值的开始下载了
227
+ # def download_file(_full_filename)
228
+ # # 捕获一下异常,不会因为plugin的原因导致pod失败
229
+ # begin
230
+ # if _full_filename.to_s.include?($pluginCurrentTarget)
231
+ # # 说明是之前被赋值的开始下载了
232
232
 
233
- # 获取CDN下载执行前时间点
234
- time1 = Time.new
235
- # 执行原来的CDN下载方法
236
- origin_download_file(_full_filename)
237
- # 获取CDN下载执行后时间点
238
- time2 = Time.new
239
- # 赋值CDN下载耗时给全局变量,用于之后输出以及写在csv中
240
- $cdnDownloadTime = time2 - time1
241
- else
242
- # 说明不是之前被赋值的开始下载了,输出一下,然后清空
243
- puts "[PodAssistant] unzip warning: #{$pluginCurrentTarget} target error"
244
- puts "[PodAssistant] unzip warning: #{$pluginCurrentPodName} name error"
245
- $pluginCurrentTarget = ""
246
- $pluginCurrentPodName = ""
247
- end
248
- rescue => exception
249
- # 输出CDM下载方法异常
250
- puts "[PodAssistant] download_file error(已捕获): #{exception}"
251
- end
233
+ # # 获取CDN下载执行前时间点
234
+ # time1 = Time.new
235
+ # # 执行原来的CDN下载方法
236
+ # origin_download_file(_full_filename)
237
+ # # 获取CDN下载执行后时间点
238
+ # time2 = Time.new
239
+ # # 赋值CDN下载耗时给全局变量,用于之后输出以及写在csv中
240
+ # $cdnDownloadTime = time2 - time1
241
+ # else
242
+ # # 说明不是之前被赋值的开始下载了,输出一下,然后清空
243
+ # puts "[PodAssistant] unzip warning: #{$pluginCurrentTarget} target error"
244
+ # puts "[PodAssistant] unzip warning: #{$pluginCurrentPodName} name error"
245
+ # $pluginCurrentTarget = ""
246
+ # $pluginCurrentPodName = ""
247
+ # end
248
+ # rescue => exception
249
+ # # 输出CDM下载方法异常
250
+ # puts "[PodAssistant] download_file error(已捕获): #{exception}"
251
+ # end
252
252
 
253
- end
253
+ # end
254
254
 
255
- def extract_with_type(full_filename, type = :zip)
256
- # 捕获一下异常,不会因为plugin的原因导致pod失败
257
- begin
258
- if full_filename.to_s.include?($pluginCurrentTarget)
259
- # 说明是之前被赋值的下载完成了,开始进行解压了
255
+ # def extract_with_type(full_filename, type = :zip)
256
+ # # 捕获一下异常,不会因为plugin的原因导致pod失败
257
+ # begin
258
+ # if full_filename.to_s.include?($pluginCurrentTarget)
259
+ # # 说明是之前被赋值的下载完成了,开始进行解压了
260
260
 
261
- # 计算拷贝到的目录下所有文件总大小,单位为M
262
- dirSum = File.size(full_filename.to_s)/1000.0/1000.0
263
- # 赋值给当前正在解压的zip大小,之后输出到csv要用
264
- $pluginCurrentZipSize = dirSum
265
- else
266
- # 说明不是之前被赋值的下载完成了,输出一下,然后清空
267
- puts "[PodAssistant] unzip warning: #{$pluginCurrentTarget} target error"
268
- puts "[PodAssistant] unzip warning: #{$pluginCurrentPodName} name error"
269
- $pluginCurrentTarget = ""
270
- $pluginCurrentPodName = ""
271
- end
272
- rescue => exception
273
- # 输出CDN解压方法异常
274
- puts "[PodAssistant] extract_with_type error(已捕获): #{exception}"
275
- end
276
- # 获取CDN解压前时间点
277
- time1 = Time.new
278
- # 执行之前的解压方法
279
- origin_extract_with_type(full_filename, type)
280
- # 获取CDN解压后时间点
281
- time2 = Time.new
282
- # 赋值CDN解压耗时给全局变量,用于之后输出以及写在csv中
283
- $cdnUnZipTime = time2 - time1
284
- end
285
- end
261
+ # # 计算拷贝到的目录下所有文件总大小,单位为M
262
+ # dirSum = File.size(full_filename.to_s)/1000.0/1000.0
263
+ # # 赋值给当前正在解压的zip大小,之后输出到csv要用
264
+ # $pluginCurrentZipSize = dirSum
265
+ # else
266
+ # # 说明不是之前被赋值的下载完成了,输出一下,然后清空
267
+ # puts "[PodAssistant] unzip warning: #{$pluginCurrentTarget} target error"
268
+ # puts "[PodAssistant] unzip warning: #{$pluginCurrentPodName} name error"
269
+ # $pluginCurrentTarget = ""
270
+ # $pluginCurrentPodName = ""
271
+ # end
272
+ # rescue => exception
273
+ # # 输出CDN解压方法异常
274
+ # puts "[PodAssistant] extract_with_type error(已捕获): #{exception}"
275
+ # end
276
+ # # 获取CDN解压前时间点
277
+ # time1 = Time.new
278
+ # # 执行之前的解压方法
279
+ # origin_extract_with_type(full_filename, type)
280
+ # # 获取CDN解压后时间点
281
+ # time2 = Time.new
282
+ # # 赋值CDN解压耗时给全局变量,用于之后输出以及写在csv中
283
+ # $cdnUnZipTime = time2 - time1
284
+ # end
285
+ # end
286
286
 
287
287
  # class Pod::Downloader::Git
288
288
  # # 使用方法别名hook clone方法
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-bb-PodAssistant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - humin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-19 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods-core
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.10.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: cocoapods-bb-bin
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.7.7
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.7.7
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +117,7 @@ files:
103
117
  - lib/cocoapods-bb-PodAssistant/helpers/stable_env_helper.rb
104
118
  - lib/cocoapods-bb-PodAssistant/helpers/stable_manager_helper.rb
105
119
  - lib/cocoapods-bb-PodAssistant/helpers/yaml_files_helper.rb
120
+ - lib/cocoapods-bb-PodAssistant/native/installer.rb
106
121
  - lib/cocoapods-bb-PodAssistant/podfile.rb
107
122
  - lib/cocoapods-bb-PodAssistant/source_provider_hook.rb
108
123
  - lib/cocoapods_plugin.rb
@@ -127,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
142
  - !ruby/object:Gem::Version
128
143
  version: '0'
129
144
  requirements: []
130
- rubygems_version: 3.4.20
145
+ rubygems_version: 3.4.22
131
146
  signing_key:
132
147
  specification_version: 4
133
148
  summary: A longer description of cocoapods-bb-PodAssistant.