Skip to content

Commit 7a9d0fa

Browse files
authored
Merge pull request #1790 from firebase/nc/script-exit
fix: Fail scripts/add_framework_script.rb if given target DNE
2 parents d69a848 + 0ac7602 commit 7a9d0fa

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

scripts/add_framework_script.rb

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,22 @@
2929
opt.on('--file_ext FILE_EXT') { |o| options[:file_ext] = o}
3030
end.parse!
3131
sdk = options[:sdk]
32-
target = options[:target]
32+
target_name = options[:target]
3333
framework_path = options[:framework_path]
3434
source_tree = options[:source_tree]
3535
file_ext = options[:file_ext]
3636
project_path = "#{sdk}Example.xcodeproj"
3737
project = Xcodeproj::Project.open(project_path)
38+
39+
# Find the target.
40+
target = project.targets.find { |t| t.name == target_name }
41+
42+
# Check if the target exists.
43+
unless target
44+
STDERR.puts "Error: Target '#{target_name}' not found in project '#{project_path}'."
45+
exit 1
46+
end
47+
3848
project_framework_group = project.frameworks_group
3949

4050
def add_ref(group, path, source_tree, phase_list)
@@ -56,40 +66,31 @@ def add_ref(group, path, source_tree, phase_list)
5666

5767
if File.directory?(framework_path)
5868
if framework_path.end_with?("bundle")
59-
project.targets.each do |project_target|
60-
next unless project_target.name == target
61-
puts "The following bundle is added to #{project_target}"
62-
add_ref(project.main_group,
63-
framework_path,
64-
source_tree,
65-
[project_target.resources_build_phase])
66-
end
69+
puts "The following bundle is added to #{target.name}"
70+
add_ref(project.main_group,
71+
framework_path,
72+
source_tree,
73+
[target.resources_build_phase])
6774
else
6875
framework_group = Dir.glob(File.join(framework_path, "*.{#{file_ext}}"))
6976

70-
project.targets.each do |project_target|
71-
next unless project_target.name == target
72-
framework_set = project_target.frameworks_build_phase.files.to_set
73-
puts "The following frameworks are added to #{project_target}"
74-
embed_frameworks_phase = project_target.new_copy_files_build_phase("Embed Frameworks")
75-
embed_frameworks_phase.dst_subfolder_spec = "10" # `Frameworks` directory
76-
framework_group.each do |framework|
77-
next if framework_set.size == framework_set.add(framework).size
78-
add_ref(project_framework_group,
79-
framework,
80-
source_tree,
81-
[project_target.frameworks_build_phase, embed_frameworks_phase])
82-
end
77+
framework_set = target.frameworks_build_phase.files.to_set
78+
puts "The following frameworks are added to #{target.name}"
79+
embed_frameworks_phase = target.new_copy_files_build_phase("Embed Frameworks")
80+
embed_frameworks_phase.dst_subfolder_spec = "10" # `Frameworks` directory
81+
framework_group.each do |framework|
82+
next if framework_set.size == framework_set.add(framework).size
83+
add_ref(project_framework_group,
84+
framework,
85+
source_tree,
86+
[target.frameworks_build_phase, embed_frameworks_phase])
8387
end
8488
end
8589
else
86-
project.targets.each do |project_target|
87-
next unless project_target.name == target
88-
puts "The following file is added to #{project_target}"
89-
add_ref(project_framework_group,
90-
framework_path,
91-
source_tree,
92-
[project_target.frameworks_build_phase])
93-
end
90+
puts "The following file is added to #{target.name}"
91+
add_ref(project_framework_group,
92+
framework_path,
93+
source_tree,
94+
[target.frameworks_build_phase])
9495
end
9596
project.save()

0 commit comments

Comments
 (0)