cocoapods-podgenerate 0.1.8 → 0.1.9
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-podgenerate/patches/installer_patch.rb +30 -25
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 57fc7d9e92a87f918455121b118ea9854a8853cb899519e219197d50442d8550
|
|
4
|
+
data.tar.gz: bf5c029fd3716bbcb5b2c1256d0b3b61d3b77ae2319ff63b2e0c032b536c9288
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f4c959a08b07e63f82dca1268590dfdccdad8832b3868bfefc3d3826f99f23d3ffee0553f7c287d5167fec6d2a8cdf6bbf7539c6ea9818b479c3031cf917e200
|
|
7
|
+
data.tar.gz: f6cec95c781807757abfb8ac64b06ee2790844a02d362505be685071090fc1cd155c93e4bfe2adbaeda1673094c22fa42fdad844e105336e62037fa005dae5f3
|
|
@@ -208,37 +208,42 @@ module Pod
|
|
|
208
208
|
# 在 post-install hooks 执行前,将子项目中实际的 target 对象关联到
|
|
209
209
|
# 主项目的 PBXTargetDependency.target 上,使得依赖链遍历可以正常工作。
|
|
210
210
|
# 这对于 Flutter podhelper.rb 的 depends_on_flutter 递归函数尤为重要。
|
|
211
|
+
#
|
|
212
|
+
# v0.1.9 改进:同时解析子项目 target 的跨项目依赖
|
|
213
|
+
# 因为 post-install hooks 可能遍历所有 generated_projects 的 targets,
|
|
214
|
+
# 不仅限于主项目(如 Flutter 新版 podhelper.rb 遍历所有子项目)。
|
|
211
215
|
def resolve_cross_project_dependencies
|
|
212
|
-
return unless @
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
remote_targets[target.uuid] = target
|
|
216
|
+
return unless @generated_projects && !@generated_projects.empty?
|
|
217
|
+
|
|
218
|
+
# 构建全局 UUID → target 查找表(来自所有项目,包括主项目)
|
|
219
|
+
all_targets = {}
|
|
220
|
+
@generated_projects.each do |project|
|
|
221
|
+
project.targets.each do |target|
|
|
222
|
+
all_targets[target.uuid] = target
|
|
220
223
|
end
|
|
221
224
|
end
|
|
222
225
|
|
|
223
|
-
return if
|
|
226
|
+
return if all_targets.empty?
|
|
224
227
|
|
|
225
228
|
resolved = 0
|
|
226
|
-
#
|
|
227
|
-
@
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
229
|
+
# 遍历所有项目(主项目 + 子项目),解析它们的跨项目依赖
|
|
230
|
+
@generated_projects.each do |project|
|
|
231
|
+
project.targets.each do |target|
|
|
232
|
+
target.dependencies.each do |dependency|
|
|
233
|
+
# 已解析的(同一项目内)跳过
|
|
234
|
+
next if dependency.target
|
|
235
|
+
# 无 proxy 引用说明不是跨项目依赖,也跳过
|
|
236
|
+
next unless dependency.target_proxy
|
|
237
|
+
|
|
238
|
+
remote_uuid = dependency.target_proxy.remote_global_id_string
|
|
239
|
+
next unless remote_uuid
|
|
240
|
+
|
|
241
|
+
remote_target = all_targets[remote_uuid]
|
|
242
|
+
next unless remote_target
|
|
243
|
+
|
|
244
|
+
dependency.target = remote_target
|
|
245
|
+
resolved += 1
|
|
246
|
+
end
|
|
242
247
|
end
|
|
243
248
|
end
|
|
244
249
|
|