Class: XcodeUtil
- Inherits:
-
Object
- Object
- XcodeUtil
- Defined in:
- lib/JenkinsUtil/xcode_util.rb
Class Method Summary collapse
- .get_project_bundle_identifier(project_path, target_name, build_configuration_name) ⇒ Object
- .get_project_bundle_version(project_path, target_name, build_configuration_name) ⇒ Object
- .set_project_bundle_identifier(project_path, target_name, build_configuration_name, bundle_identifier) ⇒ Object
- .set_project_bundle_version(project_path, target_name, build_configuration_name, bundle_version) ⇒ Object
- .with_project_build_configuration(project_path, target_name, build_configuration_name) ⇒ Object
Instance Method Summary collapse
- #get_version ⇒ Object
-
#initialize ⇒ XcodeUtil
constructor
A new instance of XcodeUtil.
- #kill_ios_simulator ⇒ Object
Constructor Details
#initialize ⇒ XcodeUtil
Returns a new instance of XcodeUtil.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 7 def initialize @xcodebuild_version_major = nil @default_xcodebuild_path = '/usr/bin/xcodebuild' @ios_simulator_process_name = 'Simulator' #xcodebuild flags @xcodebuild_version_flag = '-version' unless File.exist?(@default_xcodebuild_path) LoggerUtil.log.fatal("xcodebuild not found: #{@default_xcodebuild_path}") abort end get_version end |
Class Method Details
.get_project_bundle_identifier(project_path, target_name, build_configuration_name) ⇒ Object
73 74 75 76 77 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 73 def self.get_project_bundle_identifier(project_path, target_name, build_configuration_name) self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration| return build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] end end |
.get_project_bundle_version(project_path, target_name, build_configuration_name) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 52 def self.get_project_bundle_version(project_path, target_name, build_configuration_name) self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration| infoplist_file = build_configuration.build_settings['INFOPLIST_FILE'] infoplist_path = File.join(File.dirname(project.path), infoplist_file) infoplist = Xcodeproj::Plist.read_from_path(infoplist_path) return infoplist['CFBundleVersion'] end end |
.set_project_bundle_identifier(project_path, target_name, build_configuration_name, bundle_identifier) ⇒ Object
79 80 81 82 83 84 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 79 def self.set_project_bundle_identifier(project_path, target_name, build_configuration_name, bundle_identifier) self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration| build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_identifier project.save() end end |
.set_project_bundle_version(project_path, target_name, build_configuration_name, bundle_version) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 62 def self.set_project_bundle_version(project_path, target_name, build_configuration_name, bundle_version) self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration| infoplist_file = build_configuration.build_settings['INFOPLIST_FILE'] infoplist_path = File.join(File.dirname(project.path), infoplist_file) infoplist = Xcodeproj::Plist.read_from_path(infoplist_path) infoplist['CFBundleVersion'] = bundle_version Xcodeproj::Plist.write_to_path(infoplist, infoplist_path) end end |
.with_project_build_configuration(project_path, target_name, build_configuration_name) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 34 def self.with_project_build_configuration(project_path, target_name, build_configuration_name) project = Xcodeproj::Project.open(project_path) targets = project.native_targets targets.each do |target| if target.name != target_name next end target.build_configuration_list.build_configurations.each do |build_configuration| if build_configuration.name != build_configuration_name next end yield project, build_configuration end end end |
Instance Method Details
#get_version ⇒ Object
28 29 30 31 32 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 28 def get_version xcode_process = CommandLineScript.new("#{@default_xcodebuild_path} #{@xcodebuild_version_flag}") @xcodebuild_version_major puts xcode_process.get_output end |
#kill_ios_simulator ⇒ Object
24 25 26 |
# File 'lib/JenkinsUtil/xcode_util.rb', line 24 def kill_ios_simulator ProcessUtil.kill_all_processes(@ios_simulator_process_name) end |