fastlane 1.6.0 → 1.7.0

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: 4a6348cd520e241c0337e726cae85210f734da84
4
- data.tar.gz: 2f84fa7a0f395fb821e1e5ab0fdd93bb8cdf7248
3
+ metadata.gz: 521097e544587a1185b8ac7e3d9d3a990e35120f
4
+ data.tar.gz: 9c467b742ddd690a9ee6d9e803bfbea5c7cb03bf
5
5
  SHA512:
6
- metadata.gz: 28f749779517ca85049ca5580333dfd9ac11ff65fe44de9b618135e2dc509901d96266063d0d54c0af6b72b48f414bad22f3ad17ae42fee7b5fcac472d59a9df
7
- data.tar.gz: dfb4a8e145880c16c452a8732c956925910b2b8b6aad2ccc6264c1660e69e56904177d337ac68765f1591fa9bcd4eaef889c82bfc6cfe806931dece8502266af
6
+ metadata.gz: d9ce43c580294d971c8209c157400d2e6883bcb3aef334b5e7aea46ed3fa7f66b7e47c8cb554f0a4dd956d68173d7093744223d91874f129731ab3d14ea3d2f6
7
+ data.tar.gz: 4f35fd111ac94e48051922a7da6e6fd4ebe69a6e36a6f46ef3ca6f8aa4359cf963871a30139fdd1863c4d98c9a2b34cb921c85decab80d6be6bbfa80c4db521e
data/README.md CHANGED
@@ -116,6 +116,8 @@ The setup assistant will create all the necessary files for you, using the exist
116
116
 
117
117
  For more details, please follow the [fastlane guide](https://github.com/KrauseFx/fastlane/blob/master/docs/Guide.md) or [documentation](https://github.com/KrauseFx/fastlane/blob/master/docs).
118
118
 
119
+ There is also a [Japanese fastlane guide](http://qiita.com/gin0606/items/162d756dfda7b84e97d4) available.
120
+
119
121
  ## Available commands
120
122
 
121
123
  Usually you'll use fastlane by triggering individual lanes:
@@ -68,18 +68,18 @@ module Fastlane
68
68
 
69
69
  # Execute a shell command
70
70
  # This method will output the string and execute it
71
- def self.sh(command)
72
- sh_no_action(command)
71
+ def self.sh(command, log: true)
72
+ sh_no_action(command, log: log)
73
73
  end
74
74
 
75
- def self.sh_no_action(command)
75
+ def self.sh_no_action(command, log: true)
76
76
  # Set the encoding first, the user might have set it wrong
77
77
  previous_encoding = [Encoding.default_external, Encoding.default_internal]
78
78
  Encoding.default_external = Encoding::UTF_8
79
79
  Encoding.default_internal = Encoding::UTF_8
80
80
 
81
81
  command = command.join(' ') if command.is_a?(Array) # since it's an array of one element when running from the Fastfile
82
- Helper.log.info ['[SHELL COMMAND]', command.yellow].join(': ')
82
+ Helper.log.info ['[SHELL COMMAND]', command.yellow].join(': ') if log
83
83
 
84
84
  result = ''
85
85
  unless Helper.test?
@@ -0,0 +1,43 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class AppstoreAction < Action
7
+ def self.run(params)
8
+ values = params.values
9
+ values[:beta] = false # always false for App Store
10
+ real_options = FastlaneCore::Configuration.create(Actions::DeliverAction.available_options, values)
11
+ return real_options if Helper.is_test?
12
+
13
+ Actions::DeliverAction.run(real_options)
14
+ end
15
+
16
+ #####################################################
17
+ # @!group Documentation
18
+ #####################################################
19
+
20
+ def self.description
21
+ "Upload new metadata to iTunes Connect and optionally a new binary"
22
+ end
23
+
24
+ def self.available_options
25
+ options = DeliverAction.available_options
26
+ options.delete_if { |i| i.key == :beta } # we don't want to have beta values here
27
+ return options
28
+ end
29
+
30
+ def self.output
31
+ []
32
+ end
33
+
34
+ def self.author
35
+ 'KrauseFx'
36
+ end
37
+
38
+ def self.is_supported?(platform)
39
+ Actions::DeliverAction.is_supported?platform
40
+ end
41
+ end
42
+ end
43
+ end
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class BackupFileAction < Action
4
4
  def self.run params
5
5
  path = params[:path]
6
- FileUtils.cp(path, "#{path}.back", {:preserve => true})
6
+ FileUtils.cp(path, "#{path}.back", {preserve: true})
7
7
  Helper.log.info "Successfully created a backup 💾"
8
8
  end
9
9
 
@@ -51,7 +51,7 @@ module Fastlane
51
51
  [
52
52
  FastlaneCore::ConfigItem.new(key: :crashlytics_path,
53
53
  env_name: "CRASHLYTICS_FRAMEWORK_PATH",
54
- description: "Path to your Crashlytics bundle",
54
+ description: "Path to the submit binary in the Crashlytics bundle",
55
55
  verify_block: Proc.new do |value|
56
56
  raise "No Crashlytics path given or found, pass using `crashlytics_path: 'path'`".red unless File.exists?(value)
57
57
  end),
@@ -0,0 +1,72 @@
1
+ require 'shellwords'
2
+
3
+ module Fastlane
4
+ module Actions
5
+ class CreateKeychainAction < Action
6
+ def self.run(params)
7
+ escaped_name = params[:name].shellescape
8
+ escaped_password = params[:password].shellescape
9
+
10
+ commands = []
11
+ commands << Fastlane::Actions.sh("security create-keychain -p #{escaped_password} #{escaped_name}", log:false)
12
+
13
+ commands << Fastlane::Actions.sh("security default-keychain -s #{escaped_name}", log:false) if params[:default_keychain]
14
+ commands << Fastlane::Actions.sh("security unlock-keychain -p #{escaped_password} #{escaped_name}", log:false) if params[:unlock]
15
+
16
+ command = "security set-keychain-settings"
17
+ command << " -t #{params[:timeout]}" if params[:timeout]
18
+ command << " -l" if params[:lock_when_sleeps]
19
+ command << " -u" if params[:lock_after_timeout]
20
+ command << " ~/Library/Keychains/#{escaped_name}"
21
+
22
+ commands << Fastlane::Actions.sh(command, log:false)
23
+ commands
24
+ end
25
+
26
+ def self.description
27
+ "Create a new Keychain"
28
+ end
29
+
30
+ def self.available_options
31
+ [
32
+ FastlaneCore::ConfigItem.new(key: :name,
33
+ env_name: "KEYCHAIN_NAME",
34
+ description: "Keychain name",
35
+ optional: false),
36
+ FastlaneCore::ConfigItem.new(key: :password,
37
+ env_name: "KEYCHAIN_PASSWORD",
38
+ description: "Password for the keychain",
39
+ optional: false),
40
+ FastlaneCore::ConfigItem.new(key: :default_keychain,
41
+ description: 'Set the default keychain',
42
+ is_string: false,
43
+ default_value: false),
44
+ FastlaneCore::ConfigItem.new(key: :unlock,
45
+ description: 'Unlock keychain after create',
46
+ is_string: false,
47
+ default_value: false),
48
+ FastlaneCore::ConfigItem.new(key: :timeout,
49
+ description: 'timeout interval in seconds. Set `false` if you want to specify "no time-out"',
50
+ is_string: false,
51
+ default_value: 300),
52
+ FastlaneCore::ConfigItem.new(key: :lock_when_sleeps,
53
+ description: 'Lock keychain when the system sleeps',
54
+ is_string: false,
55
+ default_value: false),
56
+ FastlaneCore::ConfigItem.new(key: :lock_after_timeout,
57
+ description: 'Lock keychain after timeout interval',
58
+ is_string: false,
59
+ default_value: false),
60
+ ]
61
+ end
62
+
63
+ def self.authors
64
+ ["gin0606"]
65
+ end
66
+
67
+ def self.is_supported?(platform)
68
+ true
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,32 @@
1
+ require 'shellwords'
2
+
3
+ module Fastlane
4
+ module Actions
5
+ class DeleteKeychainAction < Action
6
+ def self.run(params)
7
+ Fastlane::Actions.sh "security delete-keychain #{params[:name].shellescape}", log:false
8
+ end
9
+
10
+ def self.description
11
+ "Delete keychains and remove them from the search list"
12
+ end
13
+
14
+ def self.available_options
15
+ [
16
+ FastlaneCore::ConfigItem.new(key: :name,
17
+ env_name: "KEYCHAIN_NAME",
18
+ description: "Keychain name",
19
+ optional: false),
20
+ ]
21
+ end
22
+
23
+ def self.authors
24
+ ["gin0606"]
25
+ end
26
+
27
+ def self.is_supported?(platform)
28
+ true
29
+ end
30
+ end
31
+ end
32
+ end
@@ -12,6 +12,8 @@ module Fastlane
12
12
  api_version = options[:version]
13
13
  api_host = options[:api_host]
14
14
 
15
+ notify_room = (options[:notify_room] ? '1' : '0')
16
+
15
17
  channel = options[:channel]
16
18
  color = (options[:success] ? 'green' : 'red')
17
19
 
@@ -29,7 +31,8 @@ module Fastlane
29
31
  'color' => color,
30
32
  'message_format' => 'html',
31
33
  'room_id' => channel,
32
- 'message' => message })
34
+ 'message' => message,
35
+ 'notify' => notify_room })
33
36
 
34
37
  check_response_code(response, channel)
35
38
  end
@@ -53,7 +56,8 @@ module Fastlane
53
56
  'auth_token' => api_token,
54
57
  'color' => color,
55
58
  'message_format' => 'html',
56
- 'message' => message })
59
+ 'message' => message,
60
+ 'notify' => notify_room })
57
61
 
58
62
  check_response_code(response, channel)
59
63
  end
@@ -114,6 +118,12 @@ module Fastlane
114
118
  raise 'No HIPCHAT_API_VERSION given.'.red
115
119
  end
116
120
  end),
121
+ FastlaneCore::ConfigItem.new(key: :notify_room,
122
+ env_name: "HIPCHAT_NOTIFY_ROOM",
123
+ description: "Should the people in the room be notified? (true/false)",
124
+ default_value: false,
125
+ optional: true,
126
+ is_string: false),
117
127
  FastlaneCore::ConfigItem.new(key: :api_host,
118
128
  env_name: "HIPCHAT_API_HOST",
119
129
  description: "The host of the HipChat-Server API",
@@ -0,0 +1,44 @@
1
+ require 'shellwords'
2
+
3
+ module Fastlane
4
+ module Actions
5
+ class ImportCertificateAction < Action
6
+ def self.run(params)
7
+ command = "security import #{params[:certificate_path].shellescape} -k ~/Library/Keychains/#{params[:keychain_name].shellescape}"
8
+ command << " -P #{params[:certificate_password].shellescape}" if params[:certificate_password]
9
+ command << " -T /usr/bin/codesign"
10
+
11
+ Fastlane::Actions.sh command, log: false
12
+ end
13
+
14
+ def self.description
15
+ "Import certificate from inputfile into a keychain"
16
+ end
17
+
18
+ def self.available_options
19
+ [
20
+ FastlaneCore::ConfigItem.new(key: :keychain_name,
21
+ env_name: "KEYCHAIN_NAME",
22
+ description: "Keychain name into which item",
23
+ optional: false),
24
+ FastlaneCore::ConfigItem.new(key: :certificate_path,
25
+ env_name: "",
26
+ description: "Path to certificate",
27
+ optional: false),
28
+ FastlaneCore::ConfigItem.new(key: :certificate_password,
29
+ env_name: "",
30
+ description: "Certificate password",
31
+ optional: true),
32
+ ]
33
+ end
34
+
35
+ def self.authors
36
+ ["gin0606"]
37
+ end
38
+
39
+ def self.is_supported?(platform)
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
@@ -19,6 +19,7 @@ module Fastlane
19
19
  ipa: '--ipa',
20
20
  xcconfig: '--xcconfig',
21
21
  xcargs: '--xcargs',
22
+ silent: '--silent',
22
23
  }
23
24
 
24
25
  class IpaAction < Action
@@ -27,7 +28,6 @@ module Fastlane
27
28
  platform == :ios
28
29
  end
29
30
 
30
-
31
31
  def self.run(params)
32
32
  # The args we will build with
33
33
  build_args = nil
@@ -59,7 +59,7 @@ module Fastlane
59
59
  # Joins args into space delimited string
60
60
  build_args = build_args.join(' ')
61
61
 
62
- core_command = "krausefx-ipa build #{build_args} --verbose | xcpretty"
62
+ core_command = "krausefx-ipa build #{build_args} | xcpretty"
63
63
  command = "set -o pipefail && #{core_command}"
64
64
  Helper.log.debug command
65
65
 
@@ -89,7 +89,7 @@ module Fastlane
89
89
  ].each do |txt|
90
90
  Helper.log.error txt.yellow
91
91
  end
92
-
92
+
93
93
  # Raise a custom exception, as the the normal one is useless for the user
94
94
  raise "A build error occured, this is usually related to code signing. Take a look at the error above".red
95
95
  end
@@ -109,6 +109,8 @@ module Fastlane
109
109
  v == true ? '--clean' : '--no-clean'
110
110
  elsif k == :archive
111
111
  v == true ? '--archive' : '--no-archive'
112
+ elsif k == :silent
113
+ v == true ? '' : '--verbose'
112
114
  else
113
115
  value = (v.to_s.length > 0 ? "\"#{v}\"" : '')
114
116
  "#{ARGS_MAP[k]} #{value}".strip
@@ -0,0 +1,88 @@
1
+ module Fastlane
2
+ module Actions
3
+ class LcovAction < Action
4
+
5
+ def self.is_supported?(platform)
6
+ [:ios, :mac].include? platform
7
+ end
8
+
9
+ def self.run(options)
10
+ unless Helper.test?
11
+ raise 'lcov not installed, please install using `brew install lcov`'.red if `which lcov`.length == 0
12
+ end
13
+ gen_cov(options)
14
+ end
15
+
16
+ def self.description
17
+ "Generates coverage data using lcov"
18
+ end
19
+
20
+ def self.available_options
21
+ [
22
+
23
+ FastlaneCore::ConfigItem.new(key: :project_name,
24
+ env_name: "FL_LCOV_PROJECT_NAME",
25
+ description: "Name of the project"),
26
+
27
+ FastlaneCore::ConfigItem.new(key: :scheme,
28
+ env_name: "FL_LCOV_SCHEME",
29
+ description: "Scheme of the project"),
30
+
31
+ FastlaneCore::ConfigItem.new(key: :output_dir,
32
+ env_name: "FL_LCOV_OUTPUT_DIR",
33
+ description: "The output directory that coverage data will be stored. If not passed will use coverage_reports as default value",
34
+ optional: true,
35
+ is_string: true,
36
+ default_value: "coverage_reports")
37
+
38
+
39
+ ]
40
+ end
41
+
42
+ def self.author
43
+ "thiagolioy"
44
+ end
45
+
46
+ private
47
+
48
+ def self.gen_cov(options)
49
+ tmp_cov_file = "/tmp/coverage.info"
50
+ output_dir = options[:output_dir]
51
+ derived_data_path = derived_data_dir(options)
52
+
53
+ system("lcov --capture --directory \"#{derived_data_path}\" --output-file #{tmp_cov_file}")
54
+ system(gen_lcov_cmd(tmp_cov_file))
55
+ system("genhtml #{tmp_cov_file} --output-directory #{output_dir}")
56
+ end
57
+
58
+ def self.gen_lcov_cmd(cov_file)
59
+ cmd = "lcov "
60
+ exclude_dirs.each do |e|
61
+ cmd << "--remove #{cov_file} \"#{e}\" "
62
+ end
63
+ cmd << "--output #{cov_file} "
64
+ end
65
+
66
+ def self.derived_data_dir(options)
67
+ pn = options[:project_name]
68
+ sc = options[:scheme]
69
+
70
+ initial_path = "#{Dir.home}/Library/Developer/Xcode/DerivedData/"
71
+ end_path = "/Build/Intermediates/#{pn}.build/Debug-iphonesimulator/#{sc}.build/Objects-normal/i386/"
72
+
73
+ match = find_project_dir(pn,initial_path)
74
+
75
+ "#{initial_path}#{match}#{end_path}"
76
+ end
77
+
78
+ def self.find_project_dir(project_name,path)
79
+ `ls -t #{path}| grep #{project_name} | head -1`.to_s.gsub(/\n/, "")
80
+ end
81
+
82
+ def self.exclude_dirs
83
+ ["/Applications/*","/Frameworks/*"]
84
+ end
85
+
86
+ end
87
+ end
88
+ end
@@ -119,10 +119,10 @@ module Fastlane
119
119
  def self.mailgunit(options)
120
120
  sandbox_domain = options[:postmaster].split("@").last
121
121
  RestClient.post "https://api:#{options[:apikey]}@api.mailgun.net/v3/#{sandbox_domain}/messages",
122
- :from => "Mailgun Sandbox<#{options[:postmaster]}>",
123
- :to => "#{options[:to]}",
124
- :subject => options[:subject],
125
- :html => mail_teplate(options)
122
+ from: "Mailgun Sandbox<#{options[:postmaster]}>",
123
+ to: "#{options[:to]}",
124
+ subject: options[:subject],
125
+ html: mail_teplate(options)
126
126
  mail_teplate(options)
127
127
  end
128
128
 
@@ -5,7 +5,7 @@ module Fastlane
5
5
  path = params[:path]
6
6
  backup_path = "#{path}.back"
7
7
  raise "Could not find file '#{backup_path}'" unless File.exist? backup_path
8
- FileUtils.cp(backup_path, path, {:preserve => true})
8
+ FileUtils.cp(backup_path, path, {preserve: true})
9
9
  FileUtils.rm(backup_path)
10
10
  Helper.log.info "Successfully restored backup 📤"
11
11
  end
@@ -187,9 +187,9 @@ module Fastlane
187
187
  )
188
188
  bucket = s3_client.buckets[s3_bucket]
189
189
 
190
- plist_obj = bucket.objects.create(plist_file_name, plist_render.to_s, :acl => :public_read)
191
- html_obj = bucket.objects.create(html_file_name, html_render.to_s, :acl => :public_read)
192
- version_obj = bucket.objects.create(version_file_name, version_render.to_s, :acl => :public_read)
190
+ plist_obj = bucket.objects.create(plist_file_name, plist_render.to_s, acl: :public_read)
191
+ html_obj = bucket.objects.create(html_file_name, html_render.to_s, acl: :public_read)
192
+ version_obj = bucket.objects.create(version_file_name, version_render.to_s, acl: :public_read)
193
193
 
194
194
  # Setting actionand environment variables
195
195
  Actions.lane_context[SharedValues::S3_PLIST_OUTPUT_PATH] = plist_obj.public_url.to_s
@@ -40,7 +40,7 @@ module Fastlane
40
40
  end
41
41
 
42
42
  def self.is_supported?(platform)
43
- [:ios, :mac].include?platform
43
+ Actions::DeliverAction.is_supported?platform
44
44
  end
45
45
  end
46
46
  end
@@ -0,0 +1,72 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ APP_GROUP_IDENTIFIERS = :APP_GROUP_IDENTIFIERS
5
+ end
6
+
7
+ class UpdateAppGroupIdentifiersAction < Action
8
+ require 'plist'
9
+
10
+ def self.run(params)
11
+ Helper.log.info "Entitlements File: #{params[:entitlements_file]}"
12
+ Helper.log.info "New App Group Identifiers: #{params[:app_group_identifiers]}"
13
+
14
+ entitlements_file = params[:entitlements_file]
15
+ raise "Could not find entitlements file at path '#{entitlements_file}'".red unless File.exists?(entitlements_file)
16
+
17
+ # parse entitlements
18
+ result = Plist::parse_xml(entitlements_file)
19
+ raise "Entitlements file at '#{entitlements_file}' cannot be parsed.".red unless result
20
+
21
+ # get app group field
22
+ app_group_field = result['com.apple.security.application-groups']
23
+ raise 'No existing App group field specified. Please specify an App Group in the entitlements file.'.red unless app_group_field
24
+
25
+ # set new app group identifiers
26
+ Helper.log.info "Old App Group Identifiers: #{app_group_field}"
27
+ result['com.apple.security.application-groups'] = params[:app_group_identifiers]
28
+
29
+ # save entitlements file
30
+ result.save_plist(entitlements_file)
31
+ Helper.log.info "New App Group Identifiers set: #{result['com.apple.security.application-groups']}"
32
+
33
+ Actions.lane_context[SharedValues::APP_GROUP_IDENTIFIERS] = result['com.apple.security.application-groups']
34
+ end
35
+
36
+ def self.description
37
+ "This action changes the app group identifiers in the entitlements file"
38
+ end
39
+
40
+ def self.available_options
41
+ [
42
+ FastlaneCore::ConfigItem.new(key: :entitlements_file,
43
+ env_name: "FL_UPDATE_APP_GROUP_IDENTIFIER_ENTITLEMENTS_FILE_PATH", # The name of the environment variable
44
+ description: "The path to the entitlement file which contains the app group identifiers", # a short description of this parameter
45
+ verify_block: Proc.new do |value|
46
+ raise "Please pass a path to an entitlements file. ".red unless value.include? ".entitlements"
47
+ raise "Could not find entitlements file".red if (not File.exists?(value) and not Helper.is_test?)
48
+ end),
49
+ FastlaneCore::ConfigItem.new(key: :app_group_identifiers,
50
+ env_name: "FL_UPDATE_APP_GROUP_IDENTIFIER_APP_GROUP_IDENTIFIERS",
51
+ description: "An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp']",
52
+ is_string: false,
53
+ verify_block: Proc.new do |value|
54
+ raise "The parameter app_group_identifiers need to be an Array.".red unless value.is_a? Array
55
+ end)
56
+ ]
57
+ end
58
+
59
+ def self.output
60
+ ['APP_GROUP_IDENTIFIERS', 'The new App Group Identifiers']
61
+ end
62
+
63
+ def self.authors
64
+ ["mathiasAichinger"]
65
+ end
66
+
67
+ def self.is_supported?(platform)
68
+ platform == :ios
69
+ end
70
+ end
71
+ end
72
+ end
@@ -78,7 +78,7 @@ module Fastlane
78
78
  puts "\n"
79
79
 
80
80
  output = parse_options(action.output, false) if action.output
81
- if output
81
+ if output and output.count > 0
82
82
  puts Terminal::Table.new(
83
83
  title: filter.green,
84
84
  headings: ['Key', 'Description'],
@@ -1,3 +1,3 @@
1
1
  module Fastlane
2
- VERSION = '1.6.0'
2
+ VERSION = '1.7.0'
3
3
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-27 00:00:00.000000000 Z
11
+ date: 2015-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
@@ -30,362 +30,362 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.14.3
33
+ version: 0.14.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.14.3
40
+ version: 0.14.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: slack-notifier
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-sdk
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: xcodeproj
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.20'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.20'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: xcpretty
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.1'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: cupertino
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: 1.3.3
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.3.3
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: terminal-notifier
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.6.2
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.6.2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: terminal-table
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.4.5
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.4.5
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: pbxplorer
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: 1.0.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.0.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rest-client
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 1.8.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.8.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: fastlane_core
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
173
  version: 0.8.0
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '>='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.8.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: deliver
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - '>='
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
187
  version: 0.12.1
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - '>='
192
+ - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: 0.12.1
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: snapshot
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - '>='
199
+ - - ">="
200
200
  - !ruby/object:Gem::Version
201
201
  version: 0.9.0
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - '>='
206
+ - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.9.0
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: frameit
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - '>='
213
+ - - ">="
214
214
  - !ruby/object:Gem::Version
215
215
  version: 2.0.1
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - '>='
220
+ - - ">="
221
221
  - !ruby/object:Gem::Version
222
222
  version: 2.0.1
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: pem
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - '>='
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
229
  version: 0.6.3
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - '>='
234
+ - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: 0.6.3
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: cert
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - '>='
241
+ - - ">="
242
242
  - !ruby/object:Gem::Version
243
243
  version: 0.2.1
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - '>='
248
+ - - ">="
249
249
  - !ruby/object:Gem::Version
250
250
  version: 0.2.1
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: sigh
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - '>='
255
+ - - ">="
256
256
  - !ruby/object:Gem::Version
257
257
  version: 0.9.0
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - '>='
262
+ - - ">="
263
263
  - !ruby/object:Gem::Version
264
264
  version: 0.9.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: produce
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - '>='
269
+ - - ">="
270
270
  - !ruby/object:Gem::Version
271
- version: 0.3.0
271
+ version: 0.3.5
272
272
  type: :runtime
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - '>='
276
+ - - ">="
277
277
  - !ruby/object:Gem::Version
278
- version: 0.3.0
278
+ version: 0.3.5
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: bundler
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
- - - '>='
283
+ - - ">="
284
284
  - !ruby/object:Gem::Version
285
285
  version: '0'
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - '>='
290
+ - - ">="
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: rake
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - '>='
297
+ - - ">="
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  type: :development
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
- - - '>='
304
+ - - ">="
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
307
  - !ruby/object:Gem::Dependency
308
308
  name: rspec
309
309
  requirement: !ruby/object:Gem::Requirement
310
310
  requirements:
311
- - - ~>
311
+ - - "~>"
312
312
  - !ruby/object:Gem::Version
313
313
  version: 3.1.0
314
314
  type: :development
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
- - - ~>
318
+ - - "~>"
319
319
  - !ruby/object:Gem::Version
320
320
  version: 3.1.0
321
321
  - !ruby/object:Gem::Dependency
322
322
  name: pry
323
323
  requirement: !ruby/object:Gem::Requirement
324
324
  requirements:
325
- - - '>='
325
+ - - ">="
326
326
  - !ruby/object:Gem::Version
327
327
  version: '0'
328
328
  type: :development
329
329
  prerelease: false
330
330
  version_requirements: !ruby/object:Gem::Requirement
331
331
  requirements:
332
- - - '>='
332
+ - - ">="
333
333
  - !ruby/object:Gem::Version
334
334
  version: '0'
335
335
  - !ruby/object:Gem::Dependency
336
336
  name: yard
337
337
  requirement: !ruby/object:Gem::Requirement
338
338
  requirements:
339
- - - ~>
339
+ - - "~>"
340
340
  - !ruby/object:Gem::Version
341
341
  version: 0.8.7.4
342
342
  type: :development
343
343
  prerelease: false
344
344
  version_requirements: !ruby/object:Gem::Requirement
345
345
  requirements:
346
- - - ~>
346
+ - - "~>"
347
347
  - !ruby/object:Gem::Version
348
348
  version: 0.8.7.4
349
349
  - !ruby/object:Gem::Dependency
350
350
  name: webmock
351
351
  requirement: !ruby/object:Gem::Requirement
352
352
  requirements:
353
- - - ~>
353
+ - - "~>"
354
354
  - !ruby/object:Gem::Version
355
355
  version: 1.19.0
356
356
  type: :development
357
357
  prerelease: false
358
358
  version_requirements: !ruby/object:Gem::Requirement
359
359
  requirements:
360
- - - ~>
360
+ - - "~>"
361
361
  - !ruby/object:Gem::Version
362
362
  version: 1.19.0
363
363
  - !ruby/object:Gem::Dependency
364
364
  name: coveralls
365
365
  requirement: !ruby/object:Gem::Requirement
366
366
  requirements:
367
- - - '>='
367
+ - - ">="
368
368
  - !ruby/object:Gem::Version
369
369
  version: '0'
370
370
  type: :development
371
371
  prerelease: false
372
372
  version_requirements: !ruby/object:Gem::Requirement
373
373
  requirements:
374
- - - '>='
374
+ - - ">="
375
375
  - !ruby/object:Gem::Version
376
376
  version: '0'
377
377
  - !ruby/object:Gem::Dependency
378
378
  name: rubocop
379
379
  requirement: !ruby/object:Gem::Requirement
380
380
  requirements:
381
- - - ~>
381
+ - - "~>"
382
382
  - !ruby/object:Gem::Version
383
383
  version: '0.29'
384
384
  type: :development
385
385
  prerelease: false
386
386
  version_requirements: !ruby/object:Gem::Requirement
387
387
  requirements:
388
- - - ~>
388
+ - - "~>"
389
389
  - !ruby/object:Gem::Version
390
390
  version: '0.29'
391
391
  description: Connect all iOS deployment tools into one streamlined workflow
@@ -412,13 +412,16 @@ files:
412
412
  - lib/fastlane/actions/README.md
413
413
  - lib/fastlane/actions/actions_helper.rb
414
414
  - lib/fastlane/actions/add_git_tag.rb
415
+ - lib/fastlane/actions/appstore.rb
415
416
  - lib/fastlane/actions/backup_file.rb
416
417
  - lib/fastlane/actions/cert.rb
417
418
  - lib/fastlane/actions/chatwork.rb
418
419
  - lib/fastlane/actions/clean_build_artifacts.rb
419
420
  - lib/fastlane/actions/commit_version_bump.rb
420
421
  - lib/fastlane/actions/crashlytics.rb
422
+ - lib/fastlane/actions/create_keychain.rb
421
423
  - lib/fastlane/actions/default_platform.rb
424
+ - lib/fastlane/actions/delete_keychain.rb
422
425
  - lib/fastlane/actions/deliver.rb
423
426
  - lib/fastlane/actions/deploygate.rb
424
427
  - lib/fastlane/actions/dsym_zip.rb
@@ -433,11 +436,13 @@ files:
433
436
  - lib/fastlane/actions/hg_push.rb
434
437
  - lib/fastlane/actions/hipchat.rb
435
438
  - lib/fastlane/actions/hockey.rb
439
+ - lib/fastlane/actions/import_certificate.rb
436
440
  - lib/fastlane/actions/increment_build_number.rb
437
441
  - lib/fastlane/actions/increment_version_number.rb
438
442
  - lib/fastlane/actions/install_carthage.rb
439
443
  - lib/fastlane/actions/install_cocapods.rb
440
444
  - lib/fastlane/actions/ipa.rb
445
+ - lib/fastlane/actions/lcov.rb
441
446
  - lib/fastlane/actions/mailgun.rb
442
447
  - lib/fastlane/actions/notify.rb
443
448
  - lib/fastlane/actions/oclint.rb
@@ -460,6 +465,7 @@ files:
460
465
  - lib/fastlane/actions/testflight.rb
461
466
  - lib/fastlane/actions/testmunk.rb
462
467
  - lib/fastlane/actions/typetalk.rb
468
+ - lib/fastlane/actions/update_app_group_identifiers.rb
463
469
  - lib/fastlane/actions/update_fastlane.rb
464
470
  - lib/fastlane/actions/update_info_plist.rb
465
471
  - lib/fastlane/actions/update_project_code_signing.rb
@@ -493,17 +499,17 @@ require_paths:
493
499
  - lib
494
500
  required_ruby_version: !ruby/object:Gem::Requirement
495
501
  requirements:
496
- - - '>='
502
+ - - ">="
497
503
  - !ruby/object:Gem::Version
498
504
  version: 2.0.0
499
505
  required_rubygems_version: !ruby/object:Gem::Requirement
500
506
  requirements:
501
- - - '>='
507
+ - - ">="
502
508
  - !ruby/object:Gem::Version
503
509
  version: '0'
504
510
  requirements: []
505
511
  rubyforge_project:
506
- rubygems_version: 2.4.7
512
+ rubygems_version: 2.4.6
507
513
  signing_key:
508
514
  specification_version: 4
509
515
  summary: Connect all iOS deployment tools into one streamlined workflow