ソースを参照

Project patch script rework.

Fixes #291.
Daniel Alm 7 年 前
コミット
4984951cfa

+ 2 - 3
Makefile

@@ -16,9 +16,8 @@ project:
 
 project-carthage:
 	swift package generate-xcodeproj --output SwiftGRPC-Carthage.xcodeproj
-	@-ruby fix-project-settings.rb SwiftGRPC-Carthage.xcodeproj || echo "You may need to install xcodeproj ('sudo gem install xcodeproj')!"
-	@ruby remove-unwanted-targets-for-carthage.rb SwiftGRPC-Carthage.xcodeproj || echo "xcodeproj ('sudo gem install xcodeproj') is required in order to generate the Carthage-compatible project!"
-	@ruby add-swift-resolve-prebuild-phase.rb || echo "xcodeproj ('sudo gem install xcodeproj') is required in order to generate the Carthage-compatible project!"
+	@ruby fix-project-settings.rb SwiftGRPC-Carthage.xcodeproj || echo "xcodeproj ('sudo gem install xcodeproj') is required in order to generate the Carthage-compatible project!"
+	@ruby patch-carthage-project.rb SwiftGRPC-Carthage.xcodeproj || echo "xcodeproj ('sudo gem install xcodeproj') is required in order to generate the Carthage-compatible project!"
 
 test:	all
 	swift test $(CFLAGS)

ファイルの差分が大きいため隠しています
+ 889 - 784
SwiftGRPC-Carthage.xcodeproj/project.pbxproj


+ 15 - 0
fix-project-settings.rb

@@ -2,10 +2,18 @@ require 'xcodeproj'
 project_path = ARGV[0]
 project = Xcodeproj::Project.open(project_path)
 
+# Fix indentation settings.
 project.main_group.uses_tabs = '0'
 project.main_group.tab_width = '2'
 project.main_group.indent_width = '2'
 
+# Set the `CURRENT_PROJECT_VERSION` variable for each config to ensure
+# that the generated frameworks pass App Store validation (#291).
+project.build_configurations.each do |config|
+  config.build_settings["CURRENT_PROJECT_VERSION"] = "1.0"
+end
+
+# Ensure that the CgRPC framework is built as a proper framework.
 cgrpc_target = project.targets.select { |target| target.name == "CgRPC" }[0]
 
 cgrpc_target.build_configurations.each do |config|
@@ -16,4 +24,11 @@ cgrpc_ref = project.files.select { |project_file| project_file.display_name == "
 cgrpc_header = cgrpc_target.headers_build_phase.add_file_reference(cgrpc_ref)
 cgrpc_header.settings = { 'ATTRIBUTES' => ['Public'] }
 
+# Set each target's iOS deployment target to 9.0
+project.targets.each do |target|
+  target.build_configurations.each do |config|
+    config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "9.0"
+  end
+end
+
 project.save

+ 10 - 1
add-swift-resolve-prebuild-phase.rb → patch-carthage-project.rb

@@ -1,7 +1,16 @@
 require 'xcodeproj'
-project_path = './SwiftGRPC-Carthage.xcodeproj'
+project_path = ARGV[0]
 project = Xcodeproj::Project.open(project_path)
 
+# Remove targets that we do not want Carthage to build, and set the deployment target to 9.0.
+carthage_targets = ["BoringSSL", "CgRPC", "SwiftGRPC", "SwiftProtobuf"]
+targets_to_remove = project.targets.select { |target| !carthage_targets.include?(target.name) }
+targets_to_remove.each do |target|
+  target.remove_from_project
+end
+
+# Add a `swift package resolve` step before building `SwiftProtobuf`.
+
 swift_protobuf_target = project.targets.select { |target| target.name == "SwiftProtobuf" }[0]
 swift_protobuf_build_phases = swift_protobuf_target.build_phases
 

+ 0 - 22
remove-unwanted-targets-for-carthage.rb

@@ -1,22 +0,0 @@
-require 'xcodeproj'
-project_path = ARGV[0]
-project = Xcodeproj::Project.open(project_path)
-
-carthage_targets = ["BoringSSL", "CgRPC", "SwiftGRPC", "SwiftProtobuf"]
-targets_to_remove = []
-
-project.targets.each do |target|
-  if !carthage_targets.include?(target.name)
-    targets_to_remove << target
-  else
-    target.build_configurations.each do |config|
-      config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "9.0"
-    end
-  end
-end
-
-targets_to_remove.each do |target|
-  target.remove_from_project
-end
-
-project.save

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません