jenkinsutil 1.0.49 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3bf5fba8b81786a0b3bd9e1958ca1379bd2cad1b
4
- data.tar.gz: 1079a35c6c4ec12d870ec00b867f349649303967
3
+ metadata.gz: cc0b38fe9c80af260a2a8e7f139e7d190d961788
4
+ data.tar.gz: 038252b911e73ea0dfc4be722ba66374298641f4
5
5
  SHA512:
6
- metadata.gz: 240f5b2470541377da8956890baf81231cce15dc38df86e6a2072725b498d93c9ac6ca02393251559aa9a8a131c498e21bf0bc2830ca7ff676cfcc004fc27745
7
- data.tar.gz: 59e4b402f885f98784c7b43ff26daf56687f8d09e7059395068ed8295049d9ed5a7885f2f34e8859275f37d541f6c40dcb7229e9e0637f7f40ba119855ea70b5
6
+ metadata.gz: d02b30780a0427c6fda5c34322864a17a6434ae3a9dd67d7656bfe5579efdde1b0f910a1079cf8694b2ebc723765d9f300c7842dd9b5f5d0ab8e4c9a1d4d2878
7
+ data.tar.gz: 9739239a0bbc7b9d05a94d95f75f6ed04988fcc0ef3c3122ff83bd21cf08b32292af5339f17842e4123724784da0503b7c1f2c10f78621ce24c602778868075a
data/.rubocop_todo.yml CHANGED
@@ -11,11 +11,9 @@ Metrics/LineLength:
11
11
 
12
12
  AllCops:
13
13
  Exclude:
14
- - '/**/JenkinsUtil.rb'
15
- - '/**/xcode_util.rb'
16
- - '/**/command_line_script.rb'
17
14
  - '**/bin/**/*'
18
15
  - '**/exe/**/*'
16
+ - 'JenkinsUtil.gemspec'
19
17
 
20
18
  Documentation:
21
19
  Enabled: false
data/JenkinsUtil.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'JenkinsUtil/version'
4
+ require 'jenkins_util/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'jenkinsutil'
@@ -33,5 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency 'ci_reporter_test_unit', '~> 1.0'
34
34
  spec.add_development_dependency 'simplecov', '~> 0.11'
35
35
  spec.add_development_dependency 'simplecov-cobertura', '~> 1.1'
36
- spec.add_development_dependency 'rubocop', '~> 0.39'
36
+ spec.add_development_dependency 'rubocop', '~> 0.45'
37
37
  end
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "JenkinsUtil"
3
+ require 'bundler/setup'
4
+ require 'jenkins_util'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "JenkinsUtil"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
data/exe/jenkinsutil CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'JenkinsUtil'
3
+ require 'jenkins_util'
4
4
 
5
5
  JenkinsUtil
@@ -0,0 +1,62 @@
1
+ require 'jenkins_util/version'
2
+ require 'jenkins_util/command_line_script'
3
+ require 'jenkins_util/keychain_util'
4
+ require 'jenkins_util/simulator_util'
5
+ require 'jenkins_util/xcode_util'
6
+ require 'jenkins_util/argument_handler'
7
+ require 'jenkins_util/logger_util'
8
+ require 'jenkins_util/process_util'
9
+ require 'jenkins_util/dropbox_util'
10
+ require 'jenkins_util/zip_util'
11
+
12
+ module JenkinsUtil
13
+ include LoggerUtil
14
+
15
+ args = ArgumentHandler.new
16
+
17
+ LoggerUtil.verbose?(args.verbose)
18
+
19
+ # KeychainUtil
20
+ unless args.keychain.nil? && args.keychain_password.nil?
21
+ KeychainUtil.unlock_keychain(args.keychain, args.keychain_password, args.code_signing_identities)
22
+ end
23
+
24
+ # DropboxUtil
25
+ unless args.dropbox_sources.nil? || args.dropbox_sources.empty? || args.dropbox_destination.nil?
26
+ DropboxUtil.upload(args.dropbox_sources, args.dropbox_destination, args.dropbox_flatten, args.dropbox_root)
27
+ end
28
+
29
+ # XcodeUtil
30
+ SimulatorUtil.reset_all_simulators if args.kill_simulators
31
+
32
+ if !args.xcode_project_path.nil? && !args.xcode_target.nil? && !args.xcode_build_configuration.nil?
33
+ unless args.xcode_bundle_identifier.nil?
34
+ XcodeUtil.set_project_bundle_identifier(args.xcode_project_path,
35
+ args.xcode_target,
36
+ args.xcode_build_configuration,
37
+ args.xcode_bundle_identifier)
38
+ end
39
+
40
+ unless args.xcode_bundle_version.nil?
41
+ XcodeUtil.set_project_bundle_version(args.xcode_project_path,
42
+ args.xcode_target,
43
+ args.xcode_build_configuration,
44
+ args.xcode_bundle_version)
45
+ end
46
+ end
47
+
48
+ # Not using LoggerUtil so there is no time stamp
49
+ puts XcodeUtil.team_id_from_plist(args.xcode_export_plist) if !args.xcode_export_plist.nil? && !args.xcode_team_id.nil?
50
+
51
+ if !args.xcode_project_path.nil? && !args.xcode_set_manual_provisioning_style.nil?
52
+ XcodeUtil.set_project_provisioning_style(args.xcode_project_path, !args.xcode_set_manual_provisioning_style)
53
+ end
54
+
55
+ if (!args.zip_sources.empty? || !args.zip_archive.nil?) && !args.zip_destination.nil?
56
+ ZipUtil.compress(*args.zip_sources, args.zip_destination) unless args.zip_sources.empty?
57
+ ZipUtil.uncompress(args.zip_archive, args.zip_destination) unless args.zip_archive.nil?
58
+ end
59
+
60
+ # Version
61
+ LoggerUtil.log.info(VERSION) if args.version
62
+ end
@@ -53,8 +53,9 @@ class ArgumentHandler
53
53
 
54
54
  ARGV.push('-h') if ARGV.empty?
55
55
 
56
+ # rubocop:disable Metrics/BlockLength
56
57
  parser = OptionParser.new do |opts|
57
- opts.banner = 'Usage: JenkinsUtil'
58
+ opts.banner = 'Usage: jenkins_util'
58
59
 
59
60
  # keychain_util
60
61
  opts.on('-k', '--keychain [KEYCHAIN_PATH]', 'Path to Keychain to be unlocked') do |keychain|
@@ -1,5 +1,5 @@
1
1
  require 'open4'
2
- require 'JenkinsUtil/logger_util'
2
+ require 'jenkins_util/logger_util'
3
3
 
4
4
  class CommandLineScript
5
5
  include LoggerUtil
@@ -10,7 +10,7 @@ class CommandLineScript
10
10
  @command = command
11
11
 
12
12
  LoggerUtil.log.debug("Executing: \"#{@command}\"")
13
- status = Open4::popen4(@command) do |pid, stdin, stdout, stderr|
13
+ status = Open4.popen4(@command) do |pid, stdin, stdout, stderr|
14
14
  @pid = pid
15
15
  @stdin = stdin
16
16
  @stdout = stdout.readlines
@@ -1,6 +1,6 @@
1
1
  require 'dropbox_sdk'
2
- require 'JenkinsUtil/logger_util'
3
- require 'JenkinsUtil/version'
2
+ require 'jenkins_util/logger_util'
3
+ require 'jenkins_util/version'
4
4
  require 'pathname'
5
5
 
6
6
  module DropboxUtil
@@ -1,5 +1,5 @@
1
- require 'JenkinsUtil/command_line_script'
2
- require 'JenkinsUtil/logger_util'
1
+ require 'jenkins_util/command_line_script'
2
+ require 'jenkins_util/logger_util'
3
3
 
4
4
  module KeychainUtil
5
5
  include LoggerUtil
File without changes
@@ -1,5 +1,5 @@
1
1
  require 'sys/proctable'
2
- require 'JenkinsUtil/logger_util'
2
+ require 'jenkins_util/logger_util'
3
3
 
4
4
  module ProcessUtil
5
5
  include Sys
@@ -1,9 +1,9 @@
1
- require 'JenkinsUtil/process_util'
2
- require 'JenkinsUtil/command_line_script'
3
- require 'JenkinsUtil/logger_util'
1
+ require 'jenkins_util/process_util'
2
+ require 'jenkins_util/command_line_script'
3
+ require 'jenkins_util/logger_util'
4
4
  require 'json'
5
5
 
6
- class SimulatorError < Exception
6
+ class SimulatorError
7
7
  attr_reader :code, :message, :udid
8
8
 
9
9
  def initialize(code, message, udid)
@@ -62,25 +62,23 @@ class SimulatorUtil
62
62
  def self.boot_device(udid)
63
63
  process = CommandLineScript.new("xcrun simctl boot #{udid}")
64
64
 
65
- if process.exit_status != 0 && process.exit_status != DEVICE_STATE_INVALID
66
- raise SimulatorError.new(process.exit_status, 'Could not boot up device', udid)
67
- end
65
+ LoggerUtil.fatal("Could not boot up device: #{udid}") if process.exit_status.nonzero? &&
66
+ process.exit_status != DEVICE_STATE_INVALID
68
67
  end
69
68
 
70
69
  def self.shutdown_device(udid)
71
70
  process = CommandLineScript.new("xcrun simctl shutdown #{udid}")
72
71
 
73
- if process.exit_status != 0 && process.exit_status != DEVICE_STATE_INVALID && process.exit_status != DEVICE_ALREADY_SHUTDOWN
74
- raise SimulatorError.new(process.exit_status, 'Could not shutdown device', udid)
75
- end
72
+ LoggerUtil.fatal("Could not shutdown device: #{udid}") if process.exit_status.nonzero? &&
73
+ process.exit_status != DEVICE_STATE_INVALID &&
74
+ process.exit_status != DEVICE_ALREADY_SHUTDOWN
76
75
  end
77
76
 
78
77
  def self.reset_device(udid)
79
78
  process = CommandLineScript.new("xcrun simctl erase #{udid}")
80
79
 
81
- if process.exit_status != 0 && process.exit_status != DEVICE_STATE_INVALID
82
- raise SimulatorError.new(process.exit_status, 'Could not reset device', udid)
83
- end
80
+ LoggerUtil.fatal("Could not reset device: #{udid}") if process.exit_status.nonzero? &&
81
+ process.exit_status != DEVICE_STATE_INVALID
84
82
  end
85
83
 
86
84
  def self.reset_all_simulators
File without changes
@@ -0,0 +1,99 @@
1
+ require 'jenkins_util/process_util'
2
+ require 'jenkins_util/command_line_script'
3
+ require 'jenkins_util/logger_util'
4
+ require 'xcodeproj'
5
+ require 'plist'
6
+
7
+ class XcodeUtil
8
+ def initialize
9
+ @xcodebuild_version_major = nil
10
+
11
+ @default_xcodebuild_path = '/usr/bin/xcodebuild'
12
+ @ios_simulator_process_name = 'Simulator'
13
+
14
+ # xcodebuild flags
15
+ @xcodebuild_version_flag = '-version'
16
+
17
+ unless File.exist?(@default_xcodebuild_path)
18
+ LoggerUtil.fatal("xcodebuild not found: #{@default_xcodebuild_path}")
19
+ abort
20
+ end
21
+
22
+ version
23
+ end
24
+
25
+ def kill_ios_simulator
26
+ ProcessUtil.kill_all_processes(@ios_simulator_process_name)
27
+ end
28
+
29
+ def version
30
+ xcode_process = CommandLineScript.new("#{@default_xcodebuild_path} #{@xcodebuild_version_flag}")
31
+ puts xcode_process.get_output
32
+ end
33
+
34
+ def self.with_project_build_configuration(project_path, target_name, build_configuration_name)
35
+ project = Xcodeproj::Project.open(project_path)
36
+ targets = project.native_targets
37
+ targets.each do |target|
38
+ next if target.name != target_name
39
+
40
+ target.build_configuration_list.build_configurations.each do |build_configuration|
41
+ next if build_configuration.name != build_configuration_name
42
+
43
+ yield project, build_configuration
44
+ end
45
+ end
46
+ end
47
+
48
+ def self.project_bundle_version(project_path, target_name, build_configuration_name, bundle_version = nil)
49
+ with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
50
+ infoplist_file = build_configuration.build_settings['INFOPLIST_FILE']
51
+ infoplist_path = File.join(File.dirname(project.path), infoplist_file)
52
+
53
+ infoplist = Xcodeproj::Plist.read_from_path(infoplist_path)
54
+ return infoplist['CFBundleVersion'] if bundle_version.nil?
55
+
56
+ infoplist['CFBundleVersion'] = bundle_version
57
+ Xcodeproj::Plist.write_to_path(infoplist, infoplist_path)
58
+ end
59
+ end
60
+
61
+ def self.project_bundle_identifier(project_path, target_name, build_configuration_name, bundle_identifier = nil)
62
+ with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
63
+ return build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] if bundle_identifier.nil?
64
+
65
+ build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_identifier
66
+ project.save
67
+ end
68
+ end
69
+
70
+ def self.project_provisioning_style(project_path, is_automatic = nil)
71
+ project = Xcodeproj::Project.open(project_path)
72
+
73
+ project.root_object.attributes['TargetAttributes'].values.each do |target_value|
74
+ target_value.each do |attribute_key, attribute_value|
75
+ if is_automatic.nil?
76
+ return attribute_value if attribute_key == 'ProvisioningStyle'
77
+ else
78
+ next unless attribute_key == 'ProvisioningStyle'
79
+ target_value[attribute_key] = if is_automatic == true
80
+ 'Automatic'
81
+ else
82
+ 'Manual'
83
+ end
84
+ return project.save
85
+ end
86
+ end
87
+ end
88
+
89
+ LoggerUtil.fatal("'ProvisioningStyle' key not found, please check and uncheck automatic signing")
90
+ end
91
+
92
+ def self.team_id_from_plist(plist_file)
93
+ plist_path = File.expand_path(plist_file)
94
+ plist = Plist.parse_xml(plist_path)
95
+ LoggerUtil.fatal("teamID not found in #{plist_file}") if plist.nil? || !plist.key?('teamID')
96
+
97
+ plist['teamID']
98
+ end
99
+ end
@@ -1,8 +1,8 @@
1
- require 'JenkinsUtil/command_line_script'
2
- require 'JenkinsUtil/logger_util'
1
+ require 'jenkins_util/command_line_script'
2
+ require 'jenkins_util/logger_util'
3
3
  require 'zip'
4
4
 
5
- class ZipError < Exception
5
+ class ZipError < RuntimeError
6
6
  attr_reader :code, :message
7
7
 
8
8
  def initialize(code, message)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkinsutil
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.49
4
+ version: 1.0.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett McGinnis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-03 00:00:00.000000000 Z
11
+ date: 2016-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open4
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '0.39'
201
+ version: '0.45'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '0.39'
208
+ version: '0.45'
209
209
  description:
210
210
  email:
211
211
  - Brett@L4Digital.com
@@ -228,17 +228,17 @@ files:
228
228
  - bin/console
229
229
  - bin/setup
230
230
  - exe/jenkinsutil
231
- - lib/JenkinsUtil.rb
232
- - lib/JenkinsUtil/argument_handler.rb
233
- - lib/JenkinsUtil/command_line_script.rb
234
- - lib/JenkinsUtil/dropbox_util.rb
235
- - lib/JenkinsUtil/keychain_util.rb
236
- - lib/JenkinsUtil/logger_util.rb
237
- - lib/JenkinsUtil/process_util.rb
238
- - lib/JenkinsUtil/simulator_util.rb
239
- - lib/JenkinsUtil/version.rb
240
- - lib/JenkinsUtil/xcode_util.rb
241
- - lib/JenkinsUtil/zip_util.rb
231
+ - lib/jenkins_util.rb
232
+ - lib/jenkins_util/argument_handler.rb
233
+ - lib/jenkins_util/command_line_script.rb
234
+ - lib/jenkins_util/dropbox_util.rb
235
+ - lib/jenkins_util/keychain_util.rb
236
+ - lib/jenkins_util/logger_util.rb
237
+ - lib/jenkins_util/process_util.rb
238
+ - lib/jenkins_util/simulator_util.rb
239
+ - lib/jenkins_util/version.rb
240
+ - lib/jenkins_util/xcode_util.rb
241
+ - lib/jenkins_util/zip_util.rb
242
242
  homepage: http://www.l4digital.com/
243
243
  licenses:
244
244
  - MIT
data/lib/JenkinsUtil.rb DELETED
@@ -1,61 +0,0 @@
1
- require 'JenkinsUtil/version'
2
- require 'JenkinsUtil/command_line_script'
3
- require 'JenkinsUtil/keychain_util'
4
- require 'JenkinsUtil/simulator_util'
5
- require 'JenkinsUtil/xcode_util'
6
- require 'JenkinsUtil/argument_handler'
7
- require 'JenkinsUtil/logger_util'
8
- require 'JenkinsUtil/process_util'
9
- require 'JenkinsUtil/dropbox_util'
10
- require 'JenkinsUtil/zip_util'
11
-
12
- module JenkinsUtil
13
- include LoggerUtil
14
-
15
- args = ArgumentHandler.new
16
-
17
- LoggerUtil.verbose?(args.verbose)
18
-
19
- # KeychainUtil
20
- unless args.keychain.nil? && args.keychain_password.nil?
21
- KeychainUtil.unlock_keychain(args.keychain, args.keychain_password, args.code_signing_identities)
22
- end
23
-
24
- # DropboxUtil
25
- unless args.dropbox_sources.nil? || args.dropbox_sources.empty? || args.dropbox_destination.nil?
26
- DropboxUtil.upload(args.dropbox_sources, args.dropbox_destination, args.dropbox_flatten, args.dropbox_root)
27
- end
28
-
29
- # XcodeUtil
30
- if args.kill_simulators
31
- SimulatorUtil.reset_all_simulators
32
- end
33
-
34
- if !args.xcode_project_path.nil? && !args.xcode_target.nil? && !args.xcode_build_configuration.nil?
35
- if !args.xcode_bundle_identifier.nil?
36
- XcodeUtil.set_project_bundle_identifier(args.xcode_project_path, args.xcode_target, args.xcode_build_configuration, args.xcode_bundle_identifier)
37
- end
38
-
39
- if !args.xcode_bundle_version.nil?
40
- XcodeUtil.set_project_bundle_version(args.xcode_project_path, args.xcode_target, args.xcode_build_configuration, args.xcode_bundle_version)
41
- end
42
- end
43
-
44
- # Not using LoggerUtil so there is no time stamp
45
- puts XcodeUtil.team_id_from_plist(args.xcode_export_plist) if !args.xcode_export_plist.nil? && !args.xcode_team_id.nil?
46
-
47
- XcodeUtil.set_project_provisioning_style(args.xcode_project_path, !args.xcode_set_manual_provisioning_style) if !args.xcode_project_path.nil? && !args.xcode_set_manual_provisioning_style.nil?
48
-
49
- if (!args.zip_sources.empty? || !args.zip_archive.nil?) && !args.zip_destination.nil?
50
- if !args.zip_sources.empty?
51
- ZipUtil.compress(*args.zip_sources, args.zip_destination)
52
- end
53
-
54
- if !args.zip_archive.nil?
55
- ZipUtil.uncompress(args.zip_archive, args.zip_destination)
56
- end
57
- end
58
-
59
- # Version
60
- LoggerUtil.log.info(VERSION) if args.version
61
- end
@@ -1,129 +0,0 @@
1
- require 'JenkinsUtil/process_util'
2
- require 'JenkinsUtil/command_line_script'
3
- require 'JenkinsUtil/logger_util'
4
- require 'xcodeproj'
5
- require 'plist'
6
-
7
- class XcodeUtil
8
- def initialize
9
- @xcodebuild_version_major = nil
10
-
11
- @default_xcodebuild_path = '/usr/bin/xcodebuild'
12
- @ios_simulator_process_name = 'Simulator'
13
-
14
- #xcodebuild flags
15
- @xcodebuild_version_flag = '-version'
16
-
17
- unless File.exist?(@default_xcodebuild_path)
18
- LoggerUtil.fatal("xcodebuild not found: #{@default_xcodebuild_path}")
19
- abort
20
- end
21
-
22
- get_version
23
- end
24
-
25
- def kill_ios_simulator
26
- ProcessUtil.kill_all_processes(@ios_simulator_process_name)
27
- end
28
-
29
- def get_version
30
- xcode_process = CommandLineScript.new("#{@default_xcodebuild_path} #{@xcodebuild_version_flag}")
31
- @xcodebuild_version_major
32
- puts xcode_process.get_output
33
- end
34
-
35
- def self.with_project_build_configuration(project_path, target_name, build_configuration_name)
36
- project = Xcodeproj::Project.open(project_path)
37
- targets = project.native_targets
38
- targets.each do |target|
39
- if target.name != target_name
40
- next
41
- end
42
-
43
- target.build_configuration_list.build_configurations.each do |build_configuration|
44
- if build_configuration.name != build_configuration_name
45
- next
46
- end
47
-
48
- yield project, build_configuration
49
- end
50
- end
51
- end
52
-
53
- def self.get_project_bundle_version(project_path, target_name, build_configuration_name)
54
- self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
55
- infoplist_file = build_configuration.build_settings['INFOPLIST_FILE']
56
- infoplist_path = File.join(File.dirname(project.path), infoplist_file)
57
-
58
- infoplist = Xcodeproj::Plist.read_from_path(infoplist_path)
59
- return infoplist['CFBundleVersion']
60
- end
61
- end
62
-
63
- def self.set_project_bundle_version(project_path, target_name, build_configuration_name, bundle_version)
64
- self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
65
- infoplist_file = build_configuration.build_settings['INFOPLIST_FILE']
66
- infoplist_path = File.join(File.dirname(project.path), infoplist_file)
67
-
68
- infoplist = Xcodeproj::Plist.read_from_path(infoplist_path)
69
- infoplist['CFBundleVersion'] = bundle_version
70
- Xcodeproj::Plist.write_to_path(infoplist, infoplist_path)
71
- end
72
- end
73
-
74
- def self.get_project_bundle_identifier(project_path, target_name, build_configuration_name)
75
- self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
76
- return build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER']
77
- end
78
- end
79
-
80
- def self.set_project_bundle_identifier(project_path, target_name, build_configuration_name, bundle_identifier)
81
- self.with_project_build_configuration(project_path, target_name, build_configuration_name) do |project, build_configuration|
82
- build_configuration.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = bundle_identifier
83
- project.save
84
- end
85
- end
86
-
87
- def self.get_project_provisioning_style(project_path)
88
- project = Xcodeproj::Project.open(project_path)
89
-
90
- project.root_object.attributes['TargetAttributes'].values.each do |target_value|
91
- target_value.each do |attribute_key, attribute_value|
92
- if attribute_key == 'ProvisioningStyle'
93
- return attribute_value
94
- end
95
- end
96
- end
97
-
98
- LoggerUtil.fatal("'ProvisioningStyle' key not found, please check and uncheck automatic signing")
99
- end
100
-
101
- def self.set_project_provisioning_style(project_path, is_automatic)
102
- project = Xcodeproj::Project.open(project_path)
103
-
104
- project.root_object.attributes['TargetAttributes'].values.each do |target_value|
105
- target_value.keys.each do |attribute_key|
106
- if attribute_key == 'ProvisioningStyle'
107
- if is_automatic == true
108
- target_value[attribute_key] = 'Automatic'
109
- else
110
- target_value[attribute_key] = 'Manual'
111
- end
112
-
113
- project.save
114
- return
115
- end
116
- end
117
- end
118
-
119
- LoggerUtil.fatal("'ProvisioningStyle' key not found, please check and uncheck automatic signing")
120
- end
121
-
122
- def self.team_id_from_plist(plist_file)
123
- plist_path = File.expand_path(plist_file)
124
- plist = Plist::parse_xml(plist_path)
125
- LoggerUtil.fatal("teamID not found in #{plist_file}") if plist.nil? || !plist.key?('teamID')
126
-
127
- return plist['teamID']
128
- end
129
- end