Class: FruityBuilder::IOS::BuildProperties
- Inherits:
-
Execution
- Object
- Execution
- FruityBuilder::IOS::BuildProperties
show all
- Defined in:
- lib/fruity_builder/build_properties.rb
Constant Summary
Constants inherited
from Execution
Execution::COMMAND_RETRIES, Execution::COMMAND_TIMEOUT
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Execution
execute, execute_with_timeout_and_retry
Constructor Details
Returns a new instance of BuildProperties.
10
11
12
|
# File 'lib/fruity_builder/build_properties.rb', line 10
def initialize(project_path)
@project = project_path
end
|
Instance Attribute Details
#project ⇒ Object
Returns the value of attribute project.
8
9
10
|
# File 'lib/fruity_builder/build_properties.rb', line 8
def project
@project
end
|
#properties ⇒ Object
Returns the value of attribute properties.
8
9
10
|
# File 'lib/fruity_builder/build_properties.rb', line 8
def properties
@properties
end
|
Class Method Details
.replace_project_data(options = {}) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
|
# 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
|
Instance Method Details
#get_code_signing_identities ⇒ Object
43
44
45
|
# 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 ⇒ Object
39
40
41
|
# File 'lib/fruity_builder/build_properties.rb', line 39
def get_dev_teams
@properties.scan(/.*DevelopmentTeam = (.*);.*/).uniq.flatten
end
|
#get_provisioning_profiles ⇒ Object
47
48
49
|
# File 'lib/fruity_builder/build_properties.rb', line 47
def get_provisioning_profiles
@properties.scan(/.*PROVISIONING_PROFILE = "(.*)";.*/).uniq.flatten
end
|
#open_project_properties ⇒ Object
14
15
16
|
# File 'lib/fruity_builder/build_properties.rb', line 14
def open_project_properties
@properties = File.read(@project)
end
|
#replace_bundle_id(new_bundle_id) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
|
# 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) ⇒ Object
55
56
57
|
# 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) ⇒ Object
51
52
53
|
# 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) ⇒ Object
59
60
61
|
# 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 ⇒ Object
23
24
25
|
# File 'lib/fruity_builder/build_properties.rb', line 23
def save_project_properties
File.write(@project, properties)
end
|