fastlane 2.133.0 → 2.136.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 +78 -78
- data/fastlane/lib/fastlane/action.rb +1 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +1 -1
- data/fastlane/lib/fastlane/actions/carthage.rb +7 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +24 -2
- data/fastlane/lib/fastlane/actions/deploygate.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +38 -4
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +4 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +26 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +26 -3
- data/fastlane/lib/fastlane/actions/download_from_play_store.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +10 -4
- data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +5 -1
- data/fastlane/lib/fastlane/actions/sonar.rb +16 -0
- data/fastlane/lib/fastlane/actions/testfairy.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +9 -49
- data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +94 -0
- data/fastlane/lib/fastlane/environment_printer.rb +9 -3
- data/fastlane/lib/fastlane/fast_file.rb +3 -2
- data/fastlane/lib/fastlane/lane_manager.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +12 -2
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +9 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +124 -36
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +22 -2
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +3 -3
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
- data/match/lib/match/importer.rb +1 -1
- data/scan/lib/scan/error_handler.rb +9 -4
- data/scan/lib/scan/runner.rb +1 -1
- data/screengrab/lib/screengrab/module.rb +2 -0
- data/screengrab/lib/screengrab/options.rb +33 -11
- data/screengrab/lib/screengrab/runner.rb +64 -24
- data/sigh/lib/assets/resign.sh +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +2 -2
- data/supply/lib/supply.rb +23 -0
- data/supply/lib/supply/.uploader.rb.swp +0 -0
- data/supply/lib/supply/client.rb +101 -55
- data/supply/lib/supply/options.rb +50 -14
- data/supply/lib/supply/release_listing.rb +18 -0
- data/supply/lib/supply/setup.rb +42 -34
- data/supply/lib/supply/uploader.rb +191 -93
- metadata +32 -37
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/gym/lib/gym/.runner.rb.swp +0 -0
- data/pilot/lib/pilot/.manager.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
data/sigh/lib/assets/resign.sh
CHANGED
@@ -474,7 +474,7 @@ function resign {
|
|
474
474
|
log "Profile app identifier prefix is '$APP_IDENTIFIER_PREFIX'"
|
475
475
|
fi
|
476
476
|
|
477
|
-
# Set new app
|
477
|
+
# Set new app identifier prefix if such entry exists in plist file
|
478
478
|
PlistBuddy -c "Set :AppIdentifierPrefix $APP_IDENTIFIER_PREFIX." "$APP_PATH/Info.plist" 2>/dev/null
|
479
479
|
|
480
480
|
TEAM_IDENTIFIER=$(PlistBuddy -c "Print :Entitlements:com.apple.developer.team-identifier" "$TEMP_DIR/profile.plist" | tr -d '\n')
|
@@ -690,7 +690,7 @@ function resign {
|
|
690
690
|
# Get the old and new app identifier (prefix)
|
691
691
|
APP_ID_KEY="application-identifier"
|
692
692
|
# Extract just the identifier from the value
|
693
|
-
# Use the fact that we are after some
|
693
|
+
# Use the fact that we are after some identifier, which is always at the start of the string
|
694
694
|
OLD_APP_ID=$(PlistBuddy -c "Print $APP_ID_KEY" "$APP_ENTITLEMENTS" | grep -E '^[A-Z0-9]*' -o | tr -d '\n')
|
695
695
|
NEW_APP_ID=$(PlistBuddy -c "Print $APP_ID_KEY" "$PROFILE_ENTITLEMENTS" | grep -E '^[A-Z0-9]*' -o | tr -d '\n')
|
696
696
|
|
@@ -50,7 +50,7 @@ module Snapshot
|
|
50
50
|
language = language[0]
|
51
51
|
end
|
52
52
|
|
53
|
-
# Clear logs so subsequent xcodebuild executions
|
53
|
+
# Clear logs so subsequent xcodebuild executions don't append to old ones
|
54
54
|
log_path = xcodebuild_log_path(language: language, locale: locale)
|
55
55
|
File.delete(log_path) if File.exist?(log_path)
|
56
56
|
|
@@ -619,8 +619,8 @@ module Spaceship
|
|
619
619
|
def with_retry(tries = 5, &_block)
|
620
620
|
return yield
|
621
621
|
rescue \
|
622
|
-
Faraday::
|
623
|
-
Faraday::
|
622
|
+
Faraday::ConnectionFailed,
|
623
|
+
Faraday::TimeoutError,
|
624
624
|
BadGatewayError,
|
625
625
|
AppleTimeoutError,
|
626
626
|
GatewayTimeoutError => ex
|
data/supply/lib/supply.rb
CHANGED
@@ -3,6 +3,7 @@ require 'supply/options'
|
|
3
3
|
require 'supply/client'
|
4
4
|
require 'supply/listing'
|
5
5
|
require 'supply/apk_listing'
|
6
|
+
require 'supply/release_listing'
|
6
7
|
require 'supply/uploader'
|
7
8
|
require 'supply/languages'
|
8
9
|
|
@@ -23,8 +24,30 @@ module Supply
|
|
23
24
|
|
24
25
|
CHANGELOGS_FOLDER_NAME = "changelogs"
|
25
26
|
|
27
|
+
# https://developers.google.com/android-publisher/#publishing
|
28
|
+
module Tracks
|
29
|
+
PRODUCTION = "production"
|
30
|
+
BETA = "beta"
|
31
|
+
ALPHA = "alpha"
|
32
|
+
INTERNAL = "internal"
|
33
|
+
|
34
|
+
DEFAULTS = [PRODUCTION, BETA, ALPHA, INTERNAL]
|
35
|
+
DEFAULT = PRODUCTION
|
36
|
+
end
|
37
|
+
|
38
|
+
# https://developers.google.com/android-publisher/api-ref/edits/tracks
|
39
|
+
module ReleaseStatus
|
40
|
+
COMPLETED = "completed"
|
41
|
+
DRAFT = "draft"
|
42
|
+
HALTED = "halted"
|
43
|
+
IN_PROGRESS = "inProgress"
|
44
|
+
|
45
|
+
ALL = [COMPLETED, DRAFT, HALTED, IN_PROGRESS]
|
46
|
+
end
|
47
|
+
|
26
48
|
Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
|
27
49
|
UI = FastlaneCore::UI
|
50
|
+
Boolean = Fastlane::Boolean
|
28
51
|
ROOT = Pathname.new(File.expand_path('../..', __FILE__))
|
29
52
|
DESCRIPTION = "Command line tool for updating Android apps and their metadata on the Google Play Store".freeze
|
30
53
|
end
|
Binary file
|
data/supply/lib/supply/client.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'googleauth'
|
2
|
-
require 'google/apis/
|
3
|
-
|
2
|
+
require 'google/apis/androidpublisher_v3'
|
3
|
+
AndroidPublisher = Google::Apis::AndroidpublisherV3
|
4
4
|
|
5
5
|
require 'net/http'
|
6
6
|
|
@@ -96,8 +96,8 @@ module Supply
|
|
96
96
|
end
|
97
97
|
|
98
98
|
class Client < AbstractGoogleServiceClient
|
99
|
-
SERVICE =
|
100
|
-
SCOPE =
|
99
|
+
SERVICE = AndroidPublisher::AndroidPublisherService
|
100
|
+
SCOPE = AndroidPublisher::AUTH_ANDROIDPUBLISHER
|
101
101
|
|
102
102
|
# Editing something
|
103
103
|
# Reference to the entry we're currently editing. Might be nil if don't have one open
|
@@ -176,7 +176,7 @@ module Supply
|
|
176
176
|
def listings
|
177
177
|
ensure_active_edit!
|
178
178
|
|
179
|
-
result = call_google_api { client.
|
179
|
+
result = call_google_api { client.list_edit_listings(current_package_name, current_edit.id) }
|
180
180
|
|
181
181
|
return result.listings.map do |row|
|
182
182
|
Listing.new(self, row.language, row)
|
@@ -188,7 +188,7 @@ module Supply
|
|
188
188
|
ensure_active_edit!
|
189
189
|
|
190
190
|
begin
|
191
|
-
result = client.
|
191
|
+
result = client.get_edit_listing(
|
192
192
|
current_package_name,
|
193
193
|
current_edit.id,
|
194
194
|
language
|
@@ -205,7 +205,7 @@ module Supply
|
|
205
205
|
def apks_version_codes
|
206
206
|
ensure_active_edit!
|
207
207
|
|
208
|
-
result = call_google_api { client.
|
208
|
+
result = call_google_api { client.list_edit_apks(current_package_name, current_edit.id) }
|
209
209
|
|
210
210
|
return Array(result.apks).map(&:version_code)
|
211
211
|
end
|
@@ -219,23 +219,57 @@ module Supply
|
|
219
219
|
return Array(result.bundles).map(&:version_code)
|
220
220
|
end
|
221
221
|
|
222
|
-
|
223
|
-
def apk_listings(apk_version_code)
|
222
|
+
def release_listings(version)
|
224
223
|
ensure_active_edit!
|
225
224
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
225
|
+
# Verify that tracks have releases
|
226
|
+
filtered_tracks = tracks.select { |t| !t.releases.nil? && t.releases.any? { |r| r.name == version } }
|
227
|
+
|
228
|
+
if filtered_tracks.length > 1
|
229
|
+
# Production track takes precedence if version is present in multiple tracks
|
230
|
+
# E.g.: A release might've been promoted from Alpha/Beta track. This means the release will be present in two or more tracks
|
231
|
+
if filtered_tracks.any? { |t| t.track == Supply::Tracks::DEFAULT }
|
232
|
+
filtered_tracks = filtered_tracks.select { |t| t.track == Supply::Tracks::DEFAULT }
|
233
|
+
else
|
234
|
+
# E.g.: A release might be in both Alpha & Beta (not sure if this is possible, just catching if it ever happens), giving Beta precedence.
|
235
|
+
filtered_tracks = filtered_tracks.select { |t| t.track == Supply::Tracks::BETA }
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
filtered_track = filtered_tracks.first
|
240
|
+
if filtered_track.nil?
|
241
|
+
UI.user_error!("Unable to find version '#{version}' for '#{current_package_name}' in all tracks. Please double check the version number.")
|
242
|
+
return nil
|
243
|
+
else
|
244
|
+
UI.message("Found '#{version}' in '#{filtered_track.track}' track.")
|
245
|
+
end
|
246
|
+
|
247
|
+
filtered_release = filtered_track.releases.first { |r| r.name == version }
|
248
|
+
|
249
|
+
# Since we can release on Alpha/Beta without release notes.
|
250
|
+
if filtered_release.release_notes.nil?
|
251
|
+
UI.user_error!("Version '#{version}' for '#{current_package_name}' does not seem to have any release notes. Nothing to download.")
|
252
|
+
return nil
|
232
253
|
end
|
233
254
|
|
234
|
-
return
|
235
|
-
|
255
|
+
return filtered_release.release_notes.map do |row|
|
256
|
+
Supply::ReleaseListing.new(filtered_track, filtered_release.name, filtered_release.version_codes, row.language, row.text)
|
236
257
|
end
|
237
258
|
end
|
238
259
|
|
260
|
+
def latest_version(track)
|
261
|
+
latest_version = tracks.select { |t| t.track == Supply::Tracks::DEFAULT }.map(&:releases).flatten.max_by(&:name)
|
262
|
+
|
263
|
+
# Check if user specified '--track' option if version information from 'production' track is nil
|
264
|
+
if latest_version.nil? && track == Supply::Tracks::DEFAULT
|
265
|
+
UI.user_error!(%(Unable to find latest version information from "#{Supply::Tracks::DEFAULT}" track. Please specify track information by using the '--track' option.))
|
266
|
+
else
|
267
|
+
latest_version = tracks.select { |t| t.track == track }.map(&:releases).flatten.max_by(&:name)
|
268
|
+
end
|
269
|
+
|
270
|
+
return latest_version
|
271
|
+
end
|
272
|
+
|
239
273
|
#####################################################
|
240
274
|
# @!group Modifying data
|
241
275
|
#####################################################
|
@@ -244,7 +278,7 @@ module Supply
|
|
244
278
|
def update_listing_for_language(language: nil, title: nil, short_description: nil, full_description: nil, video: nil)
|
245
279
|
ensure_active_edit!
|
246
280
|
|
247
|
-
listing =
|
281
|
+
listing = AndroidPublisher::Listing.new({
|
248
282
|
language: language,
|
249
283
|
title: title,
|
250
284
|
full_description: full_description,
|
@@ -253,7 +287,7 @@ module Supply
|
|
253
287
|
})
|
254
288
|
|
255
289
|
call_google_api do
|
256
|
-
client.
|
290
|
+
client.update_edit_listing(
|
257
291
|
current_package_name,
|
258
292
|
current_edit.id,
|
259
293
|
language,
|
@@ -266,7 +300,7 @@ module Supply
|
|
266
300
|
ensure_active_edit!
|
267
301
|
|
268
302
|
result_upload = call_google_api do
|
269
|
-
client.
|
303
|
+
client.upload_edit_apk(
|
270
304
|
current_package_name,
|
271
305
|
current_edit.id,
|
272
306
|
upload_source: path_to_apk
|
@@ -306,29 +340,28 @@ module Supply
|
|
306
340
|
return result_upload.version_code
|
307
341
|
end
|
308
342
|
|
309
|
-
#
|
310
|
-
def
|
343
|
+
# Get a list of all tracks - returns the list
|
344
|
+
def tracks(*tracknames)
|
311
345
|
ensure_active_edit!
|
312
346
|
|
313
|
-
|
347
|
+
all_tracks = call_google_api { client.list_edit_tracks(current_package_name, current_edit.id) }.tracks
|
348
|
+
|
349
|
+
if tracknames.length > 0
|
350
|
+
all_tracks = all_tracks.select { |track| tracknames.include?(track.track) }
|
351
|
+
end
|
314
352
|
|
315
|
-
|
316
|
-
|
317
|
-
# https://github.com/fastlane/fastlane/issues/12372
|
318
|
-
rollout = nil unless track == "rollout"
|
353
|
+
return all_tracks
|
354
|
+
end
|
319
355
|
|
320
|
-
|
321
|
-
|
322
|
-
user_fraction: rollout,
|
323
|
-
version_codes: track_version_codes
|
324
|
-
})
|
356
|
+
def update_track(track_name, track_object)
|
357
|
+
ensure_active_edit!
|
325
358
|
|
326
359
|
call_google_api do
|
327
|
-
client.
|
360
|
+
client.update_edit_track(
|
328
361
|
current_package_name,
|
329
362
|
current_edit.id,
|
330
|
-
|
331
|
-
|
363
|
+
track_name,
|
364
|
+
track_object
|
332
365
|
)
|
333
366
|
end
|
334
367
|
end
|
@@ -338,33 +371,27 @@ module Supply
|
|
338
371
|
ensure_active_edit!
|
339
372
|
|
340
373
|
begin
|
341
|
-
result = client.
|
374
|
+
result = client.get_edit_track(
|
342
375
|
current_package_name,
|
343
376
|
current_edit.id,
|
344
377
|
track
|
345
378
|
)
|
346
|
-
return result.version_codes || []
|
379
|
+
return result.releases.flat_map(&:version_codes) || []
|
347
380
|
rescue Google::Apis::ClientError => e
|
348
381
|
return [] if e.status_code == 404 && e.to_s.include?("trackEmpty")
|
349
382
|
raise
|
350
383
|
end
|
351
384
|
end
|
352
385
|
|
353
|
-
def
|
386
|
+
def upload_changelogs(track, track_name)
|
354
387
|
ensure_active_edit!
|
355
388
|
|
356
|
-
apk_listing_object = Androidpublisher::ApkListing.new({
|
357
|
-
language: apk_listing.language,
|
358
|
-
recent_changes: apk_listing.recent_changes
|
359
|
-
})
|
360
|
-
|
361
389
|
call_google_api do
|
362
|
-
client.
|
390
|
+
client.update_edit_track(
|
363
391
|
current_package_name,
|
364
|
-
current_edit.id,
|
365
|
-
|
366
|
-
|
367
|
-
apk_listing_object
|
392
|
+
self.current_edit.id,
|
393
|
+
track_name,
|
394
|
+
track
|
368
395
|
)
|
369
396
|
end
|
370
397
|
end
|
@@ -373,12 +400,12 @@ module Supply
|
|
373
400
|
ensure_active_edit!
|
374
401
|
|
375
402
|
call_google_api do
|
376
|
-
client.
|
403
|
+
client.update_edit_expansionfile(
|
377
404
|
current_package_name,
|
378
405
|
current_edit.id,
|
379
406
|
apk_version_code,
|
380
407
|
expansion_file_type,
|
381
|
-
|
408
|
+
AndroidPublisher::ExpansionFile.new(
|
382
409
|
references_version: references_version,
|
383
410
|
file_size: file_size
|
384
411
|
)
|
@@ -394,7 +421,7 @@ module Supply
|
|
394
421
|
ensure_active_edit!
|
395
422
|
|
396
423
|
result = call_google_api do
|
397
|
-
client.
|
424
|
+
client.list_edit_images(
|
398
425
|
current_package_name,
|
399
426
|
current_edit.id,
|
400
427
|
language,
|
@@ -402,7 +429,26 @@ module Supply
|
|
402
429
|
)
|
403
430
|
end
|
404
431
|
|
405
|
-
(result.images || []).map(&:url)
|
432
|
+
urls = (result.images || []).map(&:url)
|
433
|
+
images = urls.map do |url|
|
434
|
+
uri = URI.parse(url)
|
435
|
+
clean_url = [
|
436
|
+
uri.scheme,
|
437
|
+
uri.userinfo,
|
438
|
+
uri.host,
|
439
|
+
uri.port,
|
440
|
+
uri.path
|
441
|
+
].join
|
442
|
+
|
443
|
+
UI.verbose("Initial URL received: '#{url}'")
|
444
|
+
UI.verbose("Removed params ('#{uri.query}') from the URL")
|
445
|
+
UI.verbose("URL after removing params: '#{clean_url}'")
|
446
|
+
|
447
|
+
full_url = "#{url}=s0" # '=s0' param ensures full image size is returned (https://github.com/fastlane/fastlane/pull/14322#issuecomment-473012462)
|
448
|
+
full_url
|
449
|
+
end
|
450
|
+
|
451
|
+
return images
|
406
452
|
end
|
407
453
|
|
408
454
|
# @param image_type (e.g. phoneScreenshots, sevenInchScreenshots, ...)
|
@@ -410,7 +456,7 @@ module Supply
|
|
410
456
|
ensure_active_edit!
|
411
457
|
|
412
458
|
call_google_api do
|
413
|
-
client.
|
459
|
+
client.upload_edit_image(
|
414
460
|
current_package_name,
|
415
461
|
current_edit.id,
|
416
462
|
language,
|
@@ -425,7 +471,7 @@ module Supply
|
|
425
471
|
ensure_active_edit!
|
426
472
|
|
427
473
|
call_google_api do
|
428
|
-
client.
|
474
|
+
client.deleteall_edit_image(
|
429
475
|
current_package_name,
|
430
476
|
current_edit.id,
|
431
477
|
language,
|
@@ -438,7 +484,7 @@ module Supply
|
|
438
484
|
ensure_active_edit!
|
439
485
|
|
440
486
|
call_google_api do
|
441
|
-
client.
|
487
|
+
client.upload_edit_expansionfile(
|
442
488
|
current_package_name,
|
443
489
|
current_edit.id,
|
444
490
|
apk_version_code,
|
@@ -5,7 +5,6 @@ module Supply
|
|
5
5
|
class Options
|
6
6
|
# rubocop:disable Metrics/PerceivedComplexity
|
7
7
|
def self.available_options
|
8
|
-
default_tracks = %w(production beta alpha internal rollout)
|
9
8
|
@options ||= [
|
10
9
|
FastlaneCore::ConfigItem.new(key: :package_name,
|
11
10
|
env_name: "SUPPLY_PACKAGE_NAME",
|
@@ -14,11 +13,37 @@ module Supply
|
|
14
13
|
code_gen_sensitive: true,
|
15
14
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:package_name),
|
16
15
|
default_value_dynamic: true),
|
16
|
+
FastlaneCore::ConfigItem.new(key: :version_name,
|
17
|
+
env_name: "SUPPLY_VERSION_NAME",
|
18
|
+
short_option: "-n",
|
19
|
+
optional: true,
|
20
|
+
description: "Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml",
|
21
|
+
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:version_name),
|
22
|
+
default_value_dynamic: true),
|
23
|
+
FastlaneCore::ConfigItem.new(key: :version_code,
|
24
|
+
env_name: "SUPPLY_VERSION_CODE",
|
25
|
+
short_option: "-C",
|
26
|
+
optional: true,
|
27
|
+
type: Integer,
|
28
|
+
description: "Version code (used when updating rollout or promoting specific versions)",
|
29
|
+
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:version_code),
|
30
|
+
default_value_dynamic: true),
|
31
|
+
FastlaneCore::ConfigItem.new(key: :release_status,
|
32
|
+
env_name: "SUPPLY_RELEASE_STATUS",
|
33
|
+
short_option: "-e",
|
34
|
+
optional: true,
|
35
|
+
description: "Release status (used when uploading new apks/aabs) - valid values are #{Supply::ReleaseStatus::ALL.join(', ')}",
|
36
|
+
default_value: Supply::ReleaseStatus::COMPLETED,
|
37
|
+
default_value_dynamic: true,
|
38
|
+
verify_block: proc do |value|
|
39
|
+
UI.user_error!("Value must be one of '#{Supply::RELEASE_STATUS}'") unless Supply::ReleaseStatus::ALL.include?(value)
|
40
|
+
end),
|
17
41
|
FastlaneCore::ConfigItem.new(key: :track,
|
18
42
|
short_option: "-a",
|
19
43
|
env_name: "SUPPLY_TRACK",
|
20
|
-
description: "The track of the application to use. The default available tracks are: #{
|
21
|
-
default_value:
|
44
|
+
description: "The track of the application to use. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
|
45
|
+
default_value: Supply::Tracks::DEFAULT,
|
46
|
+
type: String),
|
22
47
|
FastlaneCore::ConfigItem.new(key: :rollout,
|
23
48
|
short_option: "-r",
|
24
49
|
description: "The percentage of the user fraction when uploading to the rollout track",
|
@@ -104,6 +129,7 @@ module Supply
|
|
104
129
|
FastlaneCore::ConfigItem.new(key: :apk_paths,
|
105
130
|
env_name: "SUPPLY_APK_PATHS",
|
106
131
|
conflicting_options: [:apk, :aab, :aab_paths],
|
132
|
+
code_gen_sensitive: true,
|
107
133
|
optional: true,
|
108
134
|
type: Array,
|
109
135
|
description: "An array of paths to APK files to upload",
|
@@ -131,6 +157,7 @@ module Supply
|
|
131
157
|
FastlaneCore::ConfigItem.new(key: :aab_paths,
|
132
158
|
env_name: "SUPPLY_AAB_PATHS",
|
133
159
|
conflicting_options: [:apk, :apk_paths, :aab],
|
160
|
+
code_gen_sensitive: true,
|
134
161
|
optional: true,
|
135
162
|
type: Array,
|
136
163
|
description: "An array of paths to AAB files to upload",
|
@@ -146,41 +173,47 @@ module Supply
|
|
146
173
|
env_name: "SUPPLY_SKIP_UPLOAD_APK",
|
147
174
|
optional: true,
|
148
175
|
description: "Whether to skip uploading APK",
|
149
|
-
|
176
|
+
type: Boolean,
|
150
177
|
default_value: false),
|
151
178
|
FastlaneCore::ConfigItem.new(key: :skip_upload_aab,
|
152
179
|
env_name: "SUPPLY_SKIP_UPLOAD_AAB",
|
153
180
|
optional: true,
|
154
181
|
description: "Whether to skip uploading AAB",
|
155
|
-
|
182
|
+
type: Boolean,
|
156
183
|
default_value: false),
|
157
184
|
FastlaneCore::ConfigItem.new(key: :skip_upload_metadata,
|
158
185
|
env_name: "SUPPLY_SKIP_UPLOAD_METADATA",
|
159
186
|
optional: true,
|
160
|
-
description: "Whether to skip uploading metadata",
|
161
|
-
|
187
|
+
description: "Whether to skip uploading metadata, changelogs not included",
|
188
|
+
type: Boolean,
|
189
|
+
default_value: false),
|
190
|
+
FastlaneCore::ConfigItem.new(key: :skip_upload_changelogs,
|
191
|
+
env_name: "SUPPLY_SKIP_UPLOAD_CHANGELOGS",
|
192
|
+
optional: true,
|
193
|
+
description: "Whether to skip uploading changelogs",
|
194
|
+
type: Boolean,
|
162
195
|
default_value: false),
|
163
196
|
FastlaneCore::ConfigItem.new(key: :skip_upload_images,
|
164
197
|
env_name: "SUPPLY_SKIP_UPLOAD_IMAGES",
|
165
198
|
optional: true,
|
166
199
|
description: "Whether to skip uploading images, screenshots not included",
|
167
|
-
|
200
|
+
type: Boolean,
|
168
201
|
default_value: false),
|
169
202
|
FastlaneCore::ConfigItem.new(key: :skip_upload_screenshots,
|
170
203
|
env_name: "SUPPLY_SKIP_UPLOAD_SCREENSHOTS",
|
171
204
|
optional: true,
|
172
205
|
description: "Whether to skip uploading SCREENSHOTS",
|
173
|
-
|
206
|
+
type: Boolean,
|
174
207
|
default_value: false),
|
175
208
|
FastlaneCore::ConfigItem.new(key: :track_promote_to,
|
176
209
|
env_name: "SUPPLY_TRACK_PROMOTE_TO",
|
177
210
|
optional: true,
|
178
|
-
description: "The track to promote to. The default available tracks are: #{
|
211
|
+
description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}"),
|
179
212
|
FastlaneCore::ConfigItem.new(key: :validate_only,
|
180
213
|
env_name: "SUPPLY_VALIDATE_ONLY",
|
181
214
|
optional: true,
|
182
215
|
description: "Only validate changes with Google Play rather than actually publish",
|
183
|
-
|
216
|
+
type: Boolean,
|
184
217
|
default_value: false),
|
185
218
|
FastlaneCore::ConfigItem.new(key: :mapping,
|
186
219
|
env_name: "SUPPLY_MAPPING",
|
@@ -215,7 +248,8 @@ module Supply
|
|
215
248
|
env_name: "SUPPLY_CHECK_SUPERSEDED_TRACKS",
|
216
249
|
optional: true,
|
217
250
|
description: "Check the other tracks for superseded versions and disable them",
|
218
|
-
|
251
|
+
deprecated: "Google Play does this automatically now",
|
252
|
+
type: Boolean,
|
219
253
|
default_value: false),
|
220
254
|
FastlaneCore::ConfigItem.new(key: :timeout,
|
221
255
|
env_name: "SUPPLY_TIMEOUT",
|
@@ -227,16 +261,18 @@ module Supply
|
|
227
261
|
env_name: "SUPPLY_DEACTIVATE_ON_PROMOTE",
|
228
262
|
optional: true,
|
229
263
|
description: "When promoting to a new track, deactivate the binary in the origin track",
|
230
|
-
|
264
|
+
deprecated: "Google Play does this automatically now",
|
265
|
+
type: Boolean,
|
231
266
|
default_value: true),
|
232
267
|
FastlaneCore::ConfigItem.new(key: :version_codes_to_retain,
|
233
268
|
optional: true,
|
234
269
|
type: Array,
|
235
270
|
description: "An array of version codes to retain when publishing a new APK",
|
236
271
|
verify_block: proc do |version_codes|
|
272
|
+
version_codes = version_codes.map(&:to_i)
|
237
273
|
UI.user_error!("Could not evaluate array from '#{version_codes}'") unless version_codes.kind_of?(Array)
|
238
274
|
version_codes.each do |version_code|
|
239
|
-
UI.user_error!("Version code '#{version_code}' is not an integer")
|
275
|
+
UI.user_error!("Version code '#{version_code}' is not an integer") if version_code == 0
|
240
276
|
end
|
241
277
|
end),
|
242
278
|
FastlaneCore::ConfigItem.new(key: :obb_main_references_version,
|