Sha256: 136d94a479bdc90ffb14ac513c46e93873fc246db6e69efad1516cd8e72e20fe

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

require "fourflusher"

PLATFORM_OF_SDK = {
  "iphonesimulator" => "iOS",
  "appletvsimulator" => "tvOS",
  "watchsimulator" => "watchOS"
}.freeze

def xcodebuild(options)
  sdk = options[:sdk] || "iphonesimulator"
  targets = options[:targets] || [options[:target]]
  platform = PLATFORM_OF_SDK[sdk]

  cmd = ["xcodebuild"]
  cmd << "-project" << options[:sandbox].project_path.realdirpath
  targets.each { |target| cmd << "-target" << target }
  cmd << "-configuration" << options[:configuration]
  cmd << "-sdk" << sdk
  cmd << Fourflusher::SimControl.new.destination(:oldest, platform, options[:deployment_target]) unless platform.nil?
  cmd += options[:args] if options[:args]
  cmd << "build"
  cmd << "2>&1"
  cmd = cmd.join(" ")

  Pod::UI.puts_indented "$ #{cmd}"
  log = `#{cmd}`
  return if $?.exitstatus.zero? # rubocop:disable Style/SpecialGlobalVars

  begin
    require "xcpretty" # TODO (thuyen): Revise this dependency
    # use xcpretty to print build log
    # 64 represent command invalid. http://www.manpagez.com/man/3/sysexits/
    printer = XCPretty::Printer.new({:formatter => XCPretty::Simple, :colorize => "auto"})
    log.each_line do |line|
      printer.pretty_print(line)
    end
  rescue
    Pod::UI.puts log.red
  ensure
    raise "Fail to build targets: #{targets}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cocoapods-binary-cache-0.1.9 lib/cocoapods-binary-cache/pod-rome/xcodebuild_raw.rb