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