Commit 39c46b5f authored by Marius Rackwitz's avatar Marius Rackwitz

Merge pull request #4818 from CocoaPods/fix-analyzer-crash

[Analyzer] Fix #4751
parents b7ef2788 6922bd66
...@@ -10,6 +10,10 @@ To install release candidates run `[sudo] gem install cocoapods --pre` ...@@ -10,6 +10,10 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
##### Bug Fixes ##### Bug Fixes
* Fix a crash in the analyzer when target deduplication is deactivated.
[Marius Rackwitz](https://github.com/mrackwitz)
[#4751](https://github.com/CocoaPods/CocoaPods/issues/4751)
* Handle CoreData mapping models with recursive resource globs. * Handle CoreData mapping models with recursive resource globs.
[Eric Firestone](https://github.com/efirestone) [Eric Firestone](https://github.com/efirestone)
[#4809](https://github.com/CocoaPods/CocoaPods/pull/4809) [#4809](https://github.com/CocoaPods/CocoaPods/pull/4809)
......
...@@ -286,9 +286,8 @@ module Pod ...@@ -286,9 +286,8 @@ module Pod
# @return [Array<PodTarget>] # @return [Array<PodTarget>]
# #
def generate_pod_targets(specs_by_target) def generate_pod_targets(specs_by_target)
if installation_options.deduplicate_targets?
dedupe_cache = {} dedupe_cache = {}
if installation_options.deduplicate_targets?
all_specs = specs_by_target.flat_map do |target_definition, dependent_specs| all_specs = specs_by_target.flat_map do |target_definition, dependent_specs|
dependent_specs.group_by(&:root).map do |root_spec, specs| dependent_specs.group_by(&:root).map do |root_spec, specs|
[root_spec, specs, target_definition] [root_spec, specs, target_definition]
......
...@@ -244,6 +244,33 @@ module Pod ...@@ -244,6 +244,33 @@ module Pod
Pods-SampleProject/Pods-SampleProject-monkey Pods-SampleProject/Pods-SampleProject-monkey
).sort ).sort
end end
it "doesn't deduplicate targets when deduplication is disabled" do
podfile = Pod::Podfile.new do
install! 'cocoapods', :deduplicate_targets => false
source SpecHelper.test_repo_url
platform :ios, '6.0'
xcodeproj 'SampleProject/SampleProject'
pod 'BananaLib'
target 'SampleProject' do
target 'TestRunner' do
pod 'BananaLib'
end
end
end
analyzer = Pod::Installer::Analyzer.new(config.sandbox, podfile)
analyzer.analyze
analyzer.analyze.targets.flat_map { |at| at.pod_targets.map { |pt| "#{at.name}/#{pt.name}" } }.sort.should == %w(
Pods-SampleProject-TestRunner/Pods-SampleProject-TestRunner-BananaLib
Pods-SampleProject-TestRunner/Pods-SampleProject-TestRunner-monkey
Pods-SampleProject/Pods-SampleProject-BananaLib
Pods-SampleProject/Pods-SampleProject-monkey
).sort
end
end end
it 'generates the integration library appropriately if the installation will not integrate' do it 'generates the integration library appropriately if the installation will not integrate' do
......
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