Class: Dean::Build

Inherits:
Object
  • Object
show all
Defined in:
lib/dean/commands/build.rb

Instance Method Summary collapse

Instance Method Details

#build_all_environmentsObject



9
10
11
12
13
14
# File 'lib/dean/commands/build.rb', line 9

def build_all_environments
  configurations_helper = ConfigurationHelper.new
  configurations_helper.all_environments.each do |environment|
    build_environment environment
  end
end

#build_environment(environment) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dean/commands/build.rb', line 16

def build_environment(environment)
  build_settings = ConfigurationHelper.new().build_settings_for_environment environment

  if not build_configuration_exists? build_settings[:build_configuration]
    fail IOError, "Build configuration #{build_settings[:build_configuration]} does not exist!"
  end

  if not provisioning_profile_exists? build_settings[:provisioning_profile]
    fail IOError, "Provisioning profile #{build_settings[:provisioning_profile]} not found on disk!"
  end

  version = ProjectVersionHelper.new().version_from_plist environment[:plist]

  ipa_path = "#{Dir.pwd}/#{build_settings[:location]}/#{version}"

  if ipa_lookup ipa_path
    build_options = "--workspace #{build_settings[:workspace]}"
    build_options += " --project #{build_settings[:project]}"
    build_options += " -c #{build_settings[:build_configuration]}"
    build_options += " -s #{build_settings[:scheme]}"
    build_options += " -m #{build_settings[:provisioning_profile]}"
    build_options += " -i \"#{build_settings[:signin_identity]}\""
    build_options += " --clean"
    build_options += " --archive"

    system "ipa build #{build_options}"

    # Once build succeeded move .ipa and .dSYM in the proper folder
    FileUtils.mkdir_p ipa_path
    ipa_name = ipa_name_from_project build_settings[:project]
    dSYM_name = dSYM_name_from_project build_settings[:project]
    FileUtils.mv "#{Dir.pwd}/#{ipa_name}", "#{ipa_path}/#{ipa_name}"
    FileUtils.mv "#{Dir.pwd}/#{dSYM_name}", "#{ipa_path}/#{dSYM_name}"
  else
    puts "Skipping".yellow
  end
end