From 0303c0bc4b4fe6cfbc1b9a4e3b909d844c605be0 Mon Sep 17 00:00:00 2001 From: Ben Yohay Date: Fri, 14 Jul 2023 17:19:13 +0300 Subject: [PATCH] target_dependency: Fix crash if `target_proxy` is `nil`. If `target_proxy` is `nil`, calling `to_tree_hash` on it will raise an exception: undefined method `to_tree_hash' for nil:NilClass (NoMethodError). --- CHANGELOG.md | 4 +++- lib/xcodeproj/project/object/target_dependency.rb | 2 +- spec/project/object/target_dependency_spec.rb | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd478f13..755a4c6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,9 @@ ##### Bug Fixes -* None. +* target_dependency: Fix crash if target_proxy is nil. + [Ben Yohay](https://github.com/byohay) + [#915](https://github.com/CocoaPods/Xcodeproj/pull/915) ## 1.22.0 (2022-06-22) diff --git a/lib/xcodeproj/project/object/target_dependency.rb b/lib/xcodeproj/project/object/target_dependency.rb index 05c58552..54b09fca 100644 --- a/lib/xcodeproj/project/object/target_dependency.rb +++ b/lib/xcodeproj/project/object/target_dependency.rb @@ -80,7 +80,7 @@ def to_tree_hash hash = {} hash['displayName'] = display_name hash['isa'] = isa - hash['targetProxy'] = target_proxy.to_tree_hash + hash['targetProxy'] = target_proxy.to_tree_hash if target_proxy hash end diff --git a/spec/project/object/target_dependency_spec.rb b/spec/project/object/target_dependency_spec.rb index a2aa9b74..b1d1fc6b 100644 --- a/spec/project/object/target_dependency_spec.rb +++ b/spec/project/object/target_dependency_spec.rb @@ -66,6 +66,17 @@ module ProjectSpecs } end + it 'tree hash for target dependency without target proxy' do + target = @project.new_target(:static, 'Pods', :ios) + @target_dependency.target = target + target.dependencies << @target_dependency + + @target_dependency.to_tree_hash.should == { + 'displayName' => 'Pods', + 'isa' => 'PBXTargetDependency', + } + end + #----------------------------------------# describe '#display_name' do