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 +4 -4
- data/lib/cocoapods-meitu-bin/config/config.rb +15 -0
- data/lib/cocoapods-meitu-bin/gem_version.rb +1 -1
- data/lib/cocoapods-meitu-bin/helpers/buildAll/builder.rb +15 -1
- data/lib/cocoapods-meitu-bin/helpers/buildAll/podspec_util.rb +1 -2
- data/lib/cocoapods-meitu-bin/native/installer.rb +19 -2
- data/lib/cocoapods-meitu-bin/source_provider_hook.rb +38 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 466b8b10f18760c5cd7a468a4a4ee860bcec5650fc79be7622f4bd545eac6562
|
4
|
+
data.tar.gz: 140cfcba73e84f74f011a42d7d4e2f2a1c8366c5c74a3529d38da10b2c6b0f98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
@@ -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
|
-
|
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
|
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
|
-
|
47
|
-
|
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
|
-
|
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
|
-
|
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
|
+
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-
|
11
|
+
date: 2023-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|