fastlane 2.16.0.beta.20170214010051 → 2.16.0
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 +4 -4
- data/deliver/lib/deliver/runner.rb +2 -2
- data/fastlane/lib/fastlane/actions/hockey.rb +1 -1
- data/fastlane/lib/fastlane/actions/reset_git_repo.rb +1 -1
- data/fastlane/lib/fastlane/other_action.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +0 -11
- data/fastlane/lib/fastlane/setup/setup_android.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +9 -2
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +18 -4
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
- data/match/lib/match/commands_generator.rb +2 -2
- data/match/lib/match/generator.rb +1 -1
- data/match/lib/match/nuke.rb +1 -1
- data/match/lib/match/runner.rb +1 -1
- data/match/lib/match/spaceship_ensure.rb +4 -4
- data/sigh/lib/sigh/commands_generator.rb +4 -0
- data/sigh/lib/sigh/local_manage.rb +1 -1
- data/snapshot/lib/snapshot/runner.rb +1 -1
- data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
- data/supply/lib/supply/uploader.rb +1 -1
- metadata +16 -16
- data/fastlane/lib/assets/AvailablePlugins.md.erb +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8b23a6ac1c98d9099fd80546792028a9577636ef
|
|
4
|
+
data.tar.gz: 348db27cd92fa4d8ee520232af4e46e024d77c85
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7ae6adfd2c431a9f0d98f5d4919a04a94babb87b8669f267de8bd3fb3c028710feb5a72e806960f048947bfadfc9fd3a7e20b393c0b242d8269424cef6e87b3
|
|
7
|
+
data.tar.gz: 42170999f744728ccda59909a0242b81f7ce8ffcee2b37e98e9d9e6262c90e588618f02b3cf5f8522f2bdae1fc735e224665837c60c13eaa78a27e607c19a271
|
|
@@ -73,10 +73,10 @@ module Deliver
|
|
|
73
73
|
return unless options[:metadata_path]
|
|
74
74
|
|
|
75
75
|
default_app_icon_path = Dir[File.join(options[:metadata_path], "app_icon.{png,jpg}")].first
|
|
76
|
-
options[:app_icon] ||= default_app_icon_path if File.exist?(default_app_icon_path)
|
|
76
|
+
options[:app_icon] ||= default_app_icon_path if default_app_icon_path && File.exist?(default_app_icon_path)
|
|
77
77
|
|
|
78
78
|
default_watch_icon_path = Dir[File.join(options[:metadata_path], "watch_icon.{png,jpg}")].first
|
|
79
|
-
options[:
|
|
79
|
+
options[:apple_watch_app_icon] ||= default_watch_icon_path if default_watch_icon_path && File.exist?(default_watch_icon_path)
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
# Upload the binary to iTunes Connect
|
|
@@ -30,17 +30,6 @@ module Fastlane
|
|
|
30
30
|
|
|
31
31
|
return plugins
|
|
32
32
|
end
|
|
33
|
-
|
|
34
|
-
def self.update_md_file!(output_path: "docs/AvailablePlugins.md")
|
|
35
|
-
@plugins = fetch_gems
|
|
36
|
-
|
|
37
|
-
template_path = File.join(Fastlane::ROOT, "lib/assets/AvailablePlugins.md.erb")
|
|
38
|
-
md = ERB.new(File.read(template_path), nil, '<>').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
|
|
39
|
-
|
|
40
|
-
puts md
|
|
41
|
-
File.write(output_path, md)
|
|
42
|
-
FastlaneCore::UI.success("Successfully written plugin file to '#{output_path}'")
|
|
43
|
-
end
|
|
44
33
|
end
|
|
45
34
|
|
|
46
35
|
class FastlanePlugin
|
|
@@ -57,10 +57,10 @@ module Fastlane
|
|
|
57
57
|
Supply::Setup.new.perform_download
|
|
58
58
|
rescue => ex
|
|
59
59
|
UI.error(ex.to_s)
|
|
60
|
-
UI.error("supply failed, but don't worry, you can launch supply using `supply init` whenever you want.")
|
|
60
|
+
UI.error("supply failed, but don't worry, you can launch supply using `fastlane supply init` whenever you want.")
|
|
61
61
|
end
|
|
62
62
|
else
|
|
63
|
-
UI.success("You can run `supply init` to do so at a later point.")
|
|
63
|
+
UI.success("You can run `fastlane supply init` to do so at a later point.")
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
@@ -241,8 +241,12 @@ module FastlaneCore
|
|
|
241
241
|
end
|
|
242
242
|
|
|
243
243
|
def supported_platforms
|
|
244
|
-
supported_platforms = build_settings(key: "SUPPORTED_PLATFORMS")
|
|
245
|
-
supported_platforms.
|
|
244
|
+
supported_platforms = build_settings(key: "SUPPORTED_PLATFORMS")
|
|
245
|
+
if supported_platforms.nil?
|
|
246
|
+
UI.important("Could not read the \"SUPPORTED_PLATFORMS\" build setting, assuming that the project supports iOS only.")
|
|
247
|
+
return [:iOS]
|
|
248
|
+
end
|
|
249
|
+
supported_platforms.split.map do |platform|
|
|
246
250
|
case platform
|
|
247
251
|
when "macosx" then :macOS
|
|
248
252
|
when "iphonesimulator", "iphoneos" then :iOS
|
|
@@ -288,6 +292,9 @@ module FastlaneCore
|
|
|
288
292
|
timeout = FastlaneCore::Project.xcode_build_settings_timeout
|
|
289
293
|
retries = FastlaneCore::Project.xcode_build_settings_retries
|
|
290
294
|
@build_settings = FastlaneCore::Project.run_command(command, timeout: timeout, retries: retries, print: !self.xcodebuild_list_silent)
|
|
295
|
+
if @build_settings.empty?
|
|
296
|
+
UI.error("Could not read build settings. Make sure that the scheme \"#{options[:scheme]}\" is configured for running by going to Product → Scheme → Edit Scheme…, selecting the \"Build\" section, checking the \"Run\" checkbox and closing the scheme window.")
|
|
297
|
+
end
|
|
291
298
|
rescue Timeout::Error
|
|
292
299
|
UI.crash!("xcodebuild -showBuildSettings timed-out after #{timeout} seconds and #{retries} retries." \
|
|
293
300
|
" You can override the timeout value with the environment variable FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT," \
|
|
@@ -37,7 +37,13 @@ module Commander
|
|
|
37
37
|
collector.did_launch_action(@program[:name])
|
|
38
38
|
run_active_command
|
|
39
39
|
rescue InvalidCommandError => e
|
|
40
|
-
abort
|
|
40
|
+
# calling `abort` makes it likely that tests stop without failing, so
|
|
41
|
+
# we'll disable that during tests.
|
|
42
|
+
if FastlaneCore::Helper.test?
|
|
43
|
+
raise e
|
|
44
|
+
else
|
|
45
|
+
abort "#{e}. Use --help for more information"
|
|
46
|
+
end
|
|
41
47
|
rescue Interrupt => ex
|
|
42
48
|
# We catch it so that the stack trace is hidden by default when using ctrl + c
|
|
43
49
|
if FastlaneCore::Globals.verbose?
|
|
@@ -49,7 +55,13 @@ module Commander
|
|
|
49
55
|
OptionParser::InvalidOption,
|
|
50
56
|
OptionParser::InvalidArgument,
|
|
51
57
|
OptionParser::MissingArgument => e
|
|
52
|
-
abort
|
|
58
|
+
# calling `abort` makes it likely that tests stop without failing, so
|
|
59
|
+
# we'll disable that during tests.
|
|
60
|
+
if FastlaneCore::Helper.test?
|
|
61
|
+
raise e
|
|
62
|
+
else
|
|
63
|
+
abort e.to_s
|
|
64
|
+
end
|
|
53
65
|
rescue FastlaneCore::Interface::FastlaneError => e # user_error!
|
|
54
66
|
collector.did_raise_error(@program[:name])
|
|
55
67
|
show_github_issues(e.message) if e.show_github_issues
|
|
@@ -159,10 +171,12 @@ module Commander
|
|
|
159
171
|
end
|
|
160
172
|
|
|
161
173
|
def display_user_error!(e, message)
|
|
162
|
-
if FastlaneCore::Globals.verbose?
|
|
174
|
+
if FastlaneCore::Globals.verbose?
|
|
175
|
+
# with stack trace
|
|
163
176
|
reraise_formatted!(e, message)
|
|
164
177
|
else
|
|
165
|
-
|
|
178
|
+
# without stack trace
|
|
179
|
+
abort "\n[!] #{message}".red
|
|
166
180
|
end
|
|
167
181
|
end
|
|
168
182
|
|
|
@@ -16,7 +16,7 @@ module FastlaneCore
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
# Level Important: Can be used to show warnings to the user
|
|
19
|
-
# not
|
|
19
|
+
# not necessarily negative, but something the user should
|
|
20
20
|
# be aware of.
|
|
21
21
|
#
|
|
22
22
|
# By default those messages are shown in yellow
|
|
@@ -31,7 +31,7 @@ module Match
|
|
|
31
31
|
|
|
32
32
|
c.action do |args, options|
|
|
33
33
|
if args.count > 0
|
|
34
|
-
FastlaneCore::UI.user_error!("Please run `match [type]`, allowed values: development, adhoc or appstore")
|
|
34
|
+
FastlaneCore::UI.user_error!("Please run `fastlane match [type]`, allowed values: development, adhoc or appstore")
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
params = FastlaneCore::Configuration.create(Match::Options.available_options, options.__hash__)
|
|
@@ -97,7 +97,7 @@ module Match
|
|
|
97
97
|
c.syntax = "fastlane match nuke"
|
|
98
98
|
c.description = "Delete all certificates and provisioning profiles from the Apple Dev Portal"
|
|
99
99
|
c.action do |args, options|
|
|
100
|
-
FastlaneCore::UI.user_error!("Please run `match nuke [type], allowed values: distribution and development. For the 'adhoc' type, please use 'distribution' instead.")
|
|
100
|
+
FastlaneCore::UI.user_error!("Please run `fastlane match nuke [type], allowed values: distribution and development. For the 'adhoc' type, please use 'distribution' instead.")
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
|
|
@@ -20,7 +20,7 @@ module Match
|
|
|
20
20
|
cert_path = Cert::Runner.new.launch
|
|
21
21
|
rescue => ex
|
|
22
22
|
if ex.to_s.include?("You already have a current")
|
|
23
|
-
UI.user_error!("Could not create a new certificate as you reached the maximum number of certificates for this account. You can use the `match nuke` command to revoke your existing certificates. More information https://github.com/fastlane/fastlane/tree/master/match")
|
|
23
|
+
UI.user_error!("Could not create a new certificate as you reached the maximum number of certificates for this account. You can use the `fastlane match nuke` command to revoke your existing certificates. More information https://github.com/fastlane/fastlane/tree/master/match")
|
|
24
24
|
else
|
|
25
25
|
raise ex
|
|
26
26
|
end
|
data/match/lib/match/nuke.rb
CHANGED
|
@@ -23,7 +23,7 @@ module Match
|
|
|
23
23
|
print_tables
|
|
24
24
|
|
|
25
25
|
if params[:readonly]
|
|
26
|
-
UI.user_error!("`match nuke` doesn't delete anything when running with --readonly enabled")
|
|
26
|
+
UI.user_error!("`fastlane match nuke` doesn't delete anything when running with --readonly enabled")
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
if (self.certs + self.profiles + self.files).count > 0
|
data/match/lib/match/runner.rb
CHANGED
|
@@ -57,7 +57,7 @@ module Match
|
|
|
57
57
|
UI.success "All required keys, certificates and provisioning profiles are installed 🙌".green
|
|
58
58
|
rescue Spaceship::Client::UnexpectedResponse, Spaceship::Client::InvalidUserCredentialsError, Spaceship::Client::NoUserCredentialsError => ex
|
|
59
59
|
UI.error("An error occured while verifying your certificates and profiles with the Apple Developer Portal.")
|
|
60
|
-
UI.error("If you already have your certificates stored in git, you can run `match` in readonly mode")
|
|
60
|
+
UI.error("If you already have your certificates stored in git, you can run `fastlane match` in readonly mode")
|
|
61
61
|
UI.error("to just install the certificates and profiles without accessing the Dev Portal.")
|
|
62
62
|
UI.error("To do so, just pass `readonly: true` to your match call.")
|
|
63
63
|
raise ex
|
|
@@ -9,7 +9,7 @@ module Match
|
|
|
9
9
|
keychain_entry = CredentialsManager::AccountManager.new(user: user)
|
|
10
10
|
|
|
11
11
|
if keychain_entry.password(ask_if_missing: false).to_s.length == 0
|
|
12
|
-
UI.important("You can also run `match` in readonly mode to not require any access to the")
|
|
12
|
+
UI.important("You can also run `fastlane match` in readonly mode to not require any access to the")
|
|
13
13
|
UI.important("Developer Portal. This way you only share the keys and credentials")
|
|
14
14
|
UI.command("fastlane match --readonly")
|
|
15
15
|
UI.important("More information https://github.com/fastlane/fastlane/tree/master/match#access-control")
|
|
@@ -33,7 +33,7 @@ module Match
|
|
|
33
33
|
UI.error("================================================================")
|
|
34
34
|
available_apps = Spaceship.app.all.collect { |a| "#{a.bundle_id} (#{a.name})" }
|
|
35
35
|
UI.message("Available apps:\n- #{available_apps.join("\n- ")}")
|
|
36
|
-
UI.error("Make sure to run `match` with the same user and team every time.")
|
|
36
|
+
UI.error("Make sure to run `fastlane match` with the same user and team every time.")
|
|
37
37
|
UI.user_error!("Couldn't find bundle identifier '#{app_identifier}' for the user '#{username}'")
|
|
38
38
|
end
|
|
39
39
|
|
|
@@ -47,7 +47,7 @@ module Match
|
|
|
47
47
|
UI.error("for the user #{username}")
|
|
48
48
|
UI.error("Make sure to use the same user and team every time you run 'match' for this")
|
|
49
49
|
UI.error("Git repository. This might be caused by revoking the certificate on the Dev Portal")
|
|
50
|
-
UI.user_error!("To reset the certificates of your Apple account, you can use the `match nuke` feature, more information on https://github.com/fastlane/fastlane/tree/master/match")
|
|
50
|
+
UI.user_error!("To reset the certificates of your Apple account, you can use the `fastlane match nuke` feature, more information on https://github.com/fastlane/fastlane/tree/master/match")
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def profile_exists(username: nil, uuid: nil)
|
|
@@ -60,7 +60,7 @@ module Match
|
|
|
60
60
|
UI.error("for the user #{username}")
|
|
61
61
|
UI.error("Make sure to use the same user and team every time you run 'match' for this")
|
|
62
62
|
UI.error("Git repository. This might be caused by deleting the provisioning profile on the Dev Portal")
|
|
63
|
-
UI.user_error!("To reset the provisioning profiles of your Apple account, you can use the `match nuke` feature, more information on https://github.com/fastlane/fastlane/tree/master/match")
|
|
63
|
+
UI.user_error!("To reset the provisioning profiles of your Apple account, you can use the `fastlane match nuke` feature, more information on https://github.com/fastlane/fastlane/tree/master/match")
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
if found.valid?
|
|
@@ -60,6 +60,8 @@ module Sigh
|
|
|
60
60
|
c.syntax = 'fastlane sigh download_all'
|
|
61
61
|
c.description = 'Downloads all valid provisioning profiles'
|
|
62
62
|
|
|
63
|
+
FastlaneCore::CommanderGenerator.new.generate(Sigh::Options.available_options, command: c)
|
|
64
|
+
|
|
63
65
|
c.action do |args, options|
|
|
64
66
|
Sigh.config = FastlaneCore::Configuration.create(Sigh::Options.available_options, options.__hash__)
|
|
65
67
|
Sigh::Manager.download_all
|
|
@@ -70,6 +72,8 @@ module Sigh
|
|
|
70
72
|
c.syntax = 'fastlane sigh repair'
|
|
71
73
|
c.description = 'Repairs all expired or invalid provisioning profiles'
|
|
72
74
|
|
|
75
|
+
FastlaneCore::CommanderGenerator.new.generate(Sigh::Options.available_options, command: c)
|
|
76
|
+
|
|
73
77
|
c.action do |args, options|
|
|
74
78
|
Sigh.config = FastlaneCore::Configuration.create(Sigh::Options.available_options, options.__hash__)
|
|
75
79
|
require 'sigh/repair'
|
|
@@ -82,7 +82,7 @@ module Sigh
|
|
|
82
82
|
UI.message "#{profiles_soon.count} are valid but will expire within 30 days".yellow
|
|
83
83
|
UI.message "#{profiles_valid.count} are valid".green
|
|
84
84
|
|
|
85
|
-
UI.message "You can remove all expired profiles using `sigh manage -e`" if profiles_expired.count > 0
|
|
85
|
+
UI.message "You can remove all expired profiles using `fastlane sigh manage -e`" if profiles_expired.count > 0
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
def self.profile_info(profile)
|
|
@@ -298,7 +298,7 @@ module Snapshot
|
|
|
298
298
|
content = File.read(path)
|
|
299
299
|
|
|
300
300
|
unless content.include?(current_version)
|
|
301
|
-
UI.error "Your '#{path}' is outdated, please run `snapshot update`"
|
|
301
|
+
UI.error "Your '#{path}' is outdated, please run `fastlane snapshot update`"
|
|
302
302
|
UI.error "to update your Helper file"
|
|
303
303
|
UI.user_error!("Please update your Snapshot Helper file")
|
|
304
304
|
end
|
|
@@ -44,7 +44,7 @@ module Snapshot
|
|
|
44
44
|
|
|
45
45
|
build_settings = []
|
|
46
46
|
build_settings << "FASTLANE_SNAPSHOT=YES"
|
|
47
|
-
build_settings << "TEST_TARGET_NAME
|
|
47
|
+
build_settings << "TEST_TARGET_NAME=#{config[:test_target_name].shellescape}" if config[:test_target_name]
|
|
48
48
|
|
|
49
49
|
build_settings
|
|
50
50
|
end
|
|
@@ -5,7 +5,7 @@ module Supply
|
|
|
5
5
|
|
|
6
6
|
client.begin_edit(package_name: Supply.config[:package_name])
|
|
7
7
|
|
|
8
|
-
UI.user_error!("No local metadata found, make sure to run `supply init` to setup supply") unless metadata_path || Supply.config[:apk] || Supply.config[:apk_paths]
|
|
8
|
+
UI.user_error!("No local metadata found, make sure to run `fastlane supply init` to setup supply") unless metadata_path || Supply.config[:apk] || Supply.config[:apk_paths]
|
|
9
9
|
|
|
10
10
|
if metadata_path
|
|
11
11
|
UI.user_error!("Could not find folder #{metadata_path}") unless File.directory? metadata_path
|
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: 2.16.0
|
|
4
|
+
version: 2.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Felix Krause
|
|
@@ -756,7 +756,6 @@ files:
|
|
|
756
756
|
- fastlane/lib/assets/Actions.md.erb
|
|
757
757
|
- fastlane/lib/assets/AppfileTemplate
|
|
758
758
|
- fastlane/lib/assets/AppfileTemplateAndroid
|
|
759
|
-
- fastlane/lib/assets/AvailablePlugins.md.erb
|
|
760
759
|
- fastlane/lib/assets/DefaultFastfileTemplate
|
|
761
760
|
- fastlane/lib/assets/FastfileTemplateAndroid
|
|
762
761
|
- fastlane/lib/assets/completions/completion.bash
|
|
@@ -1295,23 +1294,23 @@ metadata: {}
|
|
|
1295
1294
|
post_install_message:
|
|
1296
1295
|
rdoc_options: []
|
|
1297
1296
|
require_paths:
|
|
1298
|
-
-
|
|
1299
|
-
- pem/lib
|
|
1300
|
-
- spaceship/lib
|
|
1297
|
+
- cert/lib
|
|
1301
1298
|
- credentials_manager/lib
|
|
1302
|
-
-
|
|
1299
|
+
- deliver/lib
|
|
1303
1300
|
- fastlane/lib
|
|
1301
|
+
- fastlane_core/lib
|
|
1302
|
+
- frameit/lib
|
|
1304
1303
|
- gym/lib
|
|
1304
|
+
- match/lib
|
|
1305
|
+
- pem/lib
|
|
1306
|
+
- pilot/lib
|
|
1307
|
+
- produce/lib
|
|
1308
|
+
- scan/lib
|
|
1305
1309
|
- screengrab/lib
|
|
1306
1310
|
- sigh/lib
|
|
1307
|
-
- frameit/lib
|
|
1308
|
-
- produce/lib
|
|
1309
|
-
- match/lib
|
|
1310
|
-
- cert/lib
|
|
1311
|
-
- deliver/lib
|
|
1312
|
-
- fastlane_core/lib
|
|
1313
|
-
- supply/lib
|
|
1314
1311
|
- snapshot/lib
|
|
1312
|
+
- spaceship/lib
|
|
1313
|
+
- supply/lib
|
|
1315
1314
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
1316
1315
|
requirements:
|
|
1317
1316
|
- - ">="
|
|
@@ -1319,14 +1318,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1319
1318
|
version: 2.0.0
|
|
1320
1319
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1321
1320
|
requirements:
|
|
1322
|
-
- - "
|
|
1321
|
+
- - ">="
|
|
1323
1322
|
- !ruby/object:Gem::Version
|
|
1324
|
-
version:
|
|
1323
|
+
version: '0'
|
|
1325
1324
|
requirements: []
|
|
1326
1325
|
rubyforge_project:
|
|
1327
|
-
rubygems_version: 2.
|
|
1326
|
+
rubygems_version: 2.5.1
|
|
1328
1327
|
signing_key:
|
|
1329
1328
|
specification_version: 4
|
|
1330
1329
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
|
1331
1330
|
Android apps
|
|
1332
1331
|
test_files: []
|
|
1332
|
+
has_rdoc:
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
### Available Plugins
|
|
2
|
-
|
|
3
|
-
To get an up to date list of all available plugins run
|
|
4
|
-
|
|
5
|
-
```no-highlight
|
|
6
|
-
fastlane search_plugins
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
To search for a specific plugin
|
|
10
|
-
|
|
11
|
-
```no-highlight
|
|
12
|
-
fastlane search_plugins [search_query]
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
You can find more information about how to start using plugins in [Plugins.md](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Plugins.md).
|
|
16
|
-
|
|
17
|
-
#### List of plugins
|
|
18
|
-
|
|
19
|
-
| Plugin Name | Description | Downloads
|
|
20
|
-
--------------|-------------|----------|----------
|
|
21
|
-
<% @plugins.each do |current| %>
|
|
22
|
-
<%= current.linked_title %> | <%= current.info %> | <%= current.downloads %>
|
|
23
|
-
|
|
24
|
-
<% end %>
|