class FruityBuilder::IOS::BuildProperties
Attributes
project[RW]
properties[RW]
Public Class Methods
new(project_path)
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 10 def initialize(project_path) @project = project_path end
replace_project_data(options = {})
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 63 def self.replace_project_data(options = {}) regex = Regexp.new(options[:regex]) replacements = options[:data].scan(regex).uniq.flatten result = options[:data] replacements.each do |to_replace| result = result.gsub(to_replace, options[:new_value]) end result end
Public Instance Methods
get_code_signing_identities()
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 43 def get_code_signing_identities @properties.scan(/.*CODE_SIGN_IDENTITY.*= "(.*)";.*/).uniq.flatten end
get_dev_teams()
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 39 def get_dev_teams @properties.scan(/.*DevelopmentTeam = (.*);.*/).uniq.flatten end
get_provisioning_profiles()
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 47 def get_provisioning_profiles @properties.scan(/.*PROVISIONING_PROFILE = "(.*)";.*/).uniq.flatten end
open_project_properties()
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 14 def open_project_properties @properties = File.read(@project) end
replace_bundle_id(new_bundle_id)
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 27 def replace_bundle_id(new_bundle_id) path = Pathname.new(File.dirname(@project) + '/../').realdirpath.to_s xcode = FruityBuilder::IOS::XCodeBuild.new(File.dirname(@project)) targets = xcode.get_targets project_files = Dir["#{path}/**/Info.plist"] files = project_files.select { |project| targets.any? { |target| project.include?("#{target}/Info.plist") } } files.each do |file| FruityBuilder::IOS::Plistutil.replace_bundle_id(new_id: new_bundle_id, file: file) end end
replace_code_sign_identity(new_identity)
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 55 def replace_code_sign_identity(new_identity) @properties = self.class.replace_project_data(regex: '.*CODE_SIGN_IDENTITY.*= "(.*)";.*', data: properties, new_value: new_identity) end
replace_dev_team(new_dev_team)
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 51 def replace_dev_team(new_dev_team) @properties = self.class.replace_project_data(regex: '.*DevelopmentTeam = (.*);.*', data: properties, new_value: new_dev_team) end
replace_provisioning_profile(new_profile)
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 59 def replace_provisioning_profile(new_profile) @properties = self.class.replace_project_data(regex: '.*PROVISIONING_PROFILE = "(.*)";.*', data: properties, new_value: new_profile) end
save_project_properties()
click to toggle source
# File lib/fruity_builder/build_properties.rb, line 23 def save_project_properties File.write(@project, properties) end