fastlane-plugin-firebase_app_distribution 0.2.6.pre.1 → 0.2.7.pre.1
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_get_udids.rb +97 -0
- data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb +21 -0
- data/lib/fastlane/plugin/firebase_app_distribution/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dd23e1de2dae2e5f5850fa7414c6a932928af90781cd56485da7c2d4370a5a8
|
4
|
+
data.tar.gz: 5abfd7e129b05ab490891897b929630722d1bcd56ea63116fd79039e0dba5280
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf0143e56cc2372aa3e8d42ad67da516d8e87ab4aca60df3ecb2fc940226b905e53e4d3c0c68092bd72f5ec0b7bbc02511e6ad7a7b4065dca2a80c18146d18fb
|
7
|
+
data.tar.gz: ed1a2489b9aead9cad18f11354c120f36706f18893899ece435b494d78ddf51f3db0885210b26b1a9be3becdfe5f0ec078879b9f5eb8a931bf3edd8293bd8c16
|
data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_udids.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require 'open3'
|
3
|
+
require 'shellwords'
|
4
|
+
require 'googleauth'
|
5
|
+
require_relative '../helper/firebase_app_distribution_helper'
|
6
|
+
require_relative '../helper/firebase_app_distribution_error_message'
|
7
|
+
require_relative '../client/firebase_app_distribution_api_client'
|
8
|
+
require_relative '../helper/firebase_app_distribution_auth_client'
|
9
|
+
|
10
|
+
module Fastlane
|
11
|
+
module Actions
|
12
|
+
class FirebaseAppDistributionGetUdidsAction < Action
|
13
|
+
extend Auth::FirebaseAppDistributionAuthClient
|
14
|
+
extend Helper::FirebaseAppDistributionHelper
|
15
|
+
|
16
|
+
def self.run(params)
|
17
|
+
auth_token = fetch_auth_token(params[:service_credentials_file], params[:firebase_cli_token])
|
18
|
+
fad_api_client = Client::FirebaseAppDistributionApiClient.new(auth_token, params[:debug])
|
19
|
+
|
20
|
+
app_id = params[:app]
|
21
|
+
udids = fad_api_client.get_udids(app_id)
|
22
|
+
|
23
|
+
if udids.empty?
|
24
|
+
UI.important("App Distribution fetched 0 tester UDIDs. Nothing written to output file.")
|
25
|
+
else
|
26
|
+
write_udids_to_file(udids, params[:output_file])
|
27
|
+
UI.success("🎉 App Distribution tester UDIDs written to: #{params[:output_file]}")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.write_udids_to_file(udids, output_file)
|
32
|
+
File.open(output_file, 'w') do |f|
|
33
|
+
f.write("Device ID\tDevice Name\tDevice Platform\n")
|
34
|
+
udids.each do |tester_udid|
|
35
|
+
f.write("#{tester_udid[:udid]}\t#{tester_udid[:name]}\t#{tester_udid[:platform]}\n")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.description
|
41
|
+
"Download the UDIDs of your Firebase App Distribution testers"
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.authors
|
45
|
+
["Lee Kellogg"]
|
46
|
+
end
|
47
|
+
|
48
|
+
# supports markdown.
|
49
|
+
def self.details
|
50
|
+
"Export your testers' device identifiers in a CSV file, so you can add them your provisioning profile. This file can be imported into your Apple developer account using the Register Multiple Devices option. See the [App Distribution docs](https://firebase.google.com/docs/app-distribution/ios/distribute-console#register-tester-devices) for more info."
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.available_options
|
54
|
+
[
|
55
|
+
FastlaneCore::ConfigItem.new(key: :app,
|
56
|
+
env_name: "FIREBASEAPPDISTRO_APP",
|
57
|
+
description: "Your app's Firebase App ID. You can find the App ID in the Firebase console, on the General Settings page",
|
58
|
+
optional: false,
|
59
|
+
type: String),
|
60
|
+
FastlaneCore::ConfigItem.new(key: :output_file,
|
61
|
+
env_name: "FIREBASEAPPDISTRO_OUTPUT_FILE",
|
62
|
+
description: "The path to the file where the tester UDIDs will be written",
|
63
|
+
optional: false,
|
64
|
+
type: String),
|
65
|
+
FastlaneCore::ConfigItem.new(key: :firebase_cli_token,
|
66
|
+
description: "Auth token for firebase cli",
|
67
|
+
optional: true,
|
68
|
+
type: String),
|
69
|
+
FastlaneCore::ConfigItem.new(key: :service_credentials_file,
|
70
|
+
description: "Path to Google service account json",
|
71
|
+
optional: true,
|
72
|
+
type: String),
|
73
|
+
FastlaneCore::ConfigItem.new(key: :debug,
|
74
|
+
description: "Print verbose debug output",
|
75
|
+
optional: true,
|
76
|
+
default_value: false,
|
77
|
+
is_string: false)
|
78
|
+
]
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.is_supported?(platform)
|
82
|
+
[:ios].include?(platform)
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.example_code
|
86
|
+
[
|
87
|
+
<<-CODE
|
88
|
+
firebase_app_distribution_get_udids(
|
89
|
+
app: "1:1234567890:ios:0a1b2c3d4e5f67890",
|
90
|
+
output_file: "tester_udids.txt",
|
91
|
+
)
|
92
|
+
CODE
|
93
|
+
]
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb
CHANGED
@@ -180,6 +180,23 @@ module Fastlane
|
|
180
180
|
return UploadStatusResponse.new(response.body)
|
181
181
|
end
|
182
182
|
|
183
|
+
# Get tester UDIDs
|
184
|
+
#
|
185
|
+
# args
|
186
|
+
# app_id - Firebase App ID
|
187
|
+
#
|
188
|
+
# Returns a list of hashes containing tester device info
|
189
|
+
def get_udids(app_id)
|
190
|
+
begin
|
191
|
+
response = connection.get(get_udids_url(app_id)) do |request|
|
192
|
+
request.headers[AUTHORIZATION] = "Bearer " + @auth_token
|
193
|
+
end
|
194
|
+
rescue Faraday::ResourceNotFound
|
195
|
+
UI.user_error!("#{ErrorMessage::INVALID_APP_ID}: #{app_id}")
|
196
|
+
end
|
197
|
+
response.body[:testerUdids] || []
|
198
|
+
end
|
199
|
+
|
183
200
|
private
|
184
201
|
|
185
202
|
def v1_apps_url(app_id)
|
@@ -202,6 +219,10 @@ module Fastlane
|
|
202
219
|
"#{v1_apps_url(app_id)}/upload_status/#{app_token}"
|
203
220
|
end
|
204
221
|
|
222
|
+
def get_udids_url(app_id)
|
223
|
+
"#{v1_apps_url(app_id)}/testers:getTesterUdids"
|
224
|
+
end
|
225
|
+
|
205
226
|
def get_upload_token(project_number, app_id, binary_path)
|
206
227
|
binary_hash = Digest::SHA256.hexdigest(read_binary(binary_path))
|
207
228
|
CGI.escape("projects/#{project_number}/apps/#{app_id}/releases/-/binaries/#{binary_hash}")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-firebase_app_distribution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Natchev
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-03-
|
13
|
+
date: 2021-03-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pry
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- README.md
|
152
152
|
- lib/fastlane/plugin/firebase_app_distribution.rb
|
153
153
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_action.rb
|
154
|
+
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_get_udids.rb
|
154
155
|
- lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_login.rb
|
155
156
|
- lib/fastlane/plugin/firebase_app_distribution/client/aab_certificate.rb
|
156
157
|
- lib/fastlane/plugin/firebase_app_distribution/client/app.rb
|
@@ -180,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
181
|
- !ruby/object:Gem::Version
|
181
182
|
version: 1.3.1
|
182
183
|
requirements: []
|
183
|
-
rubygems_version: 3.
|
184
|
+
rubygems_version: 3.0.3
|
184
185
|
signing_key:
|
185
186
|
specification_version: 4
|
186
187
|
summary: Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution
|