fastlane 2.9.0 → 2.10.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/README.md +1 -1
- data/cert/lib/cert/options.rb +11 -1
- data/cert/lib/cert/runner.rb +11 -3
- data/credentials_manager/lib/credentials_manager/account_manager.rb +1 -1
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +2 -2
- data/fastlane/README.md +1 -1
- data/fastlane/lib/assets/completions/completion.bash +3 -1
- data/fastlane/lib/assets/completions/completion.sh +4 -1
- data/fastlane/lib/assets/completions/completion.zsh +2 -0
- data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
- data/fastlane/lib/fastlane/actions/clipboard.rb +1 -1
- data/fastlane/lib/fastlane/actions/deploygate.rb +2 -2
- data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
- data/fastlane/lib/fastlane/actions/sonar.rb +10 -3
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +23 -6
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/fast_file.rb +2 -2
- data/fastlane/lib/fastlane/lane_manager.rb +5 -2
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -0
- data/fastlane/lib/fastlane/runner.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +2 -2
- data/fastlane_core/lib/fastlane_core/print_table.rb +6 -0
- data/frameit/lib/frameit/strings_parser.rb +1 -1
- data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +3 -0
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/options.rb +6 -1
- data/pem/README.md +1 -1
- data/scan/lib/scan/options.rb +14 -2
- data/scan/lib/scan/test_command_generator.rb +3 -2
- data/screengrab/lib/screengrab/options.rb +11 -1
- data/screengrab/lib/screengrab/runner.rb +48 -23
- data/sigh/lib/assets/resign.sh +75 -37
- data/sigh/lib/sigh/runner.rb +29 -9
- data/snapshot/lib/assets/SnapshotHelper.swift +4 -0
- data/snapshot/lib/assets/SnapshotHelper2-3.swift +4 -0
- data/snapshot/lib/snapshot/dependency_checker.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +6 -0
- data/snapshot/lib/snapshot/runner.rb +15 -0
- data/spaceship/lib/spaceship/client.rb +1 -1
- data/spaceship/lib/spaceship/portal/certificate.rb +2 -1
- data/spaceship/lib/spaceship/portal/device.rb +3 -1
- data/spaceship/lib/spaceship/portal/portal_client.rb +2 -2
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c750b0e8526d5e3e4d0d064a214ddcbf30fda96e
|
4
|
+
data.tar.gz: 341bebabdf36d4edacbd49c5275da7c42d0e9664
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 389af2d4b9bf553315cc479f8997de9464729ce67d28c19ca020f56934b138a4f17d2fab362daf23a217b7a07f7273588329ac04adabd71aeee2bb79ea2adf46
|
7
|
+
data.tar.gz: 4e2e5b357ce222b78c4fee27fecd527d162bec3e6954f32451898b819e4eda3a6a5547b33a177f017d0b8be5a3b73ad0d9707a36826b4277ab8e7581d7a685ac
|
data/README.md
CHANGED
@@ -46,7 +46,7 @@ Then to deploy a new 'beta' version of your app just run
|
|
46
46
|
:ghost: | [Jenkins Integration](https://docs.fastlane.tools/best-practices/continuous-integration/#jenkins-integration): Show output directly in test results
|
47
47
|
:book: | Automatically generate Markdown documentation of your lane configurations
|
48
48
|
:hatching_chick: | Over 170 built-in integrations available
|
49
|
-
:computer: | Support for iOS,
|
49
|
+
:computer: | Support for iOS, macOS, and Android apps
|
50
50
|
:octocat: | Full Git and Mercurial support
|
51
51
|
|
52
52
|
<hr />
|
data/cert/lib/cert/options.rb
CHANGED
@@ -60,7 +60,17 @@ module Cert
|
|
60
60
|
env_name: "CERT_KEYCHAIN_PASSWORD",
|
61
61
|
sensitive: true,
|
62
62
|
description: "This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password",
|
63
|
-
optional: true)
|
63
|
+
optional: true),
|
64
|
+
FastlaneCore::ConfigItem.new(key: :platform,
|
65
|
+
env_name: "CERT_PLATFORM",
|
66
|
+
description: "Set the provisioning profile's platform (ios, macos)",
|
67
|
+
is_string: false,
|
68
|
+
default_value: "ios",
|
69
|
+
verify_block: proc do |value|
|
70
|
+
value = value.to_s
|
71
|
+
pt = %w(macos ios)
|
72
|
+
UI.user_error!("Unsupported platform, must be: #{pt}") unless pt.include?(value)
|
73
|
+
end)
|
64
74
|
]
|
65
75
|
end
|
66
76
|
end
|
data/cert/lib/cert/runner.rb
CHANGED
@@ -123,9 +123,17 @@ module Cert
|
|
123
123
|
|
124
124
|
# The kind of certificate we're interested in
|
125
125
|
def certificate_type
|
126
|
-
|
127
|
-
|
128
|
-
|
126
|
+
case Cert.config[:platform].to_s
|
127
|
+
when 'ios', 'tvos'
|
128
|
+
cert_type = Spaceship.certificate.production
|
129
|
+
cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house?
|
130
|
+
cert_type = Spaceship.certificate.development if Cert.config[:development]
|
131
|
+
|
132
|
+
when 'macos'
|
133
|
+
cert_type = Spaceship.certificate.mac_app_distribution
|
134
|
+
cert_type = Spaceship.certificate.mac_development if Cert.config[:development]
|
135
|
+
|
136
|
+
end
|
129
137
|
|
130
138
|
cert_type
|
131
139
|
end
|
@@ -101,7 +101,7 @@ module CredentialsManager
|
|
101
101
|
|
102
102
|
def ask_for_login
|
103
103
|
puts "-------------------------------------------------------------------------------------".green
|
104
|
-
puts "The login information you enter will be stored in your
|
104
|
+
puts "The login information you enter will be stored in your macOS Keychain".green
|
105
105
|
if default_prefix?
|
106
106
|
# We don't want to show this message, if we ask for the application specific password
|
107
107
|
# which has a different prefix
|
@@ -40,9 +40,9 @@ module CredentialsManager
|
|
40
40
|
'you should turn off smart quotes in your editor of choice.'.red
|
41
41
|
end
|
42
42
|
|
43
|
-
# rubocop:disable
|
43
|
+
# rubocop:disable Security/Eval
|
44
44
|
eval(content)
|
45
|
-
# rubocop:enable
|
45
|
+
# rubocop:enable Security/Eval
|
46
46
|
|
47
47
|
print_debug_information(path: full_path) if $verbose
|
48
48
|
end
|
data/fastlane/README.md
CHANGED
@@ -89,7 +89,7 @@ fastlane release
|
|
89
89
|
:ghost: | [Jenkins Integration](https://docs.fastlane.tools/best-practices/continuous-integration/#jenkins-integration): Show the output directly in the Jenkins test results
|
90
90
|
:book: | Automatically generate a markdown documentation of your lane config
|
91
91
|
:hatching_chick: | Over 170 built-in integrations available
|
92
|
-
:computer: | Support for
|
92
|
+
:computer: | Support for iOS, macOS and Android apps
|
93
93
|
:octocat: | Full git and mercurial support
|
94
94
|
|
95
95
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
1
3
|
_fastlane_complete() {
|
2
4
|
COMPREPLY=()
|
3
5
|
local word="${COMP_WORDS[COMP_CWORD]}"
|
@@ -13,7 +15,7 @@ _fastlane_complete() {
|
|
13
15
|
fi
|
14
16
|
|
15
17
|
# parse 'beta' out of 'lane :beta do', etc
|
16
|
-
completions
|
18
|
+
completions=$(grep "^\s*lane \:" $file | awk -F ':' '{print $2}' | awk -F ' ' '{print $1}')
|
17
19
|
|
18
20
|
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
|
19
21
|
}
|
@@ -1,7 +1,10 @@
|
|
1
1
|
#!/bin/sh
|
2
|
+
# shellcheck disable=SC2155
|
3
|
+
# shellcheck disable=SC1090
|
4
|
+
# shellcheck disable=SC2039
|
5
|
+
|
2
6
|
if [ -n "$BASH_VERSION" ]; then
|
3
7
|
source ~/.fastlane/completions/completion.bash
|
4
|
-
|
5
8
|
elif [ -n "$ZSH_VERSION" ]; then
|
6
9
|
source ~/.fastlane/completions/completion.zsh
|
7
10
|
fi
|
@@ -118,13 +118,13 @@ module Fastlane
|
|
118
118
|
UI.success "Successfully loaded custom action '#{file}'." if $verbose
|
119
119
|
else
|
120
120
|
UI.error "Could not find method 'run' in class #{class_name}."
|
121
|
-
UI.error 'For more information, check out the docs: https://
|
121
|
+
UI.error 'For more information, check out the docs: https://docs.fastlane.tools/'
|
122
122
|
UI.user_error!("Action '#{file_name}' is damaged!", show_github_issues: true)
|
123
123
|
end
|
124
124
|
rescue NameError
|
125
125
|
# Action not found
|
126
126
|
UI.error "Could not find '#{class_name}' class defined."
|
127
|
-
UI.error 'For more information, check out the docs: https://
|
127
|
+
UI.error 'For more information, check out the docs: https://docs.fastlane.tools/'
|
128
128
|
UI.user_error!("Action '#{file_name}' is damaged!", show_github_issues: true)
|
129
129
|
end
|
130
130
|
end
|
@@ -33,7 +33,7 @@ module Fastlane
|
|
33
33
|
|
34
34
|
def self.example_code
|
35
35
|
[
|
36
|
-
'clipboard(value: "https://
|
36
|
+
'clipboard(value: "https://docs.fastlane.tools/")',
|
37
37
|
'clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || "")'
|
38
38
|
]
|
39
39
|
end
|
@@ -48,7 +48,7 @@ module Fastlane
|
|
48
48
|
[:message, :distribution_key, :release_note, :disable_notify].include? key
|
49
49
|
end
|
50
50
|
|
51
|
-
|
51
|
+
UI.user_error!('missing `ipa` and `apk`. deploygate action needs least one.') unless binary
|
52
52
|
|
53
53
|
return binary if Helper.test?
|
54
54
|
|
@@ -122,7 +122,7 @@ module Fastlane
|
|
122
122
|
env_name: "DEPLOYGATE_USER",
|
123
123
|
description: "Target username or organization name",
|
124
124
|
verify_block: proc do |value|
|
125
|
-
UI.user_error!("No User for
|
125
|
+
UI.user_error!("No User for DeployGate given, pass using `user: 'user'`") unless value.to_s.length > 0
|
126
126
|
end),
|
127
127
|
FastlaneCore::ConfigItem.new(key: :ipa,
|
128
128
|
env_name: "DEPLOYGATE_IPA_PATH",
|
@@ -77,7 +77,7 @@ module Fastlane
|
|
77
77
|
"Original Error:",
|
78
78
|
" => " + ex.to_s,
|
79
79
|
"A build error occured. You are using legacy `shenzhen` for building",
|
80
|
-
"it is recommended to upgrade to
|
80
|
+
"it is recommended to upgrade to _gym_: ",
|
81
81
|
"https://github.com/fastlane/fastlane/tree/master/gym",
|
82
82
|
core_command,
|
83
83
|
"-------------------------------------------------------"
|
@@ -227,7 +227,7 @@ module Fastlane
|
|
227
227
|
|
228
228
|
def self.deprecated_notes
|
229
229
|
"You are using legacy `shenzhen` to build your app, which will be removed soon!\n" \
|
230
|
-
"It is recommended to upgrade to
|
230
|
+
"It is recommended to upgrade to _gym_\n" \
|
231
231
|
"To do so, just replace `ipa(...)` with `gym(...)` in your Fastfile\n" \
|
232
232
|
"To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/#"
|
233
233
|
end
|
@@ -18,6 +18,7 @@ module Fastlane
|
|
18
18
|
sonar_scanner_args << "-Dsonar.sources=\"#{params[:sources_path]}\"" if params[:sources_path]
|
19
19
|
sonar_scanner_args << "-Dsonar.language=\"#{params[:project_language]}\"" if params[:project_language]
|
20
20
|
sonar_scanner_args << "-Dsonar.sourceEncoding=\"#{params[:source_encoding]}\"" if params[:source_encoding]
|
21
|
+
sonar_scanner_args << "-Dsonar.login=\"#{params[:sonar_login]}\"" if params[:sonar_login]
|
21
22
|
sonar_scanner_args << params[:sonar_runner_args] if params[:sonar_runner_args]
|
22
23
|
|
23
24
|
command = [
|
@@ -25,8 +26,8 @@ module Fastlane
|
|
25
26
|
'sonar-scanner',
|
26
27
|
sonar_scanner_args
|
27
28
|
].join(' ')
|
28
|
-
|
29
|
-
|
29
|
+
# hide command, as it may contain credentials
|
30
|
+
Fastlane::Actions.sh_control_output(command, print_command: false, print_command_output: true)
|
30
31
|
end
|
31
32
|
|
32
33
|
def self.verify_sonar_scanner_binary
|
@@ -84,7 +85,13 @@ module Fastlane
|
|
84
85
|
FastlaneCore::ConfigItem.new(key: :sonar_runner_args,
|
85
86
|
env_name: "FL_SONAR_RUNNER_ARGS",
|
86
87
|
description: "Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading `-D` e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\"",
|
87
|
-
optional: true)
|
88
|
+
optional: true),
|
89
|
+
FastlaneCore::ConfigItem.new(key: :sonar_login,
|
90
|
+
env_name: "FL_SONAR_LOGIN",
|
91
|
+
description: "Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e)",
|
92
|
+
optional: true,
|
93
|
+
is_string: true,
|
94
|
+
sensitive: true)
|
88
95
|
]
|
89
96
|
end
|
90
97
|
|
@@ -78,7 +78,7 @@ module Fastlane
|
|
78
78
|
|
79
79
|
def self.details
|
80
80
|
[
|
81
|
-
"You should check out the code signing gide before using this action: https://
|
81
|
+
"You should check out the code signing gide before using this action: https://docs.fastlane.tools/codesigning/getting-started/",
|
82
82
|
"This action retrieves a provisioning profile UUID from a provisioning profile (.mobileprovision) to set",
|
83
83
|
"up the xcode projects' code signing settings in *.xcodeproj/project.pbxproj",
|
84
84
|
"The `target_filter` value can be used to only update code signing for specified targets",
|
@@ -29,6 +29,7 @@ module Fastlane
|
|
29
29
|
destination_timeout: "-destination-timeout",
|
30
30
|
dry_run: "-dry-run",
|
31
31
|
enableAddressSanitizer: "-enableAddressSanitizer",
|
32
|
+
enableThreadSanitizer: "-enableThreadSanitizer",
|
32
33
|
enableCodeCoverage: "-enableCodeCoverage",
|
33
34
|
export_archive: "-exportArchive",
|
34
35
|
export_format: "-exportFormat",
|
@@ -98,11 +99,15 @@ module Fastlane
|
|
98
99
|
# By default we use xcpretty
|
99
100
|
raw_buildlog = false
|
100
101
|
|
102
|
+
# By default we don't pass the utf flag
|
103
|
+
xcpretty_utf = false
|
104
|
+
|
101
105
|
if params
|
102
106
|
# Operation bools
|
103
107
|
archiving = params.key? :archive
|
104
108
|
exporting = params.key? :export_archive
|
105
109
|
testing = params.key? :test
|
110
|
+
xcpretty_utf = params[:xcpretty_utf]
|
106
111
|
|
107
112
|
if params.key? :raw_buildlog
|
108
113
|
raw_buildlog = params[:raw_buildlog]
|
@@ -147,6 +152,9 @@ module Fastlane
|
|
147
152
|
if params.key? :enable_address_sanitizer
|
148
153
|
params[:enableAddressSanitizer] = params[:enable_address_sanitizer] ? 'YES' : 'NO'
|
149
154
|
end
|
155
|
+
if params.key? :enable_thread_sanitizer
|
156
|
+
params[:enableThreadSanitizer] = params[:enable_thread_sanitizer] ? 'YES' : 'NO'
|
157
|
+
end
|
150
158
|
if params.key? :enable_code_coverage
|
151
159
|
params[:enableCodeCoverage] = params[:enable_code_coverage] ? 'YES' : 'NO'
|
152
160
|
end
|
@@ -248,6 +256,9 @@ module Fastlane
|
|
248
256
|
|
249
257
|
xcpretty_command = ""
|
250
258
|
xcpretty_command = "| xcpretty #{xcpretty_args}" unless raw_buildlog
|
259
|
+
unless raw_buildlog
|
260
|
+
xcpretty_command = "#{xcpretty_command} --utf" if xcpretty_utf
|
261
|
+
end
|
251
262
|
|
252
263
|
pipe_command = "| tee '#{buildlog_path}/xcodebuild.log' #{xcpretty_command}"
|
253
264
|
|
@@ -365,7 +376,8 @@ module Fastlane
|
|
365
376
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
366
377
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
367
378
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
368
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
379
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
380
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
369
381
|
]
|
370
382
|
end
|
371
383
|
|
@@ -417,7 +429,8 @@ module Fastlane
|
|
417
429
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
418
430
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
419
431
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
420
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
432
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
433
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
421
434
|
]
|
422
435
|
end
|
423
436
|
end
|
@@ -462,7 +475,8 @@ module Fastlane
|
|
462
475
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
463
476
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
464
477
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
465
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
478
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
479
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
466
480
|
]
|
467
481
|
end
|
468
482
|
end
|
@@ -507,7 +521,8 @@ module Fastlane
|
|
507
521
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
508
522
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
509
523
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
510
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
524
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
525
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
511
526
|
]
|
512
527
|
end
|
513
528
|
end
|
@@ -548,7 +563,8 @@ module Fastlane
|
|
548
563
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
549
564
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
550
565
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
551
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
566
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
567
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
552
568
|
]
|
553
569
|
end
|
554
570
|
|
@@ -597,7 +613,8 @@ module Fastlane
|
|
597
613
|
['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
|
598
614
|
['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
|
599
615
|
['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
|
600
|
-
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\'']
|
616
|
+
['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
|
617
|
+
['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
|
601
618
|
]
|
602
619
|
end
|
603
620
|
|
@@ -37,7 +37,7 @@ module Fastlane
|
|
37
37
|
|
38
38
|
output << "This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run."
|
39
39
|
output << "More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools)."
|
40
|
-
output << "The documentation of fastlane can be found on [
|
40
|
+
output << "The documentation of fastlane can be found on [https://docs.fastlane.tools](https://docs.fastlane.tools)."
|
41
41
|
output << ""
|
42
42
|
|
43
43
|
File.write(output_path, output.join("\n"))
|
@@ -50,9 +50,9 @@ module Fastlane
|
|
50
50
|
# is this always clear and safe to declare any local variables we want, because the eval function uses the instance scope
|
51
51
|
# instead of local.
|
52
52
|
|
53
|
-
# rubocop:disable
|
53
|
+
# rubocop:disable Security/Eval
|
54
54
|
eval(data, parsing_binding, relative_path) # using eval is ok for this case
|
55
|
-
# rubocop:enable
|
55
|
+
# rubocop:enable Security/Eval
|
56
56
|
rescue SyntaxError => ex
|
57
57
|
line = ex.to_s.match(/#{Regexp.escape(relative_path)}:(\d+)/)[1]
|
58
58
|
UI.user_error!("Syntax error in your Fastfile on line #{line}: #{ex}")
|
@@ -162,8 +162,11 @@ module Fastlane
|
|
162
162
|
end
|
163
163
|
|
164
164
|
def self.load_dot_env(env)
|
165
|
-
#
|
166
|
-
|
165
|
+
# find the first directory of [fastlane, its parent] containing dotenv files
|
166
|
+
path = FastlaneCore::FastlaneFolder.path
|
167
|
+
search_paths = [path]
|
168
|
+
search_paths << path + "/.." unless path.nil?
|
169
|
+
search_paths.compact!
|
167
170
|
base_path = search_paths.find do |dir|
|
168
171
|
Dir.glob(File.join(dir, '*.env*'), File::FNM_DOTMATCH).count > 0
|
169
172
|
end
|
@@ -153,7 +153,7 @@ module Fastlane
|
|
153
153
|
else
|
154
154
|
# So there is no plugin under that name, so just show the error message generated by the lane switch
|
155
155
|
UI.verbose(caller.join("\n"))
|
156
|
-
UI.user_error!("Could not find action or
|
156
|
+
UI.user_error!("Could not find action, lane or variable '#{method_sym}'. Check out the documentation for more details: https://docs.fastlane.tools/actions")
|
157
157
|
end
|
158
158
|
end
|
159
159
|
end
|
@@ -26,7 +26,7 @@ module FastlaneCore
|
|
26
26
|
"You can run `security find-identity -v -p codesigning` to get this output.",
|
27
27
|
"This Stack Overflow thread has more information: https://stackoverflow.com/q/35390072/774.",
|
28
28
|
"(Check in Keychain Access for an expired WWDR certificate: https://stackoverflow.com/a/35409835/774 has more info.)"
|
29
|
-
].join(
|
29
|
+
].join("\n"))
|
30
30
|
end
|
31
31
|
|
32
32
|
ids = []
|
@@ -21,9 +21,9 @@ module FastlaneCore
|
|
21
21
|
end
|
22
22
|
|
23
23
|
begin
|
24
|
-
# rubocop:disable
|
24
|
+
# rubocop:disable Security/Eval
|
25
25
|
eval(content) # this is okay in this case
|
26
|
-
# rubocop:enable
|
26
|
+
# rubocop:enable Security/Eval
|
27
27
|
|
28
28
|
print_resulting_config_values(path) # only on success
|
29
29
|
rescue SyntaxError => ex
|
@@ -10,6 +10,12 @@ module FastlaneCore
|
|
10
10
|
options = {}
|
11
11
|
unless config.nil?
|
12
12
|
if config.kind_of?(FastlaneCore::Configuration)
|
13
|
+
# find sensitive options and mask them by default
|
14
|
+
config.available_options.each do |config_item|
|
15
|
+
if config_item.sensitive
|
16
|
+
mask_keys << config_item.key.to_s
|
17
|
+
end
|
18
|
+
end
|
13
19
|
options = config.values(ask: false)
|
14
20
|
else
|
15
21
|
options = config
|
@@ -8,7 +8,7 @@ module Frameit
|
|
8
8
|
result = {}
|
9
9
|
|
10
10
|
# A .strings file is UTF-16 encoded. We only want to deal with UTF-8
|
11
|
-
content = `iconv -f UTF-16 -t UTF-8 '#{path}'`
|
11
|
+
content = `iconv -f UTF-16 -t UTF-8 '#{path}' 2>&1`
|
12
12
|
|
13
13
|
content.split("\n").each_with_index do |line, index|
|
14
14
|
begin
|