podfileDep 2.4.1 → 2.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/podfileDep/check/project.rb +52 -20
- data/lib/podfileDep/version.rb +1 -1
- 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: 878b46bd1a19d4bdefd0a6060fe42b6d927b9649ff430a220027f1e3cf532d97
|
4
|
+
data.tar.gz: 2253957d4fa07c0e293adb5e8b36d0432358360848ff2986a50823d8674a60ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d32c5d1b75841af22791bf840ddbd923d347bb18f35ce86dccd8d95d896e07256733b3f727371fdbb67c8db308b6d0516c44619bf344ad8fa1378738c8eb614c
|
7
|
+
data.tar.gz: 5b46900f0ce8b15dac042a149a6fe28160a0ada51a5ad8683a17682c53bafd71b99fe06481dfcf2aab449007651f00dfcb8637dc0e200d69da447433eb92444f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require 'colored2'
|
3
|
+
require 'cocoapods/downloader/request'
|
3
4
|
require_relative 'util'
|
4
5
|
require_relative 'item'
|
5
6
|
|
@@ -21,13 +22,18 @@ module Xcodeproj
|
|
21
22
|
# @return [Hash]
|
22
23
|
attr_accessor :lock_content
|
23
24
|
|
25
|
+
# @return [Hash]
|
26
|
+
attr_accessor :version_map
|
27
|
+
|
24
28
|
def initialize
|
25
29
|
@shell_project = nil
|
26
30
|
@pod_project = nil
|
27
31
|
@module_items = {}
|
32
|
+
@version_map = {}
|
28
33
|
init_shell_project
|
29
34
|
init_pod_project
|
30
35
|
init_lockfile
|
36
|
+
init_version_map
|
31
37
|
expand_module
|
32
38
|
init_vendor_frameworks
|
33
39
|
end
|
@@ -68,6 +74,21 @@ module Xcodeproj
|
|
68
74
|
|
69
75
|
@lock_content = YAML.load_file(lockfile_path)
|
70
76
|
end
|
77
|
+
def init_version_map
|
78
|
+
lock_content = @lock_content
|
79
|
+
|
80
|
+
remote_dependencies = lock_content["PODS"]
|
81
|
+
remote_dependencies.each do |dependency|
|
82
|
+
if dependency.class == Hash
|
83
|
+
dependency = dependency.keys.first
|
84
|
+
end
|
85
|
+
temp = dependency.split("(")
|
86
|
+
name = temp[0].split("/")[0] # UMCShare/Social/ReducedWeChat
|
87
|
+
name = name.gsub(" ", "").gsub(")", "")
|
88
|
+
version = temp[1].gsub("= ", "").gsub(")", "")
|
89
|
+
@version_map[name] = version
|
90
|
+
end
|
91
|
+
end
|
71
92
|
|
72
93
|
# 展开模块
|
73
94
|
def expand_module
|
@@ -153,34 +174,39 @@ module Xcodeproj
|
|
153
174
|
|
154
175
|
# 读取某个模块的podspec路径
|
155
176
|
def get_podspec_path(module_name)
|
156
|
-
|
177
|
+
check_options = lock_content["CHECKOUT OPTIONS"]
|
178
|
+
if check_options and check_options[module_name]
|
179
|
+
check_option = check_options[module_name]
|
180
|
+
request = Pod::Downloader::Request.new(released:false, name:module_name, params:check_option)
|
181
|
+
slug_opts = {}
|
182
|
+
cache_path = request.slug(**slug_opts)
|
183
|
+
return "~/Library/Caches/CocoaPods/Pods/Specs/#{cache_path}.podspec.json"
|
184
|
+
end
|
185
|
+
|
186
|
+
# :path: localPods/XX
|
157
187
|
local_spec = lock_content["EXTERNAL SOURCES"]
|
158
188
|
if local_spec and local_spec[module_name]
|
159
189
|
path = local_spec[module_name][:path]
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
remote_dependencies = lock_content["DEPENDENCIES"]
|
164
|
-
version_map = {}
|
165
|
-
remote_dependencies.each do |dependency|
|
166
|
-
temp = dependency.split("(")
|
167
|
-
name = temp[0].split("/")[0] # UMCShare/Social/ReducedWeChat
|
168
|
-
name = name.gsub(" ", "").gsub(")", "")
|
169
|
-
version = temp[1].gsub("= ", "").gsub(")", "")
|
170
|
-
version_map[name] = version
|
190
|
+
if path
|
191
|
+
return Pathname(path).expand_path
|
192
|
+
end
|
171
193
|
end
|
172
|
-
version = version_map[module_name]
|
173
194
|
|
174
|
-
|
195
|
+
# 4.0.1-24ee2.podspec.json
|
196
|
+
version_spec = @lock_content["SPEC CHECKSUMS"]
|
175
197
|
md5_to5 = ""
|
176
|
-
if
|
177
|
-
md5 =
|
198
|
+
if version_spec and version_spec[module_name]
|
199
|
+
md5 = version_spec[module_name]
|
178
200
|
md5_to5 = md5.slice(0,5)
|
179
201
|
end
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
202
|
+
version = @version_map[module_name]
|
203
|
+
if version
|
204
|
+
podspec_json_name = "#{version}-#{md5_to5}.podspec.json"
|
205
|
+
path = "~/Library/Caches/CocoaPods/Pods/Specs/Release/#{module_name}/#{podspec_json_name}"
|
206
|
+
return Pathname(path).expand_path
|
207
|
+
end
|
208
|
+
|
209
|
+
nil
|
184
210
|
end
|
185
211
|
|
186
212
|
|
@@ -188,6 +214,12 @@ module Xcodeproj
|
|
188
214
|
def init_vendor_frameworks
|
189
215
|
@module_items.each_value do |module_item|
|
190
216
|
module_item.frameworks << module_item.module_name
|
217
|
+
|
218
|
+
unless module_item.podspec_path
|
219
|
+
puts "⚠️ 读取#{module_item.module_name}的podspec路径为空,请发送Podfile.lock文件联系开发者修复"
|
220
|
+
next
|
221
|
+
end
|
222
|
+
|
191
223
|
podspec_content = Util.get_podspec_content(module_item.podspec_path)
|
192
224
|
|
193
225
|
unless podspec_content
|
data/lib/podfileDep/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: podfileDep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 王帅朋
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|