patch-carthage-project.rb 882 B

123456789101112131415161718192021222324
  1. require 'xcodeproj'
  2. project_path = ARGV[0]
  3. project = Xcodeproj::Project.open(project_path)
  4. # Remove targets that we do not want Carthage to build, and set the deployment target to 9.0.
  5. carthage_targets = ["BoringSSL", "CgRPC", "SwiftGRPC", "SwiftProtobuf"]
  6. targets_to_remove = project.targets.select { |target| !carthage_targets.include?(target.name) }
  7. targets_to_remove.each do |target|
  8. target.remove_from_project
  9. end
  10. # Add a `swift package resolve` step before building `SwiftProtobuf`.
  11. swift_protobuf_target = project.targets.select { |target| target.name == "SwiftProtobuf" }[0]
  12. swift_protobuf_build_phases = swift_protobuf_target.build_phases
  13. swift_protobuf_target.new_shell_script_build_phase
  14. new_script_phase = swift_protobuf_build_phases.pop
  15. new_script_phase.shell_script = "swift package resolve"
  16. swift_protobuf_build_phases.unshift(new_script_phase)
  17. project.save