Last active
October 18, 2022 12:18
-
-
Save csknns/c19793e8dfa059c494932d2ed1c7e8af to your computer and use it in GitHub Desktop.
Script to sort the files in the 'Compile Sources', 'Copy Bundle Resources' and 'Copy files' sections under Build Phase in Xcode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'xcodeproj' | |
require 'set' | |
project_file, target_name = ARGV | |
# open the project | |
project = Xcodeproj::Project.open(project_file) | |
# find the target | |
targets_to_sort = project.native_targets.select { |x| x.name == target_name || target_name.nil? } | |
phases_to_sort = [Xcodeproj::Project::Object::PBXSourcesBuildPhase, Xcodeproj::Project::Object::PBXCopyFilesBuildPhase, Xcodeproj::Project::Object::PBXResourcesBuildPhase] | |
targets_to_sort.each do |target| | |
puts "sorting files for target #{target.name}" | |
phases_to_sort.each do |phase_to_sort| | |
target.build_phases.select { |x| x.class == phase_to_sort }.each do |phase| | |
phase.files.sort! { |l, r| l.display_name <=> r.display_name } | |
end | |
end | |
end | |
puts 'saving project' | |
project.save |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
noice