fastlane 1.105.3 → 1.106.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/fastlane/actions/match.rb +2 -1
- data/lib/fastlane/commands_generator.rb +21 -25
- data/lib/fastlane/environment_printer.rb +194 -0
- data/lib/fastlane/markdown_table_formatter.rb +62 -0
- data/lib/fastlane/plugins/plugin_manager.rb +1 -1
- data/lib/fastlane/plugins/template/README.md.erb +3 -3
- data/lib/fastlane/version.rb +2 -2
- metadata +16 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c2c7bb1d7664393c9149b8efd056625b87abbd7
|
4
|
+
data.tar.gz: 0e93c93ffb7a4fe39bcd2fb2ab4ce46066b4e4e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a2617e9d944472142efb034f97690ad7683ca65a5bed4dade6d9b05efde6ef29300df921c4e6046cac48883f4d276bffbfa5ff670a2d715e7ae40daff6581b2
|
7
|
+
data.tar.gz: 2405caf7a696dc1abe7b61129608873d75ee6f054771decfc263947984cd525663f90c777ca09b48d4655d170a08d22402d881637509b9ea39ed92d170d89f9e
|
data/README.md
CHANGED
@@ -24,7 +24,6 @@ fastlane
|
|
24
24
|
[![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
25
25
|
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/fastlane/LICENSE)
|
26
26
|
[![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](http://rubygems.org/gems/fastlane)
|
27
|
-
[![Build Status](https://img.shields.io/circleci/project/fastlane/fastlane/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
|
28
27
|
|
29
28
|
######*fastlane* lets you define and run your deployment pipelines for different environments. It helps you unify your apps release process and automate the whole process. fastlane connects all fastlane tools and third party tools, like [CocoaPods](https://cocoapods.org/) and [Slack](https://slack.com).
|
30
29
|
|
@@ -145,6 +144,7 @@ Usually you'll use fastlane by triggering individual lanes:
|
|
145
144
|
- `fastlane lanes`: Lists all available lanes with description
|
146
145
|
- `fastlane list`: Lists all available lanes without description
|
147
146
|
- `fastlane new_action`: Create a new action (integration) for fastlane
|
147
|
+
- `fastlane env`: Print out the fastlane ruby environment when submitting an issue
|
148
148
|
|
149
149
|
## Examples
|
150
150
|
|
@@ -62,7 +62,8 @@ module Fastlane
|
|
62
62
|
def self.example_code
|
63
63
|
[
|
64
64
|
'match(type: "appstore", app_identifier: "tools.fastlane.app")',
|
65
|
-
'match(type: "development", readonly: true)'
|
65
|
+
'match(type: "development", readonly: true)',
|
66
|
+
'match(app_identifier: ["tools.fastlane.app", "tools.fastlane.sleepy"])'
|
66
67
|
]
|
67
68
|
end
|
68
69
|
|
@@ -14,9 +14,12 @@ module Fastlane
|
|
14
14
|
|
15
15
|
FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
|
16
16
|
Fastlane.load_actions
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
# do not use "include" as it may be some where in the commandline where "env" is required, therefore explicit index->0
|
18
|
+
unless ARGV[0] == "env"
|
19
|
+
# *after* loading the plugins
|
20
|
+
Fastlane.plugin_manager.load_plugins
|
21
|
+
Fastlane::PluginUpdateManager.start_looking_for_updates
|
22
|
+
end
|
20
23
|
self.new.run
|
21
24
|
ensure
|
22
25
|
FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
|
@@ -158,22 +161,6 @@ module Fastlane
|
|
158
161
|
end
|
159
162
|
end
|
160
163
|
|
161
|
-
command :enable_crash_reporting do |c|
|
162
|
-
c.syntax = 'fastlane enable_crash_reporting'
|
163
|
-
c.description = "Deprecated: fastlane doesn't use a crash reporter any more"
|
164
|
-
c.action do |args, options|
|
165
|
-
show_crashreporter_note
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
command :disable_crash_reporting do |c|
|
170
|
-
c.syntax = 'fastlane disable_crash_reporting'
|
171
|
-
c.description = "Deprecated: fastlane doesn't use a crash reporter any more"
|
172
|
-
c.action do |args, options|
|
173
|
-
show_crashreporter_note
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
164
|
command :enable_auto_complete do |c|
|
178
165
|
c.syntax = 'fastlane enable_auto_complete'
|
179
166
|
c.description = 'Enable tab auto completion'
|
@@ -240,6 +227,21 @@ module Fastlane
|
|
240
227
|
end
|
241
228
|
end
|
242
229
|
|
230
|
+
command :env do |c|
|
231
|
+
c.syntax = 'fastlane env'
|
232
|
+
c.description = 'Print your fastlane environment, use this when you submit an issue on GitHub'
|
233
|
+
c.action do |args, options|
|
234
|
+
require "fastlane/environment_printer"
|
235
|
+
env_info = Fastlane::EnvironmentPrinter.get
|
236
|
+
puts env_info
|
237
|
+
if FastlaneCore::Helper.mac? && UI.confirm("🙄 Wow, that's a lot of markdown text... should fastlane put it into your clipboard, so you can easily paste it on GitHub?")
|
238
|
+
Fastlane::EnvironmentPrinter.copy_to_clipboard(env_info)
|
239
|
+
UI.success("Successfully copied markdown into your clipboard 🎨")
|
240
|
+
end
|
241
|
+
UI.success("Open https://github.com/fastlane/fastlane/issues/new to submit a new issue ✅")
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
243
245
|
default_command :trigger
|
244
246
|
run!
|
245
247
|
end
|
@@ -255,11 +257,5 @@ module Fastlane
|
|
255
257
|
Fastlane::Setup.new.run if create
|
256
258
|
return false
|
257
259
|
end
|
258
|
-
|
259
|
-
def show_crashreporter_note
|
260
|
-
UI.important("fastlane doesn't use a crash reporter any more")
|
261
|
-
UI.important("Instead please submit an issue on GitHub: https://github.com/fastlane/fastlane/issues")
|
262
|
-
UI.important("This command will be removed in one of the next releases")
|
263
|
-
end
|
264
260
|
end
|
265
261
|
end
|
@@ -0,0 +1,194 @@
|
|
1
|
+
module Fastlane
|
2
|
+
class EnvironmentPrinter
|
3
|
+
def self.get
|
4
|
+
UI.important("Generating fastlane environment output, this might take a few seconds...")
|
5
|
+
require "fastlane/markdown_table_formatter"
|
6
|
+
env_output = ""
|
7
|
+
env_output << print_system_environment
|
8
|
+
env_output << print_fastlane_files
|
9
|
+
env_output << print_loaded_fastlane_gems
|
10
|
+
env_output << print_loaded_plugins
|
11
|
+
env_output << print_loaded_gems
|
12
|
+
env_output << print_date
|
13
|
+
env_output << "</details>"
|
14
|
+
|
15
|
+
# Adding title
|
16
|
+
status = (env_output.include?("🚫") ? "🚫" : "✅")
|
17
|
+
env_header = "<details><summary>#{status} fastlane environment #{status}</summary>\n\n"
|
18
|
+
|
19
|
+
return env_header + env_output
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.print_date
|
23
|
+
date = Time.now.strftime("%Y-%m-%d")
|
24
|
+
"\n*generated on:* **#{date}**\n"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.print_loaded_plugins
|
28
|
+
ENV["FASTLANE_ENV_PRINTER"] = "enabled"
|
29
|
+
env_output = "### Loaded fastlane plugins:\n"
|
30
|
+
env_output << "\n"
|
31
|
+
plugin_manager = Fastlane::PluginManager.new
|
32
|
+
plugin_manager.load_plugins
|
33
|
+
if plugin_manager.available_plugins.length <= 0
|
34
|
+
env_output << "**No plugins Loaded***\n"
|
35
|
+
else
|
36
|
+
table = ""
|
37
|
+
table << "| Plugin | Version | Update-Status |\n"
|
38
|
+
table << "|--------|---------|\n"
|
39
|
+
plugin_manager.available_plugins.each do |plugin|
|
40
|
+
begin
|
41
|
+
installed_version = Fastlane::ActionCollector.determine_version(plugin)
|
42
|
+
update_url = FastlaneCore::UpdateChecker.generate_fetch_url(plugin)
|
43
|
+
latest_version = FastlaneCore::UpdateChecker.fetch_latest(update_url)
|
44
|
+
if Gem::Version.new(installed_version) == Gem::Version.new(latest_version)
|
45
|
+
update_status = "✅ Up-To-Date"
|
46
|
+
else
|
47
|
+
update_status = "🚫 Update availaible"
|
48
|
+
end
|
49
|
+
rescue
|
50
|
+
update_status = "💥 Check failed"
|
51
|
+
end
|
52
|
+
table << "| #{plugin} | #{installed_version} | #{update_status} |\n"
|
53
|
+
end
|
54
|
+
|
55
|
+
rendered_table = MarkdownTableFormatter.new table
|
56
|
+
env_output << rendered_table.to_md
|
57
|
+
end
|
58
|
+
|
59
|
+
env_output << "\n\n"
|
60
|
+
env_output
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.print_loaded_fastlane_gems
|
64
|
+
# fastlanes internal gems
|
65
|
+
env_output = "### fastlane gems\n\n"
|
66
|
+
table = ""
|
67
|
+
table << "| Gem | Version | Update-Status |\n"
|
68
|
+
table << "|-----|---------|------------|\n"
|
69
|
+
fastlane_tools = Fastlane::TOOLS + [:fastlane_core, :credentials_manager]
|
70
|
+
Gem.loaded_specs.values.each do |x|
|
71
|
+
update_status = "N/A"
|
72
|
+
|
73
|
+
next unless fastlane_tools.include?(x.name.to_sym)
|
74
|
+
begin
|
75
|
+
update_url = FastlaneCore::UpdateChecker.generate_fetch_url(x.name)
|
76
|
+
latest_version = FastlaneCore::UpdateChecker.fetch_latest(update_url)
|
77
|
+
if Gem::Version.new(x.version) == Gem::Version.new(latest_version)
|
78
|
+
update_status = "✅ Up-To-Date"
|
79
|
+
else
|
80
|
+
update_status = "🚫 Update availaible"
|
81
|
+
end
|
82
|
+
rescue
|
83
|
+
update_status = "💥 Check failed"
|
84
|
+
end
|
85
|
+
table << "| #{x.name} | #{x.version} | #{update_status} |\n"
|
86
|
+
end
|
87
|
+
|
88
|
+
rendered_table = MarkdownTableFormatter.new table
|
89
|
+
env_output << rendered_table.to_md
|
90
|
+
|
91
|
+
env_output << "\n\n"
|
92
|
+
|
93
|
+
return env_output
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.print_loaded_gems
|
97
|
+
env_output = "<details>"
|
98
|
+
env_output << "<summary><b>Loaded gems</b></summary>\n\n"
|
99
|
+
|
100
|
+
table = "| Gem | Version |\n"
|
101
|
+
table << "|-----|---------|\n"
|
102
|
+
Gem.loaded_specs.values.each do |x|
|
103
|
+
unless Fastlane::TOOLS.include?(x.name.to_sym)
|
104
|
+
table << "| #{x.name} | #{x.version} |\n"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
rendered_table = MarkdownTableFormatter.new table
|
108
|
+
|
109
|
+
env_output << rendered_table.to_md
|
110
|
+
env_output << "</details>\n\n"
|
111
|
+
return env_output
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.print_system_environment
|
115
|
+
require "openssl"
|
116
|
+
|
117
|
+
env_output = "### Stack\n\n"
|
118
|
+
product, version, build = `sw_vers`.strip.split("\n").map { |line| line.split(':').last.strip }
|
119
|
+
table_content = {
|
120
|
+
"fastlane" => Fastlane::VERSION,
|
121
|
+
"OS" => `sw_vers -productVersion`.strip,
|
122
|
+
"Ruby" => RUBY_VERSION,
|
123
|
+
"Bundler?" => Helper.bundler?,
|
124
|
+
"Xcode Path" => Helper.xcode_path,
|
125
|
+
"Xcode Version" => Helper.xcode_version,
|
126
|
+
"Git" => `git --version`.strip.split("\n").first,
|
127
|
+
"Installation Source" => $PROGRAM_NAME,
|
128
|
+
"Host" => "#{product} #{version} (#{build})",
|
129
|
+
"Ruby Lib Dir" => RbConfig::CONFIG['libdir'],
|
130
|
+
"OpenSSL Version" => OpenSSL::OPENSSL_VERSION
|
131
|
+
}
|
132
|
+
table = ["| Key | Value |"]
|
133
|
+
table += table_content.collect { |k, v| "| #{k} | #{v} |" }
|
134
|
+
|
135
|
+
begin
|
136
|
+
rendered_table = MarkdownTableFormatter.new(table.join("\n"))
|
137
|
+
env_output << rendered_table.to_md
|
138
|
+
rescue => ex
|
139
|
+
UI.error(ex)
|
140
|
+
UI.error("Error rendering markdown table using the following text:")
|
141
|
+
UI.message(table.join("\n"))
|
142
|
+
env_output << table.join("\n")
|
143
|
+
end
|
144
|
+
|
145
|
+
env_output << "\n\n"
|
146
|
+
env_output
|
147
|
+
end
|
148
|
+
|
149
|
+
def self.print_fastlane_files
|
150
|
+
env_output = "### fastlane files:\n\n"
|
151
|
+
|
152
|
+
fastlane_path = FastlaneFolder.fastfile_path
|
153
|
+
|
154
|
+
if fastlane_path && File.exist?(fastlane_path)
|
155
|
+
env_output << "<details>"
|
156
|
+
env_output << "<summary>`#{fastlane_path}`</summary>\n"
|
157
|
+
env_output << "\n"
|
158
|
+
env_output << "```ruby\n"
|
159
|
+
env_output << File.read(fastlane_path)
|
160
|
+
env_output << "```\n"
|
161
|
+
env_output << "</details>"
|
162
|
+
else
|
163
|
+
env_output << "**No Fastfile found**\n"
|
164
|
+
end
|
165
|
+
env_output << "\n\n"
|
166
|
+
|
167
|
+
appfile_path = CredentialsManager::AppfileConfig.default_path
|
168
|
+
if appfile_path && File.exist?(appfile_path)
|
169
|
+
env_output << "<details>"
|
170
|
+
env_output << "<summary>`#{appfile_path}`</summary>\n"
|
171
|
+
env_output << "\n"
|
172
|
+
env_output << "```ruby\n"
|
173
|
+
env_output << File.read(appfile_path)
|
174
|
+
env_output << "```\n"
|
175
|
+
env_output << "</details>"
|
176
|
+
else
|
177
|
+
env_output << "**No Appfile found**\n"
|
178
|
+
end
|
179
|
+
env_output << "\n\n"
|
180
|
+
env_output
|
181
|
+
end
|
182
|
+
|
183
|
+
# Copy a given string into the clipboard
|
184
|
+
# Make sure to ask the user first, as some people don't
|
185
|
+
# use a clipboard manager, so they might lose something important
|
186
|
+
def self.copy_to_clipboard(string)
|
187
|
+
require 'tempfile'
|
188
|
+
Tempfile.create('environment_printer') do |tmp_file|
|
189
|
+
File.write(tmp_file, string)
|
190
|
+
`cat '#{tmp_file.path}' | pbcopy`
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Fastlane
|
2
|
+
class MarkdownTableFormatter
|
3
|
+
# taken from: https://github.com/benbalter/markdown-table-formatter
|
4
|
+
def initialize(string, header = true)
|
5
|
+
@doc = string
|
6
|
+
@header = header
|
7
|
+
end
|
8
|
+
|
9
|
+
# converts the markdown string into an array of arrays
|
10
|
+
def parse
|
11
|
+
@table = []
|
12
|
+
rows = @doc.split(/\r?\n/)
|
13
|
+
rows.each do |row|
|
14
|
+
row_array = row.split("|")
|
15
|
+
row_array.each(&:strip!)
|
16
|
+
@table.push row_array
|
17
|
+
end
|
18
|
+
@table.delete_at(1) if @header # strip header separator
|
19
|
+
@table
|
20
|
+
end
|
21
|
+
|
22
|
+
def table
|
23
|
+
@table ||= parse
|
24
|
+
end
|
25
|
+
|
26
|
+
def column_width(column)
|
27
|
+
width = 0
|
28
|
+
table.each do |row|
|
29
|
+
length = row[column].strip.length
|
30
|
+
width = length if length > width
|
31
|
+
end
|
32
|
+
width
|
33
|
+
end
|
34
|
+
|
35
|
+
def pad(string, length)
|
36
|
+
string.strip.ljust(length, ' ')
|
37
|
+
end
|
38
|
+
|
39
|
+
def separator(length)
|
40
|
+
"".ljust(length, '-')
|
41
|
+
end
|
42
|
+
|
43
|
+
def header_separator_row
|
44
|
+
output = []
|
45
|
+
[*0...table.first.length].each do |column|
|
46
|
+
output.push separator(column_width(column))
|
47
|
+
end
|
48
|
+
output
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_md
|
52
|
+
output = ""
|
53
|
+
t = table.clone
|
54
|
+
t.insert(1, header_separator_row) if @header
|
55
|
+
t.each_with_index do |row, index|
|
56
|
+
row.map!.with_index { |cell_row, index_row| pad(cell_row, column_width(index_row)) }
|
57
|
+
output += "#{row.join(' | ').lstrip} |\n"
|
58
|
+
end
|
59
|
+
output
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -293,7 +293,7 @@ module Fastlane
|
|
293
293
|
UI.error("Please follow the troubleshooting guide: #{TROUBLESHOOTING_URL}")
|
294
294
|
end
|
295
295
|
|
296
|
-
skip_print_plugin_info = self.plugin_references.empty? || CLIToolsDistributor.running_version_command?
|
296
|
+
skip_print_plugin_info = self.plugin_references.empty? || CLIToolsDistributor.running_version_command? || ENV["FASTLANE_ENV_PRINTER"]
|
297
297
|
|
298
298
|
# We want to avoid printing output other than the version number if we are running `fastlane -v`
|
299
299
|
print_plugin_information(self.plugin_references) unless skip_print_plugin_info
|
@@ -18,7 +18,7 @@ fastlane add_plugin <%= plugin_name %>
|
|
18
18
|
|
19
19
|
## Example
|
20
20
|
|
21
|
-
Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
|
21
|
+
Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
|
22
22
|
|
23
23
|
**Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
|
24
24
|
|
@@ -30,7 +30,7 @@ To run both the tests, and code style validation, run
|
|
30
30
|
rake
|
31
31
|
```
|
32
32
|
|
33
|
-
To automatically fix many of the styling issues, use
|
33
|
+
To automatically fix many of the styling issues, use
|
34
34
|
```
|
35
35
|
rubocop -a
|
36
36
|
```
|
@@ -49,4 +49,4 @@ For more information about how the `fastlane` plugin system works, check out the
|
|
49
49
|
|
50
50
|
## About `fastlane`
|
51
51
|
|
52
|
-
`fastlane` is the easiest way to automate
|
52
|
+
`fastlane` is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
|
data/lib/fastlane/version.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '1.
|
3
|
-
DESCRIPTION = "The easiest way to automate
|
2
|
+
VERSION = '1.106.0'.freeze
|
3
|
+
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps"
|
4
4
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.106.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2016-10-
|
18
|
+
date: 2016-10-24 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: krausefx-shenzhen
|
@@ -225,7 +225,7 @@ dependencies:
|
|
225
225
|
requirements:
|
226
226
|
- - ">="
|
227
227
|
- !ruby/object:Gem::Version
|
228
|
-
version: 0.
|
228
|
+
version: 0.53.0
|
229
229
|
- - "<"
|
230
230
|
- !ruby/object:Gem::Version
|
231
231
|
version: 1.0.0
|
@@ -235,7 +235,7 @@ dependencies:
|
|
235
235
|
requirements:
|
236
236
|
- - ">="
|
237
237
|
- !ruby/object:Gem::Version
|
238
|
-
version: 0.
|
238
|
+
version: 0.53.0
|
239
239
|
- - "<"
|
240
240
|
- !ruby/object:Gem::Version
|
241
241
|
version: 1.0.0
|
@@ -279,7 +279,7 @@ dependencies:
|
|
279
279
|
requirements:
|
280
280
|
- - ">="
|
281
281
|
- !ruby/object:Gem::Version
|
282
|
-
version: 0.36.
|
282
|
+
version: 0.36.1
|
283
283
|
- - "<"
|
284
284
|
- !ruby/object:Gem::Version
|
285
285
|
version: 1.0.0
|
@@ -289,7 +289,7 @@ dependencies:
|
|
289
289
|
requirements:
|
290
290
|
- - ">="
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: 0.36.
|
292
|
+
version: 0.36.1
|
293
293
|
- - "<"
|
294
294
|
- !ruby/object:Gem::Version
|
295
295
|
version: 1.0.0
|
@@ -299,7 +299,7 @@ dependencies:
|
|
299
299
|
requirements:
|
300
300
|
- - ">="
|
301
301
|
- !ruby/object:Gem::Version
|
302
|
-
version: 1.14.
|
302
|
+
version: 1.14.3
|
303
303
|
- - "<"
|
304
304
|
- !ruby/object:Gem::Version
|
305
305
|
version: 2.0.0
|
@@ -309,7 +309,7 @@ dependencies:
|
|
309
309
|
requirements:
|
310
310
|
- - ">="
|
311
311
|
- !ruby/object:Gem::Version
|
312
|
-
version: 1.14.
|
312
|
+
version: 1.14.3
|
313
313
|
- - "<"
|
314
314
|
- !ruby/object:Gem::Version
|
315
315
|
version: 2.0.0
|
@@ -459,7 +459,7 @@ dependencies:
|
|
459
459
|
requirements:
|
460
460
|
- - ">="
|
461
461
|
- !ruby/object:Gem::Version
|
462
|
-
version: 1.
|
462
|
+
version: 1.11.0
|
463
463
|
- - "<"
|
464
464
|
- !ruby/object:Gem::Version
|
465
465
|
version: 2.0.0
|
@@ -469,7 +469,7 @@ dependencies:
|
|
469
469
|
requirements:
|
470
470
|
- - ">="
|
471
471
|
- !ruby/object:Gem::Version
|
472
|
-
version: 1.
|
472
|
+
version: 1.11.0
|
473
473
|
- - "<"
|
474
474
|
- !ruby/object:Gem::Version
|
475
475
|
version: 2.0.0
|
@@ -721,8 +721,8 @@ dependencies:
|
|
721
721
|
- - "~>"
|
722
722
|
- !ruby/object:Gem::Version
|
723
723
|
version: 0.8.1
|
724
|
-
description: The easiest way to automate
|
725
|
-
apps
|
724
|
+
description: The easiest way to automate beta deployments and releases for your iOS
|
725
|
+
and Android apps
|
726
726
|
email:
|
727
727
|
- fastlane@krausefx.com
|
728
728
|
executables:
|
@@ -941,6 +941,7 @@ files:
|
|
941
941
|
- lib/fastlane/documentation/actions_list.rb
|
942
942
|
- lib/fastlane/documentation/docs_generator.rb
|
943
943
|
- lib/fastlane/documentation/markdown_docs_generator.rb
|
944
|
+
- lib/fastlane/environment_printer.rb
|
944
945
|
- lib/fastlane/erb_template_helper.rb
|
945
946
|
- lib/fastlane/fast_file.rb
|
946
947
|
- lib/fastlane/fastlane_folder.rb
|
@@ -958,6 +959,7 @@ files:
|
|
958
959
|
- lib/fastlane/lane.rb
|
959
960
|
- lib/fastlane/lane_list.rb
|
960
961
|
- lib/fastlane/lane_manager.rb
|
962
|
+
- lib/fastlane/markdown_table_formatter.rb
|
961
963
|
- lib/fastlane/new_action.rb
|
962
964
|
- lib/fastlane/one_off.rb
|
963
965
|
- lib/fastlane/other_action.rb
|
@@ -1025,6 +1027,7 @@ rubyforge_project:
|
|
1025
1027
|
rubygems_version: 2.6.6
|
1026
1028
|
signing_key:
|
1027
1029
|
specification_version: 4
|
1028
|
-
summary: The easiest way to automate
|
1030
|
+
summary: The easiest way to automate beta deployments and releases for your iOS and
|
1031
|
+
Android apps
|
1029
1032
|
test_files: []
|
1030
1033
|
has_rdoc:
|