Commit c06be7de authored by Samuel E. Giddins's avatar Samuel E. Giddins

[Installer] Ensure no duplicate target deps are created

parent a9f5d195
...@@ -42,6 +42,10 @@ To install release candidates run `[sudo] gem install cocoapods --pre` ...@@ -42,6 +42,10 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
[Samuel Giddins](https://github.com/segiddins) [Samuel Giddins](https://github.com/segiddins)
[#3537](https://github.com/CocoaPods/CocoaPods/issues/3537) [#3537](https://github.com/CocoaPods/CocoaPods/issues/3537)
* Ensure that no duplicate framework or target dependencies are created.
[Samuel Giddins](https://github.com/segiddins)
[#3763](https://github.com/CocoaPods/CocoaPods/issues/3763)
## 0.38.0.beta.1 ## 0.38.0.beta.1
......
...@@ -24,7 +24,7 @@ GIT ...@@ -24,7 +24,7 @@ GIT
GIT GIT
remote: https://github.com/CocoaPods/Xcodeproj.git remote: https://github.com/CocoaPods/Xcodeproj.git
revision: e5d74992284d75e25b3a19d02a943133852f0a9f revision: be12faf76853e46ca84767c890feda08415495db
branch: master branch: master
specs: specs:
xcodeproj (0.26.0) xcodeproj (0.26.0)
......
...@@ -626,7 +626,7 @@ module Pod ...@@ -626,7 +626,7 @@ module Pod
if pod_target.requires_frameworks? if pod_target.requires_frameworks?
product_ref = frameworks_group.files.find { |f| f.path == pod_dependency_target.product_name } || product_ref = frameworks_group.files.find { |f| f.path == pod_dependency_target.product_name } ||
frameworks_group.new_product_ref_for_target(pod_dependency_target.product_basename, pod_dependency_target.product_type) frameworks_group.new_product_ref_for_target(pod_dependency_target.product_basename, pod_dependency_target.product_type)
pod_target.native_target.frameworks_build_phase.add_file_reference(product_ref) pod_target.native_target.frameworks_build_phase.add_file_reference(product_ref, true)
end end
end end
end end
......
...@@ -126,7 +126,7 @@ module Pod ...@@ -126,7 +126,7 @@ module Pod
new_product_ref = frameworks.files.find { |f| f.path == target.product_name } || new_product_ref = frameworks.files.find { |f| f.path == target.product_name } ||
frameworks.new_product_ref_for_target(target_basename, target.product_type) frameworks.new_product_ref_for_target(target_basename, target.product_type)
build_file = build_phase.build_file(new_product_ref) || build_file = build_phase.build_file(new_product_ref) ||
build_phase.add_file_reference(new_product_ref) build_phase.add_file_reference(new_product_ref, true)
if target.requires_frameworks? if target.requires_frameworks?
# Weak link the aggregate target's product, because as it contains # Weak link the aggregate target's product, because as it contains
# no symbols, it isn't copied into the app bundle. dyld will so # no symbols, it isn't copied into the app bundle. dyld will so
......
...@@ -153,9 +153,9 @@ module Pod ...@@ -153,9 +153,9 @@ module Pod
# depends. # depends.
# #
def dependencies def dependencies
spec_consumers.map do |consumer| spec_consumers.flat_map do |consumer|
consumer.dependencies.map { |dep| Specification.root_name(dep.name) } consumer.dependencies.map { |dep| Specification.root_name(dep.name) }
end.flatten end.uniq
end end
# Checks if the target should be included in the build configuration with # Checks if the target should be included in the build configuration with
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment