jenkinsutil 1.0.49 → 1.0.50

Sign up to get free protection for your applications and to get access to all the features.
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