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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90b91a2988e18202add645f9dfb02623d018854b09ed5b3e1c7cfe52ca463fba
4
- data.tar.gz: 1a7f61c0e7d35282204b055e3580bf4d78894fc6525a3b1f5d59bfea7d4f95d4
3
+ metadata.gz: 878b46bd1a19d4bdefd0a6060fe42b6d927b9649ff430a220027f1e3cf532d97
4
+ data.tar.gz: 2253957d4fa07c0e293adb5e8b36d0432358360848ff2986a50823d8674a60ff
5
5
  SHA512:
6
- metadata.gz: b6d370629f905be0397b4e76f2c2198b800a8e7868882d1436ed3a8a9aa19c57d3ed0a775ce1947e9e8f345cc6f2a018fc9d30c4264d966b87da80bca97f5bed
7
- data.tar.gz: dccea04f95d9d9d06db5a22424ebf02f360a465b18f2e4a07aa05af32e3bbc2423dc34b429b360acdab81c5abdd1a878ba2578ee3b32f1c867f52dbdae9969d8
6
+ metadata.gz: d32c5d1b75841af22791bf840ddbd923d347bb18f35ce86dccd8d95d896e07256733b3f727371fdbb67c8db308b6d0516c44619bf344ad8fa1378738c8eb614c
7
+ data.tar.gz: 5b46900f0ce8b15dac042a149a6fe28160a0ada51a5ad8683a17682c53bafd71b99fe06481dfcf2aab449007651f00dfcb8637dc0e200d69da447433eb92444f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Released]
2
2
 
3
+ ### [2.4.3] - 2023-7-30
4
+ - 修复指定非版本号的方式导致读不到podspec路径的问题
5
+
6
+ ### [2.4.2] - 2023-7-30
7
+ - nil导致异常问题修复
8
+
3
9
  ### [2.4.1] - 2023-7-29
4
10
  - 依赖库关系检查特殊问题修复
5
11
 
@@ -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
- lock_content = @lock_content
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
- return Pathname(path).expand_path
161
- end
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
- remote_spec = lock_content["SPEC CHECKSUMS"]
195
+ # 4.0.1-24ee2.podspec.json
196
+ version_spec = @lock_content["SPEC CHECKSUMS"]
175
197
  md5_to5 = ""
176
- if remote_spec and remote_spec[module_name]
177
- md5 = remote_spec[module_name]
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
- # 4.0.1-24ee2.podspec.json
181
- podspec_json_name = "#{version}-#{md5_to5}.podspec.json"
182
- path = "~/Library/Caches/CocoaPods/Pods/Specs/Release/#{module_name}/#{podspec_json_name}"
183
- Pathname(path).expand_path
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PodfileDep
4
- VERSION = "2.4.1"
4
+ VERSION = "2.4.3"
5
5
  end
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.1
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-29 00:00:00.000000000 Z
11
+ date: 2023-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods