class XCJobs::Certificate
Attributes
keychain_name[RW]
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/xcjobs/certificate.rb, line 9 def initialize() @certificates = {} @profiles = [] yield self if block_given? define end
Public Instance Methods
add_certificate(certificate, passphrase='')
click to toggle source
# File lib/xcjobs/certificate.rb, line 24 def add_certificate(certificate, passphrase='') @certificates[certificate] = passphrase end
add_profile(profile)
click to toggle source
# File lib/xcjobs/certificate.rb, line 28 def add_profile(profile) @profiles << profile end
profile_dir()
click to toggle source
# File lib/xcjobs/certificate.rb, line 20 def profile_dir @profile_dir || '$HOME/Library/MobileDevice/Provisioning Profiles' end
Private Instance Methods
define()
click to toggle source
# File lib/xcjobs/certificate.rb, line 34 def define namespace :certificates do desc 'install certificates' task :install do sh %[security create-keychain -p "" "#{keychain_name}"] @certificates.each do |certificate, passphrase| puts %[security import "#{certificate}" -k #{keychain_name} -P "********" -T /usr/bin/codesign] out, status = Open3.capture2(*(['security', 'import', "#{certificate}", '-k', "#{keychain_name}", '-P', "#{passphrase}", '-T', '/usr/bin/codesign'])) if !status.success? fail'failed to import keychain' end end sh %[security default-keychain -s "#{keychain_name}"] end desc 'remove certificates' task :remove do sh %[security delete-keychain #{keychain_name}] end end namespace :profiles do desc 'install provisioning profiles' task :install do sh %[mkdir -p "#{profile_dir}"] @profiles.each do |profile| sh %[cp "#{profile}" "#{profile_dir}"] end end end end