cocoapods-meitu-bin 1.1.4 → 1.1.5

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: 73b976c903602c05d082f8e8cc8c0c886e831b786aebc4a7a32696caeba4fe6d
4
- data.tar.gz: 6f2d1a869d95fa1a99a1ccc2a8bae5d6bcc24c67b92d0baf0d22c9d9b9feb291
3
+ metadata.gz: 466b8b10f18760c5cd7a468a4a4ee860bcec5650fc79be7622f4bd545eac6562
4
+ data.tar.gz: 140cfcba73e84f74f011a42d7d4e2f2a1c8366c5c74a3529d38da10b2c6b0f98
5
5
  SHA512:
6
- metadata.gz: 2e2b1fe99071023e22bcefe5364b62b00f0baa495091a4e4663bd2b0caea510cdc8de77a29b66afc8111deeb915ca3e0f42aece646451a1ad04f66146656edbd
7
- data.tar.gz: 44611af9f2e3fcbe147012cb55999ac48696e05c5dfde4bce29ce9f2280e19d02aaf26cc63e6d04c43d2f20359e0f12248f5de94bd431791dc9b005c04675bca
6
+ metadata.gz: f5d00b8d229b43e33cd69997aa29f2856bde47fdd1701fc64ea9e0597bbd49e4758b1bd9b98de2f8fe2cf8d2e32af9e90fb083b2af134acdc5a39bfc440020c6
7
+ data.tar.gz: 8a0c5673d4ab1c328eba75fa07e9c48920e3d60571dca4214e32323defa762d139c94d298796d32e553eb7772685a485bc2a0df09fdc49f7fd3e6f84563a529c
@@ -151,6 +151,8 @@ end
151
151
  class PodUpdateConfig
152
152
  @@pods = []
153
153
  @@lockfile = nil
154
+ @@repo_update = true
155
+ @@prepare_time = 0
154
156
  def self.add_value(value)
155
157
  @@pods << value
156
158
  end
@@ -161,6 +163,19 @@ class PodUpdateConfig
161
163
  @@lockfile
162
164
  end
163
165
  # 一个类方法,用于显示数组中的值
166
+ def self.repo_update
167
+ @@repo_update
168
+ end
169
+ def self.set_repo_update
170
+ @@repo_update = false
171
+ end
172
+ def self.set_prepare_time(time)
173
+ @@prepare_time = time
174
+ end
175
+ def self.prepare_time
176
+ @@prepare_time
177
+ end
178
+
164
179
  def self.pods
165
180
  @@pods
166
181
  end
@@ -1,5 +1,5 @@
1
1
  module CBin
2
- VERSION = "1.1.4"
2
+ VERSION = "1.1.5"
3
3
  end
4
4
 
5
5
  module Pod
@@ -348,8 +348,22 @@ ibtool \
348
348
  fwks_dir = "#{result_product_dir}/fwks"
349
349
  FileUtils.mkdir(fwks_dir) unless File.exist?(fwks_dir)
350
350
  fwks.map do |fwk|
351
- `rsync -av #{fwk} #{fwks_dir}`
351
+ new_fwk = get_XCFrameworkIntermediates_path(fwk)
352
+ if new_fwk && File.exist?(new_fwk)
353
+ `rsync -av #{new_fwk} #{fwks_dir}`
354
+ else
355
+ `rsync -av #{fwk} #{fwks_dir}`
356
+ end
357
+ end
358
+ end
359
+ def get_XCFrameworkIntermediates_path(path)
360
+ # 使用正则表达式匹配并提取 AdsFramework
361
+ match = path.to_s.match(/\/([^\/]+)\.xcframework/)
362
+ if match
363
+ framework_path = "#{product_dir}/#{iphoneos}/XCFrameworkIntermediates/#{match[1]}/#{match[1]}.framework"
364
+ return framework_path
352
365
  end
366
+ return nil
353
367
  end
354
368
 
355
369
  # 拷贝 framework
@@ -27,7 +27,7 @@ module CBin
27
27
  # 处理vendored_libraries和vendored_frameworks
28
28
  spec['vendored_libraries'] = "#{root_dir}/libs/*.a"
29
29
  #兼容.xcframework
30
- spec['vendored_frameworks'] = %W[#{root_dir} #{root_dir}/fwks/*.framework #{root_dir}/fwks/*.xcframework]
30
+ spec['vendored_frameworks'] = %W[#{root_dir} #{root_dir}/fwks/*.framework]
31
31
  # 处理资源
32
32
  resources = %W[#{root_dir}/*.{#{special_resource_exts.join(',')}} #{root_dir}/resources/*]
33
33
  spec['resources'] = resources
@@ -66,7 +66,6 @@ module CBin
66
66
  repo_name = Pod::Config.instance.sources_manager.binary_source.name
67
67
  # repo_name = 'example-private-spec-bin'
68
68
  argvs = %W[#{repo_name} #{binary_podsepc_json} --skip-import-validation --use-libraries --allow-warnings --verbose]
69
-
70
69
  begin
71
70
  push = Pod::Command::Repo::Push.new(CLAide::ARGV.new(argvs))
72
71
  push.validate!
@@ -35,6 +35,7 @@ module Pod
35
35
  # 依赖分析
36
36
  alias old_resolve_dependencies resolve_dependencies
37
37
  def resolve_dependencies
38
+ start_time = Time.now
38
39
  list = PodUpdateConfig.pods
39
40
  # 判断 PodUpdateConfig.pods 是否为空,且数组大于0
40
41
  if list && !list.empty?
@@ -43,8 +44,24 @@ module Pod
43
44
  if PodUpdateConfig.lockfile
44
45
  self.instance_variable_set("@lockfile",PodUpdateConfig.lockfile)
45
46
  end
46
- start_time = Time.now
47
- analyzer = old_resolve_dependencies
47
+
48
+ plugin_sources = run_source_provider_hooks
49
+ analyzer = create_analyzer(plugin_sources)
50
+
51
+ UI.section 'Updating local specs repositories' do
52
+ analyzer.update_repositories
53
+ end if repo_update? && PodUpdateConfig.repo_update
54
+
55
+ UI.section 'Analyzing dependencies' do
56
+ analyze(analyzer)
57
+ validate_build_configurations
58
+ end
59
+
60
+ UI.section 'Verifying no changes' do
61
+ verify_no_podfile_changes!
62
+ verify_no_lockfile_changes!
63
+ end if deployment?
64
+ cost_time_hash['prepare'] = PodUpdateConfig.prepare_time
48
65
  cost_time_hash['resolve_dependencies'] = Time.now - start_time
49
66
  analyzer
50
67
  end
@@ -24,19 +24,23 @@ def get_podfile_lock
24
24
  if is_load_podfile_lock
25
25
  #获取 PODFILE CHECKSUM 用来判断服务端是否存在该podfile.lock
26
26
  checksum = Pod::Config.instance.podfile.checksum
27
- puts checksum
28
- # lock = Pod::Config.instance.lockfile
29
- # list = lock.internal_data['SPEC REPOS']['https://github.com/CocoaPods/Specs.git']
30
- # #遍历 list
31
- # name_list = []
32
- # list.each do |item|
33
- # name_list << item
34
- # # `echo #{item} >> /Users/sunxianglong/Desktop/work/data.txt`
35
- # end
36
27
  # zip下载地址
37
28
  curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{checksum}/podfile.lock.zip"
38
- # 判断zip文件是否存在 存在下载并解压
29
+
30
+ # 判断服务端是否存在该podfile.lock
31
+ is_load_podfile_lock = false
39
32
  if system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200 > /dev/null 2>&1")
33
+ is_load_podfile_lock = true
34
+ end
35
+ branch_value = ENV['branch']
36
+ if !is_load_podfile_lock && branch_value && branch_value == 'develop'
37
+ curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/develop/podfile.lock.zip"
38
+ if system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200 > /dev/null 2>&1")
39
+ is_load_podfile_lock = true
40
+ end
41
+ end
42
+ # 判断是否需要下载podfile.lock文件
43
+ if is_load_podfile_lock
40
44
  puts "获取服务端存储的podfile.lcok文件".green
41
45
  #下载并解压的podfile.zip文件
42
46
  if system("curl -O #{curl} > /dev/null 2>&1") && system("unzip -o podfile.lock.zip > /dev/null 2>&1")
@@ -52,14 +56,8 @@ def get_podfile_lock
52
56
  PodUpdateConfig.lockfile
53
57
  )
54
58
  analyzer.update_repositories
59
+ PodUpdateConfig.set_repo_update
55
60
  analyzer.analyze(true)
56
-
57
- # analyzer.instance_variable_get("@result").pod_targets.each do |pod_target|
58
- # if name_list.include?(pod_target.name)
59
- # # "#{SPEC_NAME}/#{VERSION}/#{SPEC_NAME}.podspec"
60
- # end
61
- # end
62
-
63
61
  #获取analyzer中所有git 且branch 指向的pod
64
62
  Pod::Config.instance.podfile.dependencies.map do |dependency|
65
63
  if dependency.external_source && dependency.external_source[:git] && (dependency.external_source[:branch] || (dependency.external_source.size == 1))
@@ -117,10 +115,27 @@ def upload_mbox_podfile_lock
117
115
  puts "mbox podfile.lcok文件兼容处理失败,失败原因:#{error}"
118
116
  end
119
117
  end
118
+ def upload_develop_podfile_lock
119
+ begin
120
+ branch_value = ENV['branch']
121
+ if branch_value && branch_value == 'develop'
122
+ if system("zip podfile.lock.zip Podfile.lock > /dev/null 2>&1") && system("curl -F \"name=MTXX\" -F \"version=develop\" -F \"file=@#{Pathname.pwd}/podfile.lock.zip\" http://nezha.community.cloud.meitu.com/file/upload.json > /dev/null 2>&1")
123
+ Pod::UI.puts "上报podfile.lcok文件到服务端成功".green
124
+ `rm -rf podfile.lock.zip`
125
+ else
126
+ Pod::UI.puts "上报podfile.lcok文件到服务端失败".red
127
+ `rm -rf podfile.lock.zip`
128
+ end
129
+ end
130
+ rescue => error
131
+
132
+ end
133
+ end
134
+
120
135
  Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context|
136
+ start_time = Time.now
121
137
  require 'cocoapods-meitu-bin/native'
122
138
  require 'cocoapods-meitu-bin/helpers/buildAll/bin_helper'
123
-
124
139
  Pod::UI.puts "当前configuration: `#{ENV['configuration'] || Pod::Config.instance.podfile.configuration}`".green
125
140
  # checksum = Pod::Config.instance.podfile.checksum
126
141
  # puts Pod::Config.instance
@@ -143,7 +158,7 @@ Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context|
143
158
  end
144
159
 
145
160
  end
146
-
161
+ PodUpdateConfig.set_prepare_time(Time.now - start_time)
147
162
  # 同步 BinPodfile 文件
148
163
  project_root = Pod::Config.instance.project_root
149
164
  path = File.join(project_root.to_s, 'BinPodfile')
@@ -160,16 +175,19 @@ Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context|
160
175
  raise Pod::DSLError.new(message, path, e, contents)
161
176
  end
162
177
  end
178
+ PodUpdateConfig.set_prepare_time(Time.now - start_time)
163
179
  end
164
180
 
165
181
  # 注册 pod install 钩子
166
182
  Pod::HooksManager.register('cocoapods-meitu-bin', :post_install) do |context|
167
- # p "hello world! post_install"
183
+ #基于podfile的checksum上报云端podfile.lock文件
168
184
  upload_podfile_lock(Pod::Config.instance.podfile.checksum)
169
185
  #判断是否在 mbox 工作目录执行pod install
170
186
  if system("mbox status > /dev/null 2>&1")
171
187
  upload_mbox_podfile_lock
172
188
  end
189
+ #基于 develop 分支,上报podfile.lock文件
190
+ upload_develop_podfile_lock
173
191
  end
174
192
 
175
193
  Pod::HooksManager.register('cocoapods-meitu-bin', :source_provider) do |context, _|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-meitu-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-20 00:00:00.000000000 Z
11
+ date: 2023-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel