fastlane-plugin-firebase_app_distribution 0.4.0.pre.2 → 0.5.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/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_action.rb +22 -3
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_add_testers_action.rb +1 -1
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_latest_release.rb +7 -4
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_udids.rb +1 -1
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_remove_testers_action.rb +1 -1
- data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb +16 -20
- data/lib/fastlane/plugin/firebase_app_distribution/helper/firebase_app_distribution_auth_client.rb +10 -5
- data/lib/fastlane/plugin/firebase_app_distribution/version.rb +1 -1
- metadata +9 -10
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_login.rb +0 -121
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 745bfb3dfc4c6c48f389c8e4d75b50026cf37e872ce26e7510aefef049280329
|
4
|
+
data.tar.gz: 8122801b30f95422216c9c5343d102bc6b11fbc16308f268515e7a3405bbf070
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ac42a57fdbda601b6ef2656a7e0d1b38304f022a26c970a75f1e0a43d01f2607f993c5500bceaf8ffb5b24ada6fbcbcb1ccf84d7dc8d87dc7d62049561d7886
|
7
|
+
data.tar.gz: ae12197e0149e187b02716e28a71207cd5ce67d14ea331bb9c230e41a53237e1c3e4359b1178f09bf059ac2d9697cb4b667d358a1d4751a3b47006efcaf131bb
|
data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_action.rb
CHANGED
@@ -11,6 +11,10 @@ require_relative '../helper/firebase_app_distribution_auth_client'
|
|
11
11
|
## How should we document the usage of release notes?
|
12
12
|
module Fastlane
|
13
13
|
module Actions
|
14
|
+
module SharedValues
|
15
|
+
FIREBASE_APP_DISTRO_RELEASE ||= :FIREBASE_APP_DISTRO_RELEASE
|
16
|
+
end
|
17
|
+
|
14
18
|
class FirebaseAppDistributionAction < Action
|
15
19
|
extend Auth::FirebaseAppDistributionAuthClient
|
16
20
|
extend Helper::FirebaseAppDistributionHelper
|
@@ -48,6 +52,7 @@ module Fastlane
|
|
48
52
|
|
49
53
|
upload_status_response = fad_api_client.upload(app_name, binary_path, platform.to_s, upload_timeout)
|
50
54
|
release_name = upload_status_response.release_name
|
55
|
+
release = upload_status_response.release
|
51
56
|
|
52
57
|
if binary_type == :AAB && aab_info && !aab_info.certs_provided?
|
53
58
|
updated_aab_info = fad_api_client.get_aab_info(app_name)
|
@@ -62,14 +67,19 @@ module Fastlane
|
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
65
|
-
|
70
|
+
release_notes = release_notes(params)
|
71
|
+
if release_notes.nil? || release_notes.empty?
|
72
|
+
UI.message("⏩ No release notes passed in. Skipping this step.")
|
73
|
+
else
|
74
|
+
release = fad_api_client.update_release_notes(release_name, release_notes)
|
75
|
+
end
|
66
76
|
|
67
77
|
testers = get_value_from_value_or_file(params[:testers], params[:testers_file])
|
68
78
|
groups = get_value_from_value_or_file(params[:groups], params[:groups_file])
|
69
79
|
emails = string_to_array(testers)
|
70
80
|
group_aliases = string_to_array(groups)
|
71
81
|
fad_api_client.distribute(release_name, emails, group_aliases)
|
72
|
-
UI.success("🎉 App Distribution upload finished successfully.")
|
82
|
+
UI.success("🎉 App Distribution upload finished successfully. Setting Actions.lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] to the uploaded release.")
|
73
83
|
|
74
84
|
if upload_status_response.firebase_console_uri
|
75
85
|
UI.message("🔗 View this release in the Firebase console: #{upload_status_response.firebase_console_uri}")
|
@@ -82,6 +92,9 @@ module Fastlane
|
|
82
92
|
if upload_status_response.binary_download_uri
|
83
93
|
UI.message("🔗 Download the release binary (link expires in 1 hour): #{upload_status_response.binary_download_uri}")
|
84
94
|
end
|
95
|
+
|
96
|
+
Actions.lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] = release
|
97
|
+
release
|
85
98
|
end
|
86
99
|
|
87
100
|
def self.description
|
@@ -256,7 +269,7 @@ module Fastlane
|
|
256
269
|
optional: true,
|
257
270
|
type: String),
|
258
271
|
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
259
|
-
description: "Auth token generated using
|
272
|
+
description: "Auth token generated using the Firebase CLI's login:ci command",
|
260
273
|
optional: true,
|
261
274
|
type: String),
|
262
275
|
FastlaneCore::ConfigItem.new(key: :debug,
|
@@ -294,6 +307,12 @@ module Fastlane
|
|
294
307
|
CODE
|
295
308
|
]
|
296
309
|
end
|
310
|
+
|
311
|
+
def self.output
|
312
|
+
[
|
313
|
+
['FIREBASE_APP_DISTRO_RELEASE', 'A hash representing the uploaded release created in Firebase App Distribution']
|
314
|
+
]
|
315
|
+
end
|
297
316
|
end
|
298
317
|
end
|
299
318
|
end
|
@@ -71,7 +71,7 @@ module Fastlane
|
|
71
71
|
optional: true,
|
72
72
|
type: String),
|
73
73
|
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
74
|
-
description: "Auth token generated using
|
74
|
+
description: "Auth token generated using the Firebase CLI's login:ci command",
|
75
75
|
optional: true,
|
76
76
|
type: String),
|
77
77
|
FastlaneCore::ConfigItem.new(key: :debug,
|
@@ -5,6 +5,9 @@ require_relative '../helper/firebase_app_distribution_helper'
|
|
5
5
|
|
6
6
|
module Fastlane
|
7
7
|
module Actions
|
8
|
+
module SharedValues
|
9
|
+
FIREBASE_APP_DISTRO_LATEST_RELEASE ||= :FIREBASE_APP_DISTRO_LATEST_RELEASE
|
10
|
+
end
|
8
11
|
class FirebaseAppDistributionGetLatestReleaseAction < Action
|
9
12
|
extend Auth::FirebaseAppDistributionAuthClient
|
10
13
|
extend Helper::FirebaseAppDistributionHelper
|
@@ -18,12 +21,12 @@ module Fastlane
|
|
18
21
|
releases = fad_api_client.list_releases(app_name_from_app_id(params[:app]), 1)[:releases] || []
|
19
22
|
if releases.empty?
|
20
23
|
latest_release = nil
|
21
|
-
UI.important("No releases for app #{params[:app]} found in App Distribution. Returning nil and setting Actions.lane_context[
|
24
|
+
UI.important("No releases for app #{params[:app]} found in App Distribution. Returning nil and setting Actions.lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE].")
|
22
25
|
else
|
23
26
|
latest_release = releases[0]
|
24
|
-
UI.success("✅ Latest release fetched successfully. Returning release and setting Actions.lane_context[
|
27
|
+
UI.success("✅ Latest release fetched successfully. Returning release and setting Actions.lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE].")
|
25
28
|
end
|
26
|
-
Actions.lane_context[
|
29
|
+
Actions.lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] = latest_release
|
27
30
|
return latest_release
|
28
31
|
end
|
29
32
|
|
@@ -49,7 +52,7 @@ module Fastlane
|
|
49
52
|
optional: false,
|
50
53
|
type: String),
|
51
54
|
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
52
|
-
description: "Auth token generated using
|
55
|
+
description: "Auth token generated using Firebase CLI's login:ci command",
|
53
56
|
optional: true,
|
54
57
|
type: String),
|
55
58
|
FastlaneCore::ConfigItem.new(key: :service_credentials_file,
|
data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_udids.rb
CHANGED
@@ -63,7 +63,7 @@ module Fastlane
|
|
63
63
|
optional: false,
|
64
64
|
type: String),
|
65
65
|
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
66
|
-
description: "Auth token generated using
|
66
|
+
description: "Auth token generated using the Firebase CLI's login:ci command",
|
67
67
|
optional: true,
|
68
68
|
type: String),
|
69
69
|
FastlaneCore::ConfigItem.new(key: :service_credentials_file,
|
@@ -68,7 +68,7 @@ module Fastlane
|
|
68
68
|
optional: true,
|
69
69
|
type: String),
|
70
70
|
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
71
|
-
description: "Auth token generated using
|
71
|
+
description: "Auth token generated using the Firebase CLI's login:ci command",
|
72
72
|
optional: true,
|
73
73
|
type: String),
|
74
74
|
FastlaneCore::ConfigItem.new(key: :debug,
|
data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fastlane_core/ui/ui'
|
2
|
-
require_relative '../actions/firebase_app_distribution_login'
|
3
2
|
require_relative '../client/error_response'
|
4
3
|
require_relative '../client/aab_info'
|
5
4
|
require_relative '../helper/firebase_app_distribution_helper'
|
@@ -59,29 +58,26 @@ module Fastlane
|
|
59
58
|
# release_name - App release resource name, returned by upload_status endpoint
|
60
59
|
# release_notes - String of notes for this release
|
61
60
|
#
|
61
|
+
# Returns a hash of the release
|
62
|
+
#
|
62
63
|
# Throws a user_error if the release_notes are invalid
|
63
64
|
def update_release_notes(release_name, release_notes)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
begin
|
69
|
-
payload = {
|
70
|
-
name: release_name,
|
71
|
-
releaseNotes: {
|
72
|
-
text: release_notes
|
73
|
-
}
|
65
|
+
payload = {
|
66
|
+
name: release_name,
|
67
|
+
releaseNotes: {
|
68
|
+
text: release_notes
|
74
69
|
}
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
rescue Faraday::ClientError => e
|
81
|
-
error = ErrorResponse.new(e.response)
|
82
|
-
UI.user_error!("#{ErrorMessage::INVALID_RELEASE_NOTES}: #{error.message}")
|
70
|
+
}
|
71
|
+
response = connection.patch(update_release_notes_url(release_name), payload.to_json) do |request|
|
72
|
+
request.headers[AUTHORIZATION] = "Bearer " + @auth_token
|
73
|
+
request.headers[CONTENT_TYPE] = APPLICATION_JSON
|
74
|
+
request.headers[CLIENT_VERSION] = client_version_header_value
|
83
75
|
end
|
84
76
|
UI.success("✅ Posted release notes.")
|
77
|
+
response.body
|
78
|
+
rescue Faraday::ClientError => e
|
79
|
+
error = ErrorResponse.new(e.response)
|
80
|
+
UI.user_error!("#{ErrorMessage::INVALID_RELEASE_NOTES}: #{error.message}")
|
85
81
|
end
|
86
82
|
|
87
83
|
# Get AAB info (Android apps only)
|
@@ -136,7 +132,7 @@ module Fastlane
|
|
136
132
|
# binary_path - Absolute path to your app's aab/apk/ipa file
|
137
133
|
# timeout - The amount of seconds before the upload will timeout, if not completed
|
138
134
|
#
|
139
|
-
# Returns
|
135
|
+
# Returns a `UploadStatusResponse` with the upload is complete.
|
140
136
|
#
|
141
137
|
# Crashes if the number of polling retries exceeds MAX_POLLING_RETRIES or if the binary cannot
|
142
138
|
# be uploaded.
|
data/lib/fastlane/plugin/firebase_app_distribution/helper/firebase_app_distribution_auth_client.rb
CHANGED
@@ -6,6 +6,12 @@ module Fastlane
|
|
6
6
|
TOKEN_CREDENTIAL_URI = "https://oauth2.googleapis.com/token"
|
7
7
|
REDACTION_EXPOSED_LENGTH = 5
|
8
8
|
REDACTION_CHARACTER = "X"
|
9
|
+
SCOPE = "https://www.googleapis.com/auth/cloud-platform"
|
10
|
+
|
11
|
+
# In this type of application, the client secret is not treated as a secret.
|
12
|
+
# See: https://developers.google.com/identity/protocols/OAuth2InstalledApp
|
13
|
+
CLIENT_ID = "563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com"
|
14
|
+
CLIENT_SECRET = "j9iVZfS8kkCEFUPaAeJV0sAi"
|
9
15
|
|
10
16
|
# Returns the auth token for any of the auth methods (Firebase CLI token,
|
11
17
|
# Google service account, firebase-tools). To ensure that a specific
|
@@ -13,8 +19,7 @@ module Fastlane
|
|
13
19
|
#
|
14
20
|
# args
|
15
21
|
# google_service_path - Absolute path to the Google service account file
|
16
|
-
# firebase_cli_token -
|
17
|
-
# CI environment
|
22
|
+
# firebase_cli_token - Refresh token
|
18
23
|
# debug - Whether to enable debug-level logging
|
19
24
|
#
|
20
25
|
# env variables
|
@@ -74,8 +79,8 @@ module Fastlane
|
|
74
79
|
def firebase_token(refresh_token, debug)
|
75
80
|
client = Signet::OAuth2::Client.new(
|
76
81
|
token_credential_uri: TOKEN_CREDENTIAL_URI,
|
77
|
-
client_id:
|
78
|
-
client_secret:
|
82
|
+
client_id: CLIENT_ID,
|
83
|
+
client_secret: CLIENT_SECRET,
|
79
84
|
refresh_token: refresh_token
|
80
85
|
)
|
81
86
|
client.fetch_access_token!
|
@@ -94,7 +99,7 @@ module Fastlane
|
|
94
99
|
def service_account(google_service_path, debug)
|
95
100
|
service_account_credentials = Google::Auth::ServiceAccountCredentials.make_creds(
|
96
101
|
json_key_io: File.open(google_service_path),
|
97
|
-
scope:
|
102
|
+
scope: SCOPE
|
98
103
|
)
|
99
104
|
service_account_credentials.fetch_access_token!["access_token"]
|
100
105
|
rescue Errno::ENOENT
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-firebase_app_distribution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Natchev
|
8
8
|
- Manny Jimenez
|
9
9
|
- Alonso Salas Infante
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-02-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pry
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: 2.127.1
|
141
|
-
description:
|
141
|
+
description:
|
142
142
|
email:
|
143
143
|
- snatchev@google.com
|
144
144
|
- mannyjimenez@google.com
|
@@ -155,7 +155,6 @@ files:
|
|
155
155
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_add_testers_action.rb
|
156
156
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_latest_release.rb
|
157
157
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_udids.rb
|
158
|
-
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_login.rb
|
159
158
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_remove_testers_action.rb
|
160
159
|
- lib/fastlane/plugin/firebase_app_distribution/client/aab_info.rb
|
161
160
|
- lib/fastlane/plugin/firebase_app_distribution/client/error_response.rb
|
@@ -169,7 +168,7 @@ homepage: https://github.com/fastlane/fastlane-plugin-firebase_app_distribution
|
|
169
168
|
licenses:
|
170
169
|
- MIT
|
171
170
|
metadata: {}
|
172
|
-
post_install_message:
|
171
|
+
post_install_message:
|
173
172
|
rdoc_options: []
|
174
173
|
require_paths:
|
175
174
|
- lib
|
@@ -180,12 +179,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
179
|
version: '0'
|
181
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
181
|
requirements:
|
183
|
-
- - "
|
182
|
+
- - ">="
|
184
183
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
184
|
+
version: '0'
|
186
185
|
requirements: []
|
187
|
-
rubygems_version: 3.
|
188
|
-
signing_key:
|
186
|
+
rubygems_version: 3.4.6
|
187
|
+
signing_key:
|
189
188
|
specification_version: 4
|
190
189
|
summary: Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution
|
191
190
|
test_files: []
|
data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_login.rb
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
require 'googleauth'
|
2
|
-
require "fileutils"
|
3
|
-
|
4
|
-
module Fastlane
|
5
|
-
module Actions
|
6
|
-
class FirebaseAppDistributionLoginAction < Action
|
7
|
-
SCOPE = "https://www.googleapis.com/auth/cloud-platform"
|
8
|
-
|
9
|
-
# In this type of application, the client secret is not treated as a secret.
|
10
|
-
# See: https://developers.google.com/identity/protocols/OAuth2InstalledApp
|
11
|
-
CLIENT_ID = "563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com"
|
12
|
-
CLIENT_SECRET = "j9iVZfS8kkCEFUPaAeJV0sAi"
|
13
|
-
|
14
|
-
def self.run(params)
|
15
|
-
callback_uri = "http://localhost:#{params[:port]}"
|
16
|
-
client_id = Google::Auth::ClientId.new(CLIENT_ID, CLIENT_SECRET)
|
17
|
-
authorizer = Google::Auth::UserAuthorizer.new(client_id, SCOPE, nil, callback_uri)
|
18
|
-
|
19
|
-
# Create an anti-forgery state token as described here:
|
20
|
-
# https://developers.google.com/identity/protocols/OpenIDConnect#createxsrftoken
|
21
|
-
state = SecureRandom.hex(16)
|
22
|
-
url = authorizer.get_authorization_url(state: state)
|
23
|
-
|
24
|
-
UI.message("Open the following address in your browser and sign in with your Google account:")
|
25
|
-
UI.message(url)
|
26
|
-
|
27
|
-
response_params = get_authorization_code(params[:port])
|
28
|
-
|
29
|
-
# Confirm that the state in the response matches the state token used to
|
30
|
-
# generate the authorization URL.
|
31
|
-
unless state == response_params['state'][0]
|
32
|
-
UI.crash!('An error has occurred. The state parameter in the authorization response does not match the expected state, which could mean that a malicious attacker is trying to make a login request.')
|
33
|
-
end
|
34
|
-
|
35
|
-
user_credentials = authorizer.get_credentials_from_code(
|
36
|
-
code: response_params['code'][0]
|
37
|
-
)
|
38
|
-
UI.success("Set the refresh token as the FIREBASE_TOKEN environment variable")
|
39
|
-
UI.success("Refresh Token: #{user_credentials.refresh_token}")
|
40
|
-
rescue => error
|
41
|
-
UI.error(error.to_s)
|
42
|
-
UI.crash!("An error has occurred, please login again.")
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.get_authorization_code(port)
|
46
|
-
begin
|
47
|
-
server = TCPServer.open(port)
|
48
|
-
rescue Errno::EADDRINUSE => error
|
49
|
-
UI.error(error.to_s)
|
50
|
-
UI.crash!("Port #{port} is in use. Please specify a different one using the port parameter.")
|
51
|
-
end
|
52
|
-
client = server.accept
|
53
|
-
callback_request = client.readline
|
54
|
-
# Use a regular expression to extract the request line from the first line of
|
55
|
-
# the callback request, e.g.:
|
56
|
-
# GET /?code=AUTH_CODE&state=XYZ&scope=... HTTP/1.1
|
57
|
-
matcher = /GET +([^ ]+)/.match(callback_request)
|
58
|
-
response_params = CGI.parse(URI.parse(matcher[1]).query) unless matcher.nil?
|
59
|
-
|
60
|
-
client.puts("HTTP/1.1 200 OK")
|
61
|
-
client.puts("Content-Type: text/html")
|
62
|
-
client.puts("")
|
63
|
-
client.puts("<b>")
|
64
|
-
if response_params['code'].nil?
|
65
|
-
client.puts("Failed to retrieve authorization code.")
|
66
|
-
else
|
67
|
-
client.puts("Authorization code was successfully retrieved.")
|
68
|
-
end
|
69
|
-
client.puts("</b>")
|
70
|
-
client.puts("<p>Please check the console output.</p>")
|
71
|
-
client.close
|
72
|
-
|
73
|
-
return response_params
|
74
|
-
end
|
75
|
-
|
76
|
-
#####################################################
|
77
|
-
# @!group Documentation
|
78
|
-
#####################################################
|
79
|
-
|
80
|
-
def self.description
|
81
|
-
"Authenticate with Firebase App Distribution using a Google account."
|
82
|
-
end
|
83
|
-
|
84
|
-
def self.details
|
85
|
-
"Log in to Firebase App Distribution using a Google account to generate an authentication "\
|
86
|
-
"token. This token is stored within an environment variable and used to authenticate with your Firebase project. "\
|
87
|
-
"See https://firebase.google.com/docs/app-distribution/ios/distribute-fastlane for more information."
|
88
|
-
end
|
89
|
-
|
90
|
-
def self.authors
|
91
|
-
["Manny Jimenez Github: mannyjimenez0810, Alonso Salas Infante Github: alonsosalasinfante"]
|
92
|
-
end
|
93
|
-
|
94
|
-
def self.is_supported?(platform)
|
95
|
-
[:ios, :android].include?(platform)
|
96
|
-
end
|
97
|
-
|
98
|
-
def self.available_options
|
99
|
-
[
|
100
|
-
FastlaneCore::ConfigItem.new(key: :port,
|
101
|
-
env_name: "FIREBASEAPPDISTRO_LOGIN_PORT",
|
102
|
-
description: "Port for the local web server which receives the response from Google's authorization server",
|
103
|
-
default_value: "8081",
|
104
|
-
optional: true,
|
105
|
-
type: String)
|
106
|
-
|
107
|
-
]
|
108
|
-
end
|
109
|
-
|
110
|
-
def self.category
|
111
|
-
:deprecated
|
112
|
-
end
|
113
|
-
|
114
|
-
def self.deprecated_notes
|
115
|
-
"The firebase_app_distribution_login task is deprecated and will be removed in Q1 2023. See "\
|
116
|
-
"https://firebase.google.com/docs/app-distribution/android/distribute-gradle#authenticate "\
|
117
|
-
"for more information on alternative ways to authenticate."
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|