lib/xcjobs/xcodebuild.rb in xcjobs-0.0.8 vs lib/xcjobs/xcodebuild.rb in xcjobs-0.0.9
- old
+ new
@@ -1,8 +1,9 @@
require 'rake/tasklib'
require 'rake/clean'
require 'open3'
+require 'shellwords'
require_relative 'helper'
module XCJobs
class Xcodebuild < Rake::TaskLib
include Rake::DSL if defined?(Rake::DSL)
@@ -227,23 +228,29 @@
def define
raise 'archive action requires specifying a scheme' unless scheme
raise 'cannot specify both a scheme and targets' if scheme && target
- CLEAN.include(build_dir) if build_dir
- CLOBBER.include(build_dir) if build_dir
+ if build_dir
+ CLEAN.include(build_dir)
+ CLOBBER.include(build_dir)
+ end
desc 'make xcarchive'
namespace :build do
task @name do
add_build_setting('CONFIGURATION_TEMP_DIR', File.join(build_dir, 'temp')) if build_dir
add_build_setting('CODE_SIGN_IDENTITY', signing_identity) if signing_identity
add_build_setting('PROVISIONING_PROFILE', provisioning_profile_uuid) if provisioning_profile_uuid
run(['xcodebuild', 'archive'] + options)
- sh %[(cd "#{build_dir}"; zip -ryq "dSYMs.zip" #{File.join("#{scheme}.xcarchive", "dSYMs")})] if build_dir && scheme
- sh %[(cd "#{build_dir}"; zip -ryq #{scheme}.xcarchive.zip #{scheme}.xcarchive)] if build_dir && scheme
+ if build_dir && scheme
+ bd = build_dir.shellescape
+ s = scheme.shellescape
+ sh %[(cd #{bd}; zip -ryq dSYMs.zip #{File.join("#{s}.xcarchive", "dSYMs")})]
+ sh %[(cd #{bd}; zip -ryq #{s}.xcarchive.zip #{s}.xcarchive)]
+ end
end
end
end
def archive_path