cocoapods-meitu-bin 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cocoapods-meitu-bin/config/config.rb +19 -1
- data/lib/cocoapods-meitu-bin/gem_version.rb +1 -1
- data/lib/cocoapods-meitu-bin/helpers/buildAll/podspec_util.rb +2 -1
- data/lib/cocoapods-meitu-bin/native/installer.rb +9 -0
- data/lib/cocoapods-meitu-bin/source_provider_hook.rb +104 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ebf1cf1f2233bcb048f840eb09344b7f580085aa0b30ea8dcecd7826bb5e9a7
|
4
|
+
data.tar.gz: 067b9e8a1d16beb0877e5acdf79b0b903deedea1d602e7654973f7b96fe15dc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2c49f8e4b10995521e874878cde1e85f364d59c3d1d0f2f674dbc66d02b408d3cdd67c58cef3c30fe9d1a4207df025c50752d2c81727689735a9174c443be96
|
7
|
+
data.tar.gz: b92afc764eae7cfa72ec010b92692fc946aa30ca95d1a944fef6f8b0dc8089da2a36972860910b49227607e3b3b8fff9005321faaa65bf659d5649f7f92867a0
|
@@ -2,7 +2,7 @@ require 'yaml'
|
|
2
2
|
require 'cocoapods-meitu-bin/native/podfile'
|
3
3
|
require 'cocoapods-meitu-bin/native/podfile_env'
|
4
4
|
require 'cocoapods/generate'
|
5
|
-
|
5
|
+
require 'cocoapods'
|
6
6
|
module CBin
|
7
7
|
class Config
|
8
8
|
def config_file
|
@@ -147,3 +147,21 @@ module CBin
|
|
147
147
|
@config ||= Config.new
|
148
148
|
end
|
149
149
|
end
|
150
|
+
|
151
|
+
class PodUpdateConfig
|
152
|
+
@@pods = []
|
153
|
+
@@lockfile = nil
|
154
|
+
def self.add_value(value)
|
155
|
+
@@pods << value
|
156
|
+
end
|
157
|
+
def self.set_lockfile(path)
|
158
|
+
@@lockfile = Pod::Lockfile.from_file(path) if path
|
159
|
+
end
|
160
|
+
def self.lockfile()
|
161
|
+
@@lockfile
|
162
|
+
end
|
163
|
+
# 一个类方法,用于显示数组中的值
|
164
|
+
def self.pods
|
165
|
+
@@pods
|
166
|
+
end
|
167
|
+
end
|
@@ -26,7 +26,8 @@ module CBin
|
|
26
26
|
spec['private_header_files'] = "#{root_dir}/PrivateHeaders/*.h"
|
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
31
|
# 处理资源
|
31
32
|
resources = %W[#{root_dir}/*.{#{special_resource_exts.join(',')}} #{root_dir}/resources/*]
|
32
33
|
spec['resources'] = resources
|
@@ -4,6 +4,7 @@ require 'cocoapods'
|
|
4
4
|
require 'xcodeproj'
|
5
5
|
require 'cocoapods-meitu-bin/native/pod_source_installer'
|
6
6
|
require 'cocoapods-meitu-bin/helpers/pod_size_helper'
|
7
|
+
require 'cocoapods-meitu-bin/config/config'
|
7
8
|
|
8
9
|
module Pod
|
9
10
|
class Installer
|
@@ -34,6 +35,14 @@ module Pod
|
|
34
35
|
# 依赖分析
|
35
36
|
alias old_resolve_dependencies resolve_dependencies
|
36
37
|
def resolve_dependencies
|
38
|
+
list = PodUpdateConfig.pods
|
39
|
+
# 判断 PodUpdateConfig.pods 是否为空,且数组大于0
|
40
|
+
if list && !list.empty?
|
41
|
+
self.update = { :pods => list }
|
42
|
+
end
|
43
|
+
if PodUpdateConfig.lockfile
|
44
|
+
self.instance_variable_set("@lockfile",PodUpdateConfig.lockfile)
|
45
|
+
end
|
37
46
|
start_time = Time.now
|
38
47
|
analyzer = old_resolve_dependencies
|
39
48
|
cost_time_hash['resolve_dependencies'] = Time.now - start_time
|
@@ -3,12 +3,107 @@ require 'cocoapods-meitu-bin/command/bin/repo/update'
|
|
3
3
|
require 'cocoapods-meitu-bin/config/config'
|
4
4
|
require 'cocoapods/user_interface'
|
5
5
|
require 'yaml'
|
6
|
+
require 'cocoapods'
|
6
7
|
|
7
|
-
|
8
|
+
#获取服务端podfile.lock文件
|
9
|
+
def get_podfile_lock
|
10
|
+
begin
|
11
|
+
# 默认是获取要获取服务端podfile.lock文件
|
12
|
+
is_load_podfile_lock = true
|
13
|
+
# MEITU_LOAD_CACHE_PODFILE_LOCK 为false时不获取服务端podfile.lock文件
|
14
|
+
if ENV['MEITU_LOAD_CACHE_PODFILE_LOCK'] && ENV['MEITU_LOAD_CACHE_PODFILE_LOCK'] == 'false'
|
15
|
+
is_load_podfile_lock = false
|
16
|
+
end
|
17
|
+
# 判断是否有update参数 时不获取服务端podfile.lock文件
|
18
|
+
ARGV.each do |arg|
|
19
|
+
if arg == 'update'
|
20
|
+
is_load_podfile_lock = false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
# podfile.lock文件下载和使用逻辑
|
24
|
+
if is_load_podfile_lock
|
25
|
+
#获取 PODFILE CHECKSUM 用来判断服务端是否存在该podfile.lock
|
26
|
+
checksum = Pod::Config.instance.podfile.checksum
|
27
|
+
puts checksum
|
28
|
+
# zip下载地址
|
29
|
+
curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{checksum}/podfile.lock.zip"
|
30
|
+
# 判断zip文件是否存在 存在下载并解压
|
31
|
+
if system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200")
|
32
|
+
puts "获取服务端存储的podfile.lcok文件".green
|
33
|
+
#下载并解压的podfile.zip文件
|
34
|
+
if system("curl -O #{curl}") && system("unzip -o podfile.lock.zip")
|
35
|
+
Pod::UI.puts "下载并解压podfile.lcok文件成功".green
|
36
|
+
`rm -rf podfile.lock.zip`
|
37
|
+
# 设置获取到的podfile.lock对象
|
38
|
+
PodUpdateConfig.set_lockfile( Pod::Config.instance.installation_root + 'Podfile.lock')
|
39
|
+
#获取analyzer
|
40
|
+
analyzer = Pod::Installer::Analyzer.new(
|
41
|
+
Pod::Config.instance.sandbox,
|
42
|
+
Pod::Config.instance.podfile,
|
43
|
+
PodUpdateConfig.lockfile
|
44
|
+
)
|
45
|
+
analyzer.analyze(true)
|
46
|
+
|
47
|
+
#获取analyzer中所有git 且branch 指向的pod
|
48
|
+
Pod::Config.instance.podfile.dependencies.map do |dependency|
|
49
|
+
if dependency.external_source && dependency.external_source[:git] && (dependency.external_source[:branch] || (dependency.external_source.size == 1))
|
50
|
+
#brash 指定的组件添加到全局PodUpdateConfig配置中,执行pod install 需要更新的分支最新提交
|
51
|
+
PodUpdateConfig.add_value(dependency.name)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
else
|
55
|
+
puts "获取podfile.lcok文件失败"
|
56
|
+
`rm -rf podfile.lock.zip`
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
rescue => error
|
61
|
+
puts error
|
62
|
+
puts "podfile.lcok相关发生异常"
|
63
|
+
`rm -rf podfile.lock.zip`
|
64
|
+
`rm -rf podfile.lock`
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# 上传podfile.lock文件到服务端
|
69
|
+
def upload_podfile_lock
|
70
|
+
begin
|
71
|
+
checksum = Pod::Config.instance.podfile.checksum
|
72
|
+
curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{checksum}/podfile.lock.zip"
|
73
|
+
# 服务端不存在该podfiel.lock文件才上传,避免频繁上报同一个文件
|
74
|
+
if !system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200")
|
75
|
+
Pod::UI.puts "上报podfile.lcok文件到服务端".green
|
76
|
+
puts checksum
|
77
|
+
if system("zip podfile.lock.zip Podfile.lock") && system("curl -F \"name=MTXX\" -F \"version=#{checksum}\" -F \"file=@#{Pathname.pwd}/podfile.lock.zip\" http://nezha.community.cloud.meitu.com/file/upload.json")
|
78
|
+
Pod::UI.puts "上报podfile.lcok文件到服务端成功".green
|
79
|
+
`rm -rf podfile.lock.zip`
|
80
|
+
else
|
81
|
+
Pod::UI.puts "上报podfile.lcok文件到服务端失败".red
|
82
|
+
`rm -rf podfile.lock.zip`
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
rescue => error
|
87
|
+
puts "上传podfile.lcok文件失败".red
|
88
|
+
`rm -rf podfile.zip`
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context|
|
8
93
|
require 'cocoapods-meitu-bin/native'
|
9
94
|
require 'cocoapods-meitu-bin/helpers/buildAll/bin_helper'
|
10
95
|
|
11
96
|
Pod::UI.puts "当前configuration: `#{ENV['configuration'] || Pod::Config.instance.podfile.configuration}`".green
|
97
|
+
# checksum = Pod::Config.instance.podfile.checksum
|
98
|
+
# puts Pod::Config.instance
|
99
|
+
# installer = Installer.new(config.sandbox, config.podfile, config.lockfile)
|
100
|
+
# puts checksum
|
101
|
+
get_podfile_lock
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
12
107
|
|
13
108
|
# pod bin repo update 更新二进制私有源
|
14
109
|
Pod::Command::Bin::Repo::Update.new(CLAide::ARGV.new($ARGV)).run
|
@@ -23,6 +118,7 @@ Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context, _|
|
|
23
118
|
$ARGV[1] != 'archive'
|
24
119
|
_context.podfile.set_use_source_pods d.name
|
25
120
|
end
|
121
|
+
|
26
122
|
end
|
27
123
|
|
28
124
|
# 同步 BinPodfile 文件
|
@@ -43,6 +139,13 @@ Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context, _|
|
|
43
139
|
end
|
44
140
|
end
|
45
141
|
|
142
|
+
# 注册 pod install 钩子
|
143
|
+
Pod::HooksManager.register('cocoapods-meitu-bin', :post_install) do |context|
|
144
|
+
# p "hello world! post_install"
|
145
|
+
upload_podfile_lock
|
146
|
+
|
147
|
+
end
|
148
|
+
|
46
149
|
Pod::HooksManager.register('cocoapods-meitu-bin', :source_provider) do |context, _|
|
47
150
|
sources_manager = Pod::Config.instance.sources_manager
|
48
151
|
podfile = Pod::Config.instance.podfile
|
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.2
|
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-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '0'
|
193
193
|
requirements: []
|
194
|
-
rubygems_version: 3.
|
194
|
+
rubygems_version: 3.4.16
|
195
195
|
signing_key:
|
196
196
|
specification_version: 4
|
197
197
|
summary: cocoapods-meitu-bin is a plugin which helps develpers switching pods between
|