cocoapods-podgenerate 0.1.8 → 0.1.10

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: fa4cebf776d8e9316d7918a7556d5458e21b3e0cbea9e8f721093a056227fba9
4
+ data.tar.gz: 280babae205a25f7cd82993b36fa5f4d74514370df1d3292e1aa846c9c14f701
5
5
  SHA512:
6
- metadata.gz: 6d92ebe86345558f686219e98fcb9685c9955794d2dbdcc508832460966ff65b79203144c70738789499f2b9ab883ecea5f8f5eca051da40146892ad05587c36
7
- data.tar.gz: efee76fa98a79f2088d641f0819bf659d4cae5182d31a5f7e7fa20af8a87c6dfb25c7d51750e27553e29b1956eab2590dd9a60c9a586152220108127273bbca5
6
+ metadata.gz: 5a3e01afe52be0424971e8bf07400de9e3d836c56d78db0ca9142f4a4e09d7946b82978a4fe1babb6ca61d3733b4c7a69c01259ea812f948755fefaa010cb193
7
+ data.tar.gz: 0714d4f01940a0dbd5a5036573dc324eec254f2f139c8da6739a28c16bae62b5d0cf6a3ec9c93004fdf9537c74c391931d56e5ca5f41759b88ded729a62498e7
@@ -208,37 +208,46 @@ 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
+ Pod::UI.message "[cocoapods-podgenerate] Resolving cross-project deps across #{@generated_projects.size} projects"
218
+
219
+ # 构建全局 UUID → target 查找表(来自所有项目,包括主项目)
220
+ all_targets = {}
221
+ @generated_projects.each do |project|
222
+ project.targets.each do |target|
223
+ all_targets[target.uuid] = target
220
224
  end
221
225
  end
222
226
 
223
- return if remote_targets.empty?
227
+ if all_targets.empty?
228
+ Pod::UI.message '[cocoapods-podgenerate] No targets found in generated_projects — skipping cross-project resolution'
229
+ return
230
+ end
224
231
 
225
232
  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
233
+ # 遍历所有项目(主项目 + 子项目),解析它们的跨项目依赖
234
+ @generated_projects.each do |project|
235
+ project.targets.each do |target|
236
+ target.dependencies.each do |dependency|
237
+ # 已解析的(同一项目内)跳过
238
+ next if dependency.target
239
+ # proxy 引用说明不是跨项目依赖,也跳过
240
+ next unless dependency.target_proxy
241
+
242
+ remote_uuid = dependency.target_proxy.remote_global_id_string
243
+ next unless remote_uuid
244
+
245
+ remote_target = all_targets[remote_uuid]
246
+ next unless remote_target
247
+
248
+ dependency.target = remote_target
249
+ resolved += 1
250
+ end
242
251
  end
243
252
  end
244
253
 
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.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - PodGenerate Team