podfileDep 2.4.1 → 2.4.3

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 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