fastlane 2.75.0.beta.20180109010003 → 2.75.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/credentials_manager/lib/credentials_manager/account_manager.rb +11 -9
- data/deliver/lib/assets/DeliverfileDefault +2 -9
- data/deliver/lib/assets/DeliverfileDefault.swift +2 -12
- data/deliver/lib/deliver/setup.rb +1 -4
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/assets/.DS_Store +0 -0
- data/fastlane/lib/assets/AppfileTemplate +5 -6
- data/fastlane/lib/assets/AppfileTemplate.swift +3 -4
- data/fastlane/lib/assets/DefaultFastfileTemplate +10 -67
- data/fastlane/lib/assets/DefaultFastfileTemplate.swift +8 -66
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/get_build_number.rb +7 -1
- data/fastlane/lib/fastlane/commands_generator.rb +11 -19
- data/fastlane/lib/fastlane/setup/.DS_Store +0 -0
- data/fastlane/lib/fastlane/setup/setup.rb +247 -34
- data/fastlane/lib/fastlane/setup/setup_android.rb +65 -39
- data/fastlane/lib/fastlane/setup/setup_ios.rb +419 -280
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/.DS_Store +0 -0
- data/fastlane_core/lib/fastlane_core/.DS_Store +0 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +3 -1
- data/sigh/lib/assets/resign.sh +0 -1
- data/snapshot/lib/assets/SnapfileTemplate +9 -12
- data/snapshot/lib/snapshot/commands_generator.rb +2 -0
- data/snapshot/lib/snapshot/setup.rb +20 -9
- data/spaceship/lib/spaceship.rb +4 -0
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +3 -3
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +15 -11
- metadata +24 -17
- data/fastlane/lib/assets/FastfileTemplateAndroid +0 -65
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.75.0
|
2
|
+
VERSION = '2.75.0'.freeze
|
3
3
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
4
4
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
5
5
|
RUBOCOP_REQUIREMENT = '0.49.1'.freeze
|
Binary file
|
Binary file
|
@@ -209,6 +209,7 @@ module FastlaneCore
|
|
209
209
|
|
210
210
|
# Returns the value for a certain key. fastlane_core tries to fetch the value from different sources
|
211
211
|
# if 'ask' is true and the value is not present, the user will be prompted to provide a value
|
212
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
212
213
|
def fetch(key, ask: true)
|
213
214
|
UI.user_error!("Key '#{key}' must be a symbol. Example :app_id.") unless key.kind_of?(Symbol)
|
214
215
|
|
@@ -239,7 +240,7 @@ module FastlaneCore
|
|
239
240
|
end
|
240
241
|
|
241
242
|
while value.nil?
|
242
|
-
UI.important("To not be asked about this value, you can specify it using '#{option.key}'")
|
243
|
+
UI.important("To not be asked about this value, you can specify it using '#{option.key}'") if ENV["FASTLANE_ONBOARDING_IN_PROCESS"].to_s.length == 0
|
243
244
|
value = option.sensitive ? UI.password("#{option.description}: ") : UI.input("#{option.description}: ")
|
244
245
|
# Also store this value to use it from now on
|
245
246
|
begin
|
@@ -257,6 +258,7 @@ module FastlaneCore
|
|
257
258
|
# Found out via https://github.com/fastlane/fastlane/issues/11243
|
258
259
|
return self[key]
|
259
260
|
end
|
261
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
260
262
|
|
261
263
|
# Overwrites or sets a new value for a given key
|
262
264
|
# @param key [Symbol] Must be a symbol
|
data/sigh/lib/assets/resign.sh
CHANGED
@@ -301,7 +301,6 @@ fi
|
|
301
301
|
# Set the app name
|
302
302
|
# In Payload directory may be another file except .app file, such as StoreKit folder.
|
303
303
|
# Search the first .app file within the Payload directory
|
304
|
-
# TODO: Replace with glob or call to 'find'; and remove shellcheck directive
|
305
304
|
# shellcheck disable=SC2010
|
306
305
|
APP_NAME=$(ls "$TEMP_DIR/Payload/" | grep ".app$" | head -1)
|
307
306
|
|
@@ -10,12 +10,12 @@
|
|
10
10
|
# "Apple TV 1080p"
|
11
11
|
# ])
|
12
12
|
|
13
|
-
languages([
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
])
|
13
|
+
# languages([
|
14
|
+
# "en-US",
|
15
|
+
# "de-DE",
|
16
|
+
# "it-IT",
|
17
|
+
# ["pt", "pt_BR"] # Portuguese with Brazilian locale
|
18
|
+
# ])
|
19
19
|
|
20
20
|
# The name of the scheme which contains the UI Tests
|
21
21
|
# scheme "SchemeName"
|
@@ -23,14 +23,11 @@ languages([
|
|
23
23
|
# Where should the resulting screenshots be stored?
|
24
24
|
# output_directory "./screenshots"
|
25
25
|
|
26
|
-
#
|
27
|
-
|
28
|
-
# Choose which project/workspace to use
|
29
|
-
# project "./Project.xcodeproj"
|
30
|
-
# workspace "./Project.xcworkspace"
|
26
|
+
# remove the '#' to clear all previously generated screenshots before creating new ones
|
27
|
+
# clear_previous_screenshots true
|
31
28
|
|
32
29
|
# Arguments to pass to the app on launch. See https://docs.fastlane.tools/actions/snapshot/#launch-arguments
|
33
30
|
# launch_arguments(["-favColor red"])
|
34
31
|
|
35
32
|
# For more information about all available options run
|
36
|
-
# fastlane snapshot
|
33
|
+
# fastlane action snapshot
|
@@ -50,6 +50,8 @@ module Snapshot
|
|
50
50
|
path = Snapshot::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
51
51
|
is_swift_fastfile = args.include?("swift")
|
52
52
|
Snapshot::Setup.create(path, is_swift_fastfile: is_swift_fastfile)
|
53
|
+
# We do this outside of `Setup`, as it shouldn't be part of `fastlane init`
|
54
|
+
puts("More information: https://docs.fastlane.tools/getting-started/ios/screenshots/".green)
|
53
55
|
end
|
54
56
|
end
|
55
57
|
|
@@ -3,7 +3,8 @@ require_relative 'module'
|
|
3
3
|
module Snapshot
|
4
4
|
class Setup
|
5
5
|
# This method will take care of creating a Snapfile and other necessary files
|
6
|
-
def self.create(path, is_swift_fastfile: false)
|
6
|
+
def self.create(path, is_swift_fastfile: false, print_instructions_on_failure: false)
|
7
|
+
# First generate all the names & paths
|
7
8
|
if is_swift_fastfile
|
8
9
|
template_path = "#{Snapshot::ROOT}/lib/assets/SnapfileTemplate.swift"
|
9
10
|
snapfile_path = File.join(path, 'Snapfile.swift')
|
@@ -11,24 +12,32 @@ module Snapshot
|
|
11
12
|
template_path = "#{Snapshot::ROOT}/lib/assets/SnapfileTemplate"
|
12
13
|
snapfile_path = File.join(path, 'Snapfile')
|
13
14
|
end
|
15
|
+
snapshot_helper_filename = "SnapshotHelperXcode8.swift"
|
16
|
+
if Helper.xcode_at_least?("9.0")
|
17
|
+
snapshot_helper_filename = "SnapshotHelper.swift"
|
18
|
+
end
|
14
19
|
|
15
20
|
if File.exist?(snapfile_path)
|
16
|
-
|
21
|
+
if print_instructions_on_failure
|
22
|
+
print_instructions(snapshot_helper_filename: snapshot_helper_filename, snapfile_path: snapfile_path)
|
23
|
+
return
|
24
|
+
else
|
25
|
+
UI.user_error!("Snapfile already exists at path '#{snapfile_path}'. Run 'fastlane snapshot' to generate screenshots.")
|
26
|
+
end
|
17
27
|
end
|
18
28
|
|
19
29
|
File.write(snapfile_path, File.read(template_path))
|
20
|
-
snapshot_helper_filename = "SnapshotHelperXcode8.swift"
|
21
|
-
if Helper.xcode_at_least?("9.0")
|
22
|
-
snapshot_helper_filename = "SnapshotHelper.swift"
|
23
|
-
end
|
24
30
|
|
25
31
|
# ensure that upgrade is cause when going from 8 to 9
|
26
32
|
File.write(File.join(path, snapshot_helper_filename), File.read("#{Snapshot::ROOT}/lib/assets/#{snapshot_helper_filename}"))
|
27
33
|
|
28
34
|
puts("✅ Successfully created #{snapshot_helper_filename} '#{File.join(path, snapshot_helper_filename)}'".green)
|
29
35
|
puts("✅ Successfully created new Snapfile at '#{snapfile_path}'".green)
|
30
|
-
|
31
36
|
puts("-------------------------------------------------------".yellow)
|
37
|
+
print_instructions(snapshot_helper_filename: snapshot_helper_filename, snapfile_path: snapfile_path)
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.print_instructions(snapshot_helper_filename: nil, snapfile_path: nil)
|
32
41
|
puts("Open your Xcode project and make sure to do the following:".yellow)
|
33
42
|
puts("1) Add a new UI Test target to your project".yellow)
|
34
43
|
puts("2) Add the ./fastlane/#{snapshot_helper_filename} to your UI Test target".yellow)
|
@@ -39,9 +48,11 @@ module Snapshot
|
|
39
48
|
puts(" setupSnapshot(app)")
|
40
49
|
puts(" app.launch()")
|
41
50
|
puts("")
|
42
|
-
puts("4) Add `snapshot(\"0Launch\")` to wherever you want to
|
51
|
+
puts("4) Add `snapshot(\"0Launch\")` to wherever you want to trigger screenshots".yellow)
|
52
|
+
puts("5) Add a new Xcode scheme for the newly created UITest target".yellow)
|
53
|
+
puts("6) Add a Check to enable the `Shared` box of the newly created scheme".yellow)
|
43
54
|
puts("")
|
44
|
-
puts("More information: https://docs.fastlane.tools/
|
55
|
+
puts("More information: https://docs.fastlane.tools/getting-started/ios/screenshots/".green)
|
45
56
|
end
|
46
57
|
end
|
47
58
|
end
|
data/spaceship/lib/spaceship.rb
CHANGED
@@ -31,7 +31,7 @@ module Spaceship
|
|
31
31
|
# {...}
|
32
32
|
# ]
|
33
33
|
|
34
|
-
# rubocop:disable
|
34
|
+
# rubocop:disable Lint/MissingRequireStatement
|
35
35
|
def self.ci?
|
36
36
|
if Object.const_defined?("FastlaneCore") && FastlaneCore.const_defined?("Helper")
|
37
37
|
return FastlaneCore::Helper.ci?
|
@@ -45,7 +45,7 @@ module Spaceship
|
|
45
45
|
end
|
46
46
|
return true
|
47
47
|
end
|
48
|
-
# rubocop:enable
|
48
|
+
# rubocop:enable Lint/MissingRequireStatement
|
49
49
|
|
50
50
|
def select_team
|
51
51
|
teams = client.teams
|
@@ -93,7 +93,7 @@ module Spaceship
|
|
93
93
|
# User Selection
|
94
94
|
loop do
|
95
95
|
# Multiple teams, user has to select
|
96
|
-
puts("Multiple teams found on the Developer Portal, please enter the number of the team you want to use: ")
|
96
|
+
puts("Multiple teams found on the " + "Developer Portal".yellow + ", please enter the number of the team you want to use: ")
|
97
97
|
teams.each_with_index do |team, i|
|
98
98
|
puts("#{i + 1}) #{team['teamId']} \"#{team['name']}\" (#{team['type']})")
|
99
99
|
end
|
@@ -82,17 +82,21 @@ module Spaceship
|
|
82
82
|
|
83
83
|
# user didn't specify a team... #thisiswhywecanthavenicethings
|
84
84
|
loop do
|
85
|
-
puts("Multiple iTunes Connect teams found, please enter the number of the team you want to use: ")
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
85
|
+
puts("Multiple #{'iTunes Connect teams'.yellow} found, please enter the number of the team you want to use: ")
|
86
|
+
if ENV["FASTLANE_HIDE_TEAM_INFORMATION"].to_s.length == 0
|
87
|
+
puts("Note: to automatically choose the team, provide either the iTunes Connect Team ID, or the Team Name in your fastlane/Appfile:")
|
88
|
+
puts("Alternatively you can pass the team name or team ID using the `FASTLANE_ITC_TEAM_ID` or `FASTLANE_ITC_TEAM_NAME` environment variable")
|
89
|
+
first_team = teams.first["contentProvider"]
|
90
|
+
puts("")
|
91
|
+
puts(" itc_team_id \"#{first_team['contentProviderId']}\"")
|
92
|
+
puts("")
|
93
|
+
puts("or")
|
94
|
+
puts("")
|
95
|
+
puts(" itc_team_name \"#{first_team['name']}\"")
|
96
|
+
puts("")
|
97
|
+
end
|
98
|
+
|
99
|
+
# We're not using highline here, as spaceship doesn't have a dependency to fastlane_core or highline
|
96
100
|
teams.each_with_index do |team, i|
|
97
101
|
puts("#{i + 1}) \"#{team['contentProvider']['name']}\" (#{team['contentProvider']['contentProviderId']})")
|
98
102
|
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: 2.75.0
|
4
|
+
version: 2.75.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -871,6 +871,8 @@ files:
|
|
871
871
|
- deliver/lib/deliver/upload_price_tier.rb
|
872
872
|
- deliver/lib/deliver/upload_screenshots.rb
|
873
873
|
- fastlane/README.md
|
874
|
+
- fastlane/lib/.DS_Store
|
875
|
+
- fastlane/lib/assets/.DS_Store
|
874
876
|
- fastlane/lib/assets/ActionDetails.md.erb
|
875
877
|
- fastlane/lib/assets/Actions.md.erb
|
876
878
|
- fastlane/lib/assets/AppfileTemplate
|
@@ -878,7 +880,6 @@ files:
|
|
878
880
|
- fastlane/lib/assets/AppfileTemplateAndroid
|
879
881
|
- fastlane/lib/assets/DefaultFastfileTemplate
|
880
882
|
- fastlane/lib/assets/DefaultFastfileTemplate.swift
|
881
|
-
- fastlane/lib/assets/FastfileTemplateAndroid
|
882
883
|
- fastlane/lib/assets/completions/completion.bash
|
883
884
|
- fastlane/lib/assets/completions/completion.fish
|
884
885
|
- fastlane/lib/assets/completions/completion.sh
|
@@ -890,8 +891,10 @@ files:
|
|
890
891
|
- fastlane/lib/assets/s3_plist_template.erb
|
891
892
|
- fastlane/lib/assets/s3_version_template.erb
|
892
893
|
- fastlane/lib/fastlane.rb
|
894
|
+
- fastlane/lib/fastlane/.DS_Store
|
893
895
|
- fastlane/lib/fastlane/action.rb
|
894
896
|
- fastlane/lib/fastlane/action_collector.rb
|
897
|
+
- fastlane/lib/fastlane/actions/.DS_Store
|
895
898
|
- fastlane/lib/fastlane/actions/README.md
|
896
899
|
- fastlane/lib/fastlane/actions/actions_helper.rb
|
897
900
|
- fastlane/lib/fastlane/actions/adb.rb
|
@@ -944,6 +947,7 @@ files:
|
|
944
947
|
- fastlane/lib/fastlane/actions/deliver.rb
|
945
948
|
- fastlane/lib/fastlane/actions/deploygate.rb
|
946
949
|
- fastlane/lib/fastlane/actions/device_grid/README.md
|
950
|
+
- fastlane/lib/fastlane/actions/docs/.DS_Store
|
947
951
|
- fastlane/lib/fastlane/actions/docs/cert.md
|
948
952
|
- fastlane/lib/fastlane/actions/docs/deliver.md
|
949
953
|
- fastlane/lib/fastlane/actions/docs/frameit.md
|
@@ -1183,6 +1187,7 @@ files:
|
|
1183
1187
|
- fastlane/lib/fastlane/server/json_return_value_processor.rb
|
1184
1188
|
- fastlane/lib/fastlane/server/socket_server.rb
|
1185
1189
|
- fastlane/lib/fastlane/server/socket_server_action_command_executor.rb
|
1190
|
+
- fastlane/lib/fastlane/setup/.DS_Store
|
1186
1191
|
- fastlane/lib/fastlane/setup/crashlytics_beta.rb
|
1187
1192
|
- fastlane/lib/fastlane/setup/crashlytics_beta_command_line_handler.rb
|
1188
1193
|
- fastlane/lib/fastlane/setup/crashlytics_beta_info.rb
|
@@ -1232,8 +1237,10 @@ files:
|
|
1232
1237
|
- fastlane/swift/SocketResponse.swift
|
1233
1238
|
- fastlane/swift/main.swift
|
1234
1239
|
- fastlane_core/README.md
|
1240
|
+
- fastlane_core/lib/.DS_Store
|
1235
1241
|
- fastlane_core/lib/assets/XMLTemplate.xml.erb
|
1236
1242
|
- fastlane_core/lib/fastlane_core.rb
|
1243
|
+
- fastlane_core/lib/fastlane_core/.DS_Store
|
1237
1244
|
- fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
|
1238
1245
|
- fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
|
1239
1246
|
- fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
|
@@ -1599,24 +1606,24 @@ metadata:
|
|
1599
1606
|
post_install_message:
|
1600
1607
|
rdoc_options: []
|
1601
1608
|
require_paths:
|
1602
|
-
-
|
1603
|
-
-
|
1609
|
+
- cert/lib
|
1610
|
+
- credentials_manager/lib
|
1611
|
+
- deliver/lib
|
1612
|
+
- fastlane/lib
|
1613
|
+
- fastlane_core/lib
|
1614
|
+
- frameit/lib
|
1615
|
+
- gym/lib
|
1604
1616
|
- match/lib
|
1617
|
+
- pem/lib
|
1618
|
+
- pilot/lib
|
1605
1619
|
- precheck/lib
|
1606
|
-
- sigh/lib
|
1607
1620
|
- produce/lib
|
1608
1621
|
- scan/lib
|
1609
|
-
-
|
1622
|
+
- screengrab/lib
|
1623
|
+
- sigh/lib
|
1610
1624
|
- snapshot/lib
|
1611
|
-
- frameit/lib
|
1612
|
-
- fastlane/lib
|
1613
|
-
- cert/lib
|
1614
|
-
- pilot/lib
|
1615
1625
|
- spaceship/lib
|
1616
|
-
-
|
1617
|
-
- deliver/lib
|
1618
|
-
- fastlane_core/lib
|
1619
|
-
- pem/lib
|
1626
|
+
- supply/lib
|
1620
1627
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1621
1628
|
requirements:
|
1622
1629
|
- - ">="
|
@@ -1624,12 +1631,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1624
1631
|
version: 2.0.0
|
1625
1632
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1626
1633
|
requirements:
|
1627
|
-
- - "
|
1634
|
+
- - ">="
|
1628
1635
|
- !ruby/object:Gem::Version
|
1629
|
-
version:
|
1636
|
+
version: '0'
|
1630
1637
|
requirements: []
|
1631
1638
|
rubyforge_project:
|
1632
|
-
rubygems_version: 2.
|
1639
|
+
rubygems_version: 2.6.12
|
1633
1640
|
signing_key:
|
1634
1641
|
specification_version: 4
|
1635
1642
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# Customize this file, documentation can be found here:
|
2
|
-
# https://docs.fastlane.tools/actions/
|
3
|
-
# All available actions: https://docs.fastlane.tools/actions
|
4
|
-
# can also be listed using the `fastlane actions` command
|
5
|
-
|
6
|
-
# Change the syntax highlighting to Ruby
|
7
|
-
# All lines starting with a # are ignored when running `fastlane`
|
8
|
-
|
9
|
-
# If you want to automatically update fastlane if a new version is available:
|
10
|
-
# update_fastlane
|
11
|
-
|
12
|
-
# This is the minimum version number required.
|
13
|
-
# Update this, if you use features of a newer version
|
14
|
-
min_fastlane_version("[[FASTLANE_VERSION]]")
|
15
|
-
|
16
|
-
default_platform(:android)
|
17
|
-
|
18
|
-
platform :android do
|
19
|
-
before_all do
|
20
|
-
# ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
|
21
|
-
end
|
22
|
-
|
23
|
-
desc "Runs all the tests"
|
24
|
-
lane :test do
|
25
|
-
gradle(task: "test")
|
26
|
-
end
|
27
|
-
|
28
|
-
desc "Submit a new Beta Build to Crashlytics Beta"
|
29
|
-
lane :beta do
|
30
|
-
gradle(task: "assembleRelease")
|
31
|
-
crashlytics
|
32
|
-
|
33
|
-
# sh "your_script.sh"
|
34
|
-
# You can also use other beta testing services here
|
35
|
-
end
|
36
|
-
|
37
|
-
desc "Deploy a new version to the Google Play"
|
38
|
-
lane :deploy do
|
39
|
-
gradle(task: "assembleRelease")
|
40
|
-
upload_to_play_store
|
41
|
-
end
|
42
|
-
|
43
|
-
# You can define as many lanes as you want
|
44
|
-
|
45
|
-
after_all do |lane|
|
46
|
-
# This block is called, only if the executed lane was successful
|
47
|
-
|
48
|
-
# slack(
|
49
|
-
# message: "Successfully deployed new App Update."
|
50
|
-
# )
|
51
|
-
end
|
52
|
-
|
53
|
-
error do |lane, exception|
|
54
|
-
# slack(
|
55
|
-
# message: exception.message,
|
56
|
-
# success: false
|
57
|
-
# )
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
# More information about multiple platforms in fastlane: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
|
62
|
-
# All available actions: https://docs.fastlane.tools/actions
|
63
|
-
|
64
|
-
# fastlane reports which actions are used. No personal data is recorded.
|
65
|
-
# Learn more at https://docs.fastlane.tools/#metrics
|