Module: Xcode

Defined in:
lib/modules/xcode.rb

Overview

Main methods

Instance Method Summary collapse

Instance Method Details

#archive(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR) ⇒ Object



36
37
38
39
40
# File 'lib/modules/xcode.rb', line 36

def archive(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR)
  config = BuildConfiguration.load(setup_name)
  base_command = xcodebuild_base_command(config)
  execute_xcodebuild "#{base_command} archive", config.use_xcpretty, config.xcpretty_flags, build_dir
end

#archive_and_export_ipa(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR, export_options_path = DEFAULT_EXPORT_OPTIONS_PLIST_PATH) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/modules/xcode.rb', line 42

def archive_and_export_ipa(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR, export_options_path = DEFAULT_EXPORT_OPTIONS_PLIST_PATH)
  config = BuildConfiguration.load(setup_name)
  file_name = config.release_configuration.product_name ? config.release_configuration.product_name : config.scheme
  archive_folder = File.join(Dir.pwd, build_dir)
  archive_name = file_name + ".xcarchive"
  archive_path = File.join(archive_folder, archive_name)
  sdk_option = config.sdk.nil? ? '' : "-sdk #{config.sdk}"
  execute_xcodebuild "#{xcodebuild_path()} #{config.project_load} \"#{config.project}\" -scheme \"#{config.scheme}\" #{sdk_option} -configuration #{config.configuration} archive -archivePath \"#{archive_path}\"", config.use_xcpretty, config.xcpretty_flags, build_dir
  execute_xcodebuild "#{xcodebuild_path()} -exportArchive -archivePath \"#{archive_path}\" -exportPath \"#{build_dir}\" -exportOptionsPlist \"#{export_options_path}\"", config.use_xcpretty, config.xcpretty_flags, build_dir
  Zip.compress("#{archive_path}")
end

#build(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR) ⇒ Object



30
31
32
33
34
# File 'lib/modules/xcode.rb', line 30

def build(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR)
  config = BuildConfiguration.load(setup_name)
  base_command = xcodebuild_base_command(config)
  execute_xcodebuild "#{base_command}", config.use_xcpretty, config.xcpretty_flags, build_dir
end

#build_universal_framework(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/modules/xcode.rb', line 54

def build_universal_framework(setup_name = YAML_DEFAULT_SETUP_NAME, build_dir = BUILD_DIR)
  config = BuildConfiguration.load(setup_name)
  device = device_with_sdk(config.sdk)
  execute_xcodebuild "#{xcodebuild_path()} #{config.project_load} \"#{config.project}\" -scheme \"#{config.scheme}\" -sdk #{device}os -configuration #{config.configuration} clean archive PLATFORM_NAME=#{device}os", config.use_xcpretty, config.xcpretty_flags, build_dir
  execute_xcodebuild "#{xcodebuild_path()} #{config.project_load} \"#{config.project}\" -scheme \"#{config.scheme}\" -sdk #{device}simulator -configuration #{config.configuration} clean build PLATFORM_NAME=#{device}simulator", config.use_xcpretty, config.xcpretty_flags, build_dir
  lipo_universal_framework(setup_name, build_dir, device)
end

#clean(setup_name = YAML_DEFAULT_SETUP_NAME) ⇒ Object



15
16
17
18
19
20
# File 'lib/modules/xcode.rb', line 15

def clean(setup_name = YAML_DEFAULT_SETUP_NAME)
  config = BuildConfiguration.load(setup_name)
  execute_xcodebuild "xcodebuild #{config.project_load} #{config.project} -scheme \"#{config.scheme}\" -sdk #{config.sdk} -configuration #{config.configuration} clean", config.use_xcpretty, config.xcpretty_flags
  derived_data_path = Dir.glob(ENV['HOME']+"/Library/Developer/Xcode/DerivedData/#{config.project}*")
  FileUtils.rm_rf(derived_data_path)
end

#test(setup_name = YAML_DEFAULT_SETUP_NAME) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/modules/xcode.rb', line 22

def test(setup_name = YAML_DEFAULT_SETUP_NAME)
  config = BuildConfiguration.load(setup_name)
  xcpretty_flags = xcpretty_flag_with_output_path(config.xcpretty_flags, test_report_output_path(config))
  test_destination = config.test_destination.build_destination_string
  base_command = xcodebuild_base_command(config)
  execute_xcodebuild "#{base_command} test -destination '#{test_destination}'", config.use_xcpretty, xcpretty_flags
end