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