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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fcab1469dbb21e1af1ff2024d9ba7f7761719a51c5e55c3b2bef9d36bf5ac991
4
- data.tar.gz: 2bba05f649c9e47cf55974b53d894428fcdd252d8ae456c638f563704bbd769f
3
+ metadata.gz: 57fc7d9e92a87f918455121b118ea9854a8853cb899519e219197d50442d8550
4
+ data.tar.gz: bf5c029fd3716bbcb5b2c1256d0b3b61d3b77ae2319ff63b2e0c032b536c9288
5
5
  SHA512:
6
- metadata.gz: 6d92ebe86345558f686219e98fcb9685c9955794d2dbdcc508832460966ff65b79203144c70738789499f2b9ab883ecea5f8f5eca051da40146892ad05587c36
7
- data.tar.gz: efee76fa98a79f2088d641f0819bf659d4cae5182d31a5f7e7fa20af8a87c6dfb25c7d51750e27553e29b1956eab2590dd9a60c9a586152220108127273bbca5
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 @pods_project && @pod_target_subprojects
213
- return if @pod_target_subprojects.empty?
214
-
215
- # 构建 UUID → target 查找表(从所有子项目中)
216
- remote_targets = {}
217
- @pod_target_subprojects.each do |sub_project|
218
- sub_project.targets.each do |target|
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 remote_targets.empty?
226
+ return if all_targets.empty?
224
227
 
225
228
  resolved = 0
226
- # 遍历主项目中所有 target 的依赖
227
- @pods_project.targets.each do |target|
228
- target.dependencies.each do |dependency|
229
- # 已解析的(同一项目内)跳过
230
- next if dependency.target
231
- # proxy 引用说明不是跨项目依赖,也跳过
232
- next unless dependency.target_proxy
233
-
234
- remote_uuid = dependency.target_proxy.remote_global_id_string
235
- next unless remote_uuid
236
-
237
- remote_target = remote_targets[remote_uuid]
238
- next unless remote_target
239
-
240
- dependency.target = remote_target
241
- resolved += 1
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-podgenerate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - PodGenerate Team