build Release configuration with specific xcconfig

This commit is contained in:
Ivan Smolin 2019-07-26 16:34:21 +03:00
parent 1517c53611
commit 21f159b4f8
1 changed files with 19 additions and 1 deletions

View File

@ -122,6 +122,8 @@ private_lane :buildArchive do |options|
exportOptions = icloudEnvironment.to_s.empty? ? {} : {iCloudContainerEnvironment: icloudEnvironment}
exportOptions[:compileBitcode] = options[:compileBitcode] || false
set_xcconfig_for_configuration_of_project(options[:configuration], "Release", options[:xcodeproj_path])
gym(
clean: true,
workspace: options[:workspace],
@ -129,7 +131,7 @@ private_lane :buildArchive do |options|
archive_path: "./",
output_directory: "./",
output_name: options[:output_name],
configuration: options[:configuration],
configuration: "Release",
export_method: options[:method],
export_options: exportOptions,
skip_package_ipa: options[:skip_package_ipa],
@ -307,3 +309,19 @@ end
def fabric_keys_from_shell_script(shell_script_contents)
shell_script_contents.gsub("\\n", "").partition('Fabric/run\" ').last.partition('";').first.split(" ")
end
def set_xcconfig_for_configuration_of_project(xcconfig_name, configuration_name, xcodeproj_path)
require 'xcodeproj'
project = Xcodeproj::Project.open(xcodeproj_path)
is_app_target = lambda { |t| !t.test_target_type? && t.product_type == Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application] }
application_target = project.native_targets.select(&is_app_target).first
build_configuration = application_target.build_configuration_list[configuration_name]
build_configuration_reference = project.files.select { |f| f.path.start_with?(xcconfig_name) }.first
build_configuration.base_configuration_reference = build_configuration_reference
project.save()
end