fix-project-settings.rb 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. require 'xcodeproj'
  2. project_path = ARGV[0]
  3. project = Xcodeproj::Project.open(project_path)
  4. # Fix indentation settings.
  5. project.main_group.uses_tabs = '0'
  6. project.main_group.tab_width = '2'
  7. project.main_group.indent_width = '2'
  8. # Set the `CURRENT_PROJECT_VERSION` variable for each config to ensure
  9. # that the generated frameworks pass App Store validation (#291).
  10. project.build_configurations.each do |config|
  11. config.build_settings["CURRENT_PROJECT_VERSION"] = "1.0"
  12. end
  13. # Ensure that the CgRPC framework is built as a proper framework.
  14. cgrpc_target = project.targets.select { |target| target.name == "CgRPC" }[0]
  15. cgrpc_target.build_configurations.each do |config|
  16. config.build_settings["DEFINES_MODULE"] = "YES"
  17. end
  18. cgrpc_ref = project.files.select { |project_file| project_file.display_name == "cgrpc.h" }[0]
  19. cgrpc_header = cgrpc_target.headers_build_phase.add_file_reference(cgrpc_ref)
  20. cgrpc_header.settings = { 'ATTRIBUTES' => ['Public'] }
  21. # Set each target's iOS deployment target to 9.0
  22. project.targets.each do |target|
  23. target.build_configurations.each do |config|
  24. config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "9.0"
  25. config.build_settings["TVOS_DEPLOYMENT_TARGET"] = "10.0"
  26. if config.build_settings["PRODUCT_BUNDLE_IDENTIFIER"] then
  27. config.build_settings["PRODUCT_BUNDLE_IDENTIFIER"] = "io.grpc." + config.build_settings["PRODUCT_BUNDLE_IDENTIFIER"]
  28. end
  29. end
  30. end
  31. project.save