cocoapods-bb-PodAssistant 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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.