Sha256: ce55b0b83bd0b3fd520155dc5f915122de833c034521bfeb7a6c29f301d6f84e

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"
  platform = PLATFORM_OF_SDK[sdk]

  cmd = ["xcodebuild"]
  cmd << "-project" << options[:sandbox].project_path.realdirpath
  cmd << "-scheme" << options[: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 << "2>&1"
  cmd = cmd.join(" ")

  Pod::UI.puts_indented "$ #{cmd}"
  log = `#{cmd}`

  succeeded = $?.exitstatus.zero? # rubocop:disable Style/SpecialGlobalVars
  unless succeeded
    begin
      raise "Unexpected error" unless log.include?("** BUILD FAILED **")

      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
    end
  end
  [succeeded, log]
end

Version data entries

1 entries across 1 versions & 1 rubygems

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