class Kick

Public Class Methods

new() click to toggle source
# File lib/kick.rb, line 7
def initialize
  file = File.join(Dir.pwd, 'kick.spec')
  @build_settings = OpenStruct.new(YAML.load_file(file))
  puts @build_settings
  @base_name = @build_settings.base_name
  @provisioning_profile_in_developer_program_name = @build_settings.provisioning_profile_name
  @provisioning_profile_name = @provisioning_profile_in_developer_program_name.gsub(/ /, '_')
end

Public Instance Methods

build() click to toggle source
# File lib/kick.rb, line 33
def build

  self.clean
  self.update_mobileprovision

  computer_name = %x[scutil --get ComputerName].strip
  puts "computer_name: #{computer_name}"
  code_signing_identity = @build_settings.code_signing_identity[computer_name]
  scheme = @build_settings.scheme

  command_build = "ipa build -m #{@provisioning_profile_name}.mobileprovision -i \"#{code_signing_identity}\" -s \"#{scheme}\" --verbose"

  puts command_build

  system(command_build)
  puts 'build completed'

  self.info

end
clean() click to toggle source
# File lib/kick.rb, line 16
def clean
  system("rm #{@base_name}.ipa")
  system("rm #{@base_name}.app.dSYM.zip")
  system("rm #{@provisioning_profile_name}.mobileprovision")
end
dist(distribution_list=nil, custom_notes=nil) click to toggle source
# File lib/kick.rb, line 54
def dist(distribution_list=nil, custom_notes=nil)

  self.build

  notes = custom_notes || @build_settings.notes
  api_token = @build_settings.api_token
  team_token = @build_settings.team_token
  if distribution_list == nil
    distribution_list = @build_settings.distribution_list
  end

  command_deploy = "ipa distribute:testflight -a #{api_token} -T #{team_token} -m '#{notes}' -l #{distribution_list} --notify --verbose"

  system(command_deploy)

  puts 'deploy completed'

  self.info
  self.clean

end
info() click to toggle source
# File lib/kick.rb, line 28
def info
  command_info = "ipa info #{@base_name}.ipa"
  system(command_info)
end
update_mobileprovision() click to toggle source
# File lib/kick.rb, line 22
def update_mobileprovision
  developer_portal_team_id = @build_settings.developer_portal_team_id
  command_info = "ios profiles:download \"#{@provisioning_profile_in_developer_program_name}\" --team #{developer_portal_team_id}"
  system(command_info)
end