fastlane 2.9.0 → 2.10.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/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
|