fastlane 2.211.0 → 2.212.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 +96 -96
- data/deliver/lib/deliver/app_screenshot.rb +1 -0
- data/deliver/lib/deliver/runner.rb +2 -6
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +19 -2
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcodes.rb +17 -2
- data/fastlane/lib/fastlane/fast_file.rb +18 -5
- data/fastlane/lib/fastlane/features.rb +3 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +29 -5
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +6 -2
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +3 -3
- data/fastlane/swift/OptionalConfigValue.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +6 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +26 -18
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/.project.rb.swp +0 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +9 -2
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -2
- data/gym/lib/gym/.code_signing_mapping.rb.swp +0 -0
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/options.rb +7 -0
- data/match/lib/match/importer.rb +4 -0
- data/match/lib/match/module.rb +1 -1
- data/scan/lib/scan/options.rb +5 -0
- data/scan/lib/scan/test_command_generator.rb +6 -1
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +17 -0
- data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +9 -0
- data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
- data/spaceship/lib/spaceship/connect_api/models/device.rb +44 -4
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +19 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/errors.rb +34 -0
- metadata +25 -22
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'tempfile'
|
2
2
|
require 'openssl'
|
3
3
|
|
4
|
+
require_relative 'features'
|
4
5
|
require_relative 'helper'
|
5
6
|
|
6
7
|
# WWDR Intermediate Certificates in https://www.apple.com/certificateauthority/
|
@@ -155,11 +156,17 @@ module FastlaneCore
|
|
155
156
|
keychain = wwdr_keychain
|
156
157
|
keychain = "-k #{keychain.shellescape}" unless keychain.empty?
|
157
158
|
|
158
|
-
|
159
|
+
# Attempts to fix an issue installing WWDR cert tends to fail on CIs
|
160
|
+
# https://github.com/fastlane/fastlane/issues/20960
|
161
|
+
curl_extras = ""
|
162
|
+
if FastlaneCore::Feature.enabled?('FASTLANE_WWDR_USE_HTTP1_AND_RETRIES')
|
163
|
+
curl_extras = "--http1.1 --retry 3 --retry-all-errors "
|
164
|
+
end
|
159
165
|
|
160
|
-
import_command = "curl -f -o #{filename} #{url} && security import #{filename} #{keychain}"
|
166
|
+
import_command = "curl #{curl_extras}-f -o #{filename} #{url} && security import #{filename} #{keychain}"
|
161
167
|
UI.verbose("Installing WWDR Cert: #{import_command}")
|
162
168
|
|
169
|
+
require 'open3'
|
163
170
|
stdout, stderr, status = Open3.capture3(import_command)
|
164
171
|
if FastlaneCore::Globals.verbose?
|
165
172
|
UI.command_output(stdout)
|
@@ -86,11 +86,13 @@ module FastlaneCore
|
|
86
86
|
|
87
87
|
def header(message)
|
88
88
|
format = format_string
|
89
|
-
|
89
|
+
# clamp to zero to prevent negative argument error below
|
90
|
+
available_width = [0, TTY::Screen.width - format.length].max
|
91
|
+
if message.length + 8 < available_width
|
90
92
|
message = "--- #{message} ---"
|
91
93
|
i = message.length
|
92
94
|
else
|
93
|
-
i =
|
95
|
+
i = available_width
|
94
96
|
end
|
95
97
|
success("-" * i)
|
96
98
|
success(message)
|
Binary file
|
@@ -39,6 +39,7 @@ module Gym
|
|
39
39
|
options << "-destination '#{config[:destination]}'" if config[:destination]
|
40
40
|
options << "-archivePath #{archive_path.shellescape}" unless config[:skip_archive]
|
41
41
|
options << "-resultBundlePath '#{result_bundle_path}'" if config[:result_bundle]
|
42
|
+
options << "-showBuildTimingSummary" if config[:build_timing_summary]
|
42
43
|
if config[:use_system_scm] && !options.include?("-scmProvider system")
|
43
44
|
options << "-scmProvider system"
|
44
45
|
end
|
data/gym/lib/gym/options.rb
CHANGED
@@ -239,6 +239,13 @@ module Gym
|
|
239
239
|
default_value: Fastlane::Helper::XcodebuildFormatterHelper.xcbeautify_installed? ? 'xcbeautify' : 'xcpretty',
|
240
240
|
default_value_dynamic: true),
|
241
241
|
|
242
|
+
FastlaneCore::ConfigItem.new(key: :build_timing_summary,
|
243
|
+
env_name: "GYM_BUILD_TIMING_SUMMARY",
|
244
|
+
description: "Create a build timing summary",
|
245
|
+
type: Boolean,
|
246
|
+
default_value: false,
|
247
|
+
optional: true),
|
248
|
+
|
242
249
|
# xcpretty
|
243
250
|
FastlaneCore::ConfigItem.new(key: :disable_xcpretty,
|
244
251
|
env_name: "DISABLE_XCPRETTY",
|
data/match/lib/match/importer.rb
CHANGED
@@ -80,6 +80,10 @@ module Match
|
|
80
80
|
certificate_type = [
|
81
81
|
Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION
|
82
82
|
].join(',')
|
83
|
+
when :developer_id_installer
|
84
|
+
certificate_type = [
|
85
|
+
Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER
|
86
|
+
].join(',')
|
83
87
|
else
|
84
88
|
UI.user_error!("Cert type '#{cert_type}' is not supported")
|
85
89
|
end
|
data/match/lib/match/module.rb
CHANGED
@@ -11,7 +11,7 @@ module Match
|
|
11
11
|
DESCRIPTION = "Easily sync your certificates and profiles across your team"
|
12
12
|
|
13
13
|
def self.environments
|
14
|
-
return %w(appstore adhoc development enterprise developer_id mac_installer_distribution)
|
14
|
+
return %w(appstore adhoc development enterprise developer_id mac_installer_distribution developer_id_installer)
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.storage_modes
|
data/scan/lib/scan/options.rb
CHANGED
@@ -315,6 +315,11 @@ module Scan
|
|
315
315
|
env_name: "SCAN_OUTPUT_XCTESTRUN",
|
316
316
|
description: "Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path?",
|
317
317
|
default_value: false),
|
318
|
+
FastlaneCore::ConfigItem.new(key: :result_bundle_path,
|
319
|
+
env_name: "SCAN_RESULT_BUNDLE_PATH",
|
320
|
+
description: "Custom path for the result bundle, overrides result_bundle",
|
321
|
+
type: String,
|
322
|
+
optional: true),
|
318
323
|
FastlaneCore::ConfigItem.new(key: :result_bundle,
|
319
324
|
short_option: "-z",
|
320
325
|
env_name: "SCAN_RESULT_BUNDLE",
|
@@ -53,7 +53,12 @@ module Scan
|
|
53
53
|
if config[:use_system_scm] && !options.include?("-scmProvider system")
|
54
54
|
options << "-scmProvider system"
|
55
55
|
end
|
56
|
-
|
56
|
+
if config[:result_bundle_path]
|
57
|
+
options << "-resultBundlePath '#{config[:result_bundle_path].shellescape}'"
|
58
|
+
Scan.cache[:result_bundle_path] = config[:result_bundle_path]
|
59
|
+
elsif config[:result_bundle]
|
60
|
+
options << "-resultBundlePath '#{result_bundle_path(true)}'"
|
61
|
+
end
|
57
62
|
if FastlaneCore::Helper.xcode_at_least?(10)
|
58
63
|
options << "-parallel-testing-enabled #{config[:parallel_testing] ? 'YES' : 'NO'}" unless config[:parallel_testing].nil?
|
59
64
|
options << "-parallel-testing-worker-count #{config[:concurrent_workers]}" if config[:concurrent_workers]
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative '../model'
|
2
|
+
require_relative '../../errors'
|
2
3
|
module Spaceship
|
3
4
|
class ConnectAPI
|
4
5
|
class AppInfoLocalization
|
@@ -32,11 +33,15 @@ module Spaceship
|
|
32
33
|
client ||= Spaceship::ConnectAPI
|
33
34
|
attributes = reverse_attr_mapping(attributes)
|
34
35
|
client.patch_app_info_localization(app_info_localization_id: id, attributes: attributes)
|
36
|
+
rescue
|
37
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
35
38
|
end
|
36
39
|
|
37
40
|
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
38
41
|
client ||= Spaceship::ConnectAPI
|
39
42
|
client.delete_app_info_localization(app_info_localization_id: id)
|
43
|
+
rescue
|
44
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
40
45
|
end
|
41
46
|
end
|
42
47
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative '../model'
|
2
2
|
require_relative './app_preview_set'
|
3
3
|
require_relative './app_screenshot_set'
|
4
|
+
require_relative '../../errors'
|
4
5
|
|
5
6
|
module Spaceship
|
6
7
|
class ConnectAPI
|
@@ -43,23 +44,31 @@ module Spaceship
|
|
43
44
|
client ||= Spaceship::ConnectAPI
|
44
45
|
resp = client.get_app_store_version_localization(app_store_version_localization_id: app_store_version_localization_id, filter: filter, includes: includes, limit: limit, sort: sort)
|
45
46
|
return resp.to_models
|
47
|
+
rescue
|
48
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
46
49
|
end
|
47
50
|
|
48
51
|
def self.all(client: nil, app_store_version_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
49
52
|
client ||= Spaceship::ConnectAPI
|
50
53
|
resp = client.get_app_store_version_localizations(app_store_version_id: app_store_version_id, filter: filter, includes: includes, limit: limit, sort: sort)
|
51
54
|
return resp.to_models
|
55
|
+
rescue
|
56
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
52
57
|
end
|
53
58
|
|
54
59
|
def update(client: nil, attributes: nil)
|
55
60
|
client ||= Spaceship::ConnectAPI
|
56
61
|
attributes = reverse_attr_mapping(attributes)
|
57
62
|
client.patch_app_store_version_localization(app_store_version_localization_id: id, attributes: attributes)
|
63
|
+
rescue
|
64
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
58
65
|
end
|
59
66
|
|
60
67
|
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
61
68
|
client ||= Spaceship::ConnectAPI
|
62
69
|
client.delete_app_store_version_localization(app_store_version_localization_id: id)
|
70
|
+
rescue
|
71
|
+
raise Spaceship::AppStoreLocalizationError, @locale
|
63
72
|
end
|
64
73
|
|
65
74
|
#
|
@@ -71,12 +80,16 @@ module Spaceship
|
|
71
80
|
filter ||= {}
|
72
81
|
filter["appStoreVersionLocalization"] = id
|
73
82
|
return Spaceship::ConnectAPI::AppPreviewSet.all(client: client, filter: filter, includes: includes, limit: limit, sort: sort)
|
83
|
+
rescue
|
84
|
+
raise Spaceship::AppStoreAppPreviewError, @locale
|
74
85
|
end
|
75
86
|
|
76
87
|
def create_app_preview_set(client: nil, attributes: nil)
|
77
88
|
client ||= Spaceship::ConnectAPI
|
78
89
|
resp = client.post_app_preview_set(app_store_version_localization_id: id, attributes: attributes)
|
79
90
|
return resp.to_models.first
|
91
|
+
rescue
|
92
|
+
raise Spaceship::AppStoreAppPreviewError, @locale
|
80
93
|
end
|
81
94
|
|
82
95
|
#
|
@@ -86,12 +99,16 @@ module Spaceship
|
|
86
99
|
def get_app_screenshot_sets(client: nil, filter: {}, includes: "appScreenshots", limit: nil, sort: nil)
|
87
100
|
client ||= Spaceship::ConnectAPI
|
88
101
|
return Spaceship::ConnectAPI::AppScreenshotSet.all(client: client, app_store_version_localization_id: id, filter: filter, includes: includes, limit: limit, sort: sort)
|
102
|
+
rescue
|
103
|
+
raise Spaceship::AppStoreScreenshotError, @locale
|
89
104
|
end
|
90
105
|
|
91
106
|
def create_app_screenshot_set(client: nil, attributes: nil)
|
92
107
|
client ||= Spaceship::ConnectAPI
|
93
108
|
resp = client.post_app_screenshot_set(app_store_version_localization_id: id, attributes: attributes)
|
94
109
|
return resp.to_models.first
|
110
|
+
rescue
|
111
|
+
raise Spaceship::AppStoreScreenshotError, @locale
|
95
112
|
end
|
96
113
|
end
|
97
114
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative '../model'
|
2
|
+
require_relative './build_bundle_file_sizes'
|
2
3
|
module Spaceship
|
3
4
|
class ConnectAPI
|
4
5
|
class BuildBundle
|
@@ -54,6 +55,14 @@ module Spaceship
|
|
54
55
|
def self.type
|
55
56
|
return "buildBundles"
|
56
57
|
end
|
58
|
+
|
59
|
+
#
|
60
|
+
# API
|
61
|
+
#
|
62
|
+
|
63
|
+
def build_bundle_file_sizes(client: nil)
|
64
|
+
@build_bundle_file_sizes ||= BuildBundleFileSizes.all(client: client, build_bundle_id: id)
|
65
|
+
end
|
57
66
|
end
|
58
67
|
end
|
59
68
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../model'
|
2
|
+
module Spaceship
|
3
|
+
class ConnectAPI
|
4
|
+
class BuildBundleFileSizes
|
5
|
+
include Spaceship::ConnectAPI::Model
|
6
|
+
|
7
|
+
attr_accessor :device_model
|
8
|
+
attr_accessor :os_version
|
9
|
+
attr_accessor :download_bytes
|
10
|
+
attr_accessor :install_bytes
|
11
|
+
|
12
|
+
attr_mapping({
|
13
|
+
"deviceModel" => "device_model",
|
14
|
+
"osVersion" => "os_version",
|
15
|
+
"downloadBytes" => "download_bytes",
|
16
|
+
"installBytes" => "install_bytes"
|
17
|
+
})
|
18
|
+
|
19
|
+
def self.type
|
20
|
+
return "buildBundleFileSizes"
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# API
|
25
|
+
#
|
26
|
+
|
27
|
+
def self.all(client: nil, build_bundle_id: nil, limit: 30)
|
28
|
+
client ||= Spaceship::ConnectAPI
|
29
|
+
resps = client.get_build_bundles_build_bundle_file_sizes(build_bundle_id: build_bundle_id).all_pages
|
30
|
+
resps.flat_map(&:to_models)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -61,7 +61,7 @@ module Spaceship
|
|
61
61
|
# @param platform [String] The platform of the device.
|
62
62
|
# @param include_disabled [Bool] Whether to include disable devices. false by default.
|
63
63
|
# @return (Device) Find a device based on the UDID of the device. nil if no device was found.
|
64
|
-
def self.find_by_udid(device_udid, client: nil,
|
64
|
+
def self.find_by_udid(device_udid, client: nil, include_disabled: false)
|
65
65
|
self.all(client: client).find do |device|
|
66
66
|
device.udid.casecmp(device_udid) == 0 && (include_disabled ? true : device.enabled?)
|
67
67
|
end
|
@@ -70,10 +70,9 @@ module Spaceship
|
|
70
70
|
# @param client [ConnectAPI] ConnectAPI client.
|
71
71
|
# @param name [String] The name to be assigned to the device, if it needs to be created.
|
72
72
|
# @param platform [String] The platform of the device.
|
73
|
-
# @param include_disabled [Bool] Whether to include disable devices. false by default.
|
74
73
|
# @return (Device) Find a device based on the UDID of the device. If no device was found, nil if no device was found.
|
75
|
-
def self.find_or_create(device_udid, client: nil, name: nil, platform: nil
|
76
|
-
existing = self.find_by_udid(device_udid, client: client
|
74
|
+
def self.find_or_create(device_udid, client: nil, name: nil, platform: nil)
|
75
|
+
existing = self.find_by_udid(device_udid, client: client)
|
77
76
|
return existing if existing
|
78
77
|
return self.create(client: client, name: name, platform: platform, udid: device_udid)
|
79
78
|
end
|
@@ -88,6 +87,47 @@ module Spaceship
|
|
88
87
|
resp = client.post_device(name: name, platform: platform, udid: udid)
|
89
88
|
return resp.to_models.first
|
90
89
|
end
|
90
|
+
|
91
|
+
# @param device_udid [String] Device Provisioning UDID that needs to be modified.
|
92
|
+
# @param client [ConnectAPI] ConnectAPI client.
|
93
|
+
# @param enabled [Boolean] New enabled value. true - if device must be enabled, `false` - to disable device. nil if no status change needed.
|
94
|
+
# @param new_name [String] A new name for the device. nil if no name change needed.
|
95
|
+
# @return (Device) Modified device based on the UDID of the device. nil if no device was found.
|
96
|
+
def self.modify(device_udid, client: nil, enabled: nil, new_name: nil)
|
97
|
+
client ||= Spaceship::ConnectAPI
|
98
|
+
existing = self.find_by_udid(device_udid, client: client, include_disabled: true)
|
99
|
+
return nil if existing.nil?
|
100
|
+
|
101
|
+
enabled = existing.enabled? if enabled.nil?
|
102
|
+
new_name ||= existing.name
|
103
|
+
return existing if existing.name == new_name && existing.enabled? == enabled
|
104
|
+
new_status = enabled ? Status::ENABLED : Status::DISABLED
|
105
|
+
|
106
|
+
resp = client.patch_device(id: existing.id, new_name: new_name, status: new_status)
|
107
|
+
return resp.to_models.first
|
108
|
+
end
|
109
|
+
|
110
|
+
# @param device_udid [String] Device Provisioning UDID that needs to be enabled.
|
111
|
+
# @param client [ConnectAPI] ConnectAPI client.
|
112
|
+
# @return (Device) Modified device based on the UDID of the device. nil if no device was found.
|
113
|
+
def self.enable(device_udid, client: nil)
|
114
|
+
self.modify(device_udid, client: client, enabled: true)
|
115
|
+
end
|
116
|
+
|
117
|
+
# @param device_udid [String] Device Provisioning UDID that needs to be disabled.
|
118
|
+
# @param client [ConnectAPI] ConnectAPI client.
|
119
|
+
# @return (Device) Modified device based on the UDID of the device. nil if no device was found.
|
120
|
+
def self.disable(device_udid, client: nil)
|
121
|
+
self.modify(device_udid, client: client, enabled: false)
|
122
|
+
end
|
123
|
+
|
124
|
+
# @param device_udid [String] Device Provisioning UDID that needs to be renamed.
|
125
|
+
# @param new_name [String] A new name for the device.
|
126
|
+
# @param client [ConnectAPI] ConnectAPI client.
|
127
|
+
# @return (Device) Modified device based on the UDID of the device. nil if no device was found.
|
128
|
+
def self.rename(device_udid, new_name, client: nil)
|
129
|
+
self.modify(device_udid, client: client, new_name: new_name)
|
130
|
+
end
|
91
131
|
end
|
92
132
|
end
|
93
133
|
end
|
@@ -190,6 +190,25 @@ module Spaceship
|
|
190
190
|
provisioning_request_client.post("devices", body)
|
191
191
|
end
|
192
192
|
|
193
|
+
def patch_device(id: nil, status: nil, new_name: nil)
|
194
|
+
raise "Device id is nil" if id.nil?
|
195
|
+
|
196
|
+
attributes = {
|
197
|
+
name: new_name,
|
198
|
+
status: status
|
199
|
+
}
|
200
|
+
|
201
|
+
body = {
|
202
|
+
data: {
|
203
|
+
attributes: attributes,
|
204
|
+
id: id,
|
205
|
+
type: "devices"
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
provisioning_request_client.patch("devices/#{id}", body)
|
210
|
+
end
|
211
|
+
|
193
212
|
#
|
194
213
|
# profiles
|
195
214
|
#
|
@@ -412,6 +412,15 @@ module Spaceship
|
|
412
412
|
test_flight_request_client.get("betaTesterMetrics", params)
|
413
413
|
end
|
414
414
|
|
415
|
+
#
|
416
|
+
# buildBundles
|
417
|
+
#
|
418
|
+
|
419
|
+
def get_build_bundles_build_bundle_file_sizes(build_bundle_id:, limit: nil)
|
420
|
+
params = test_flight_request_client.build_params(filter: nil, includes: nil, limit: limit, sort: nil, cursor: nil)
|
421
|
+
test_flight_request_client.get("buildBundles/#{build_bundle_id}/buildBundleFileSizes", params)
|
422
|
+
end
|
423
|
+
|
415
424
|
#
|
416
425
|
# builds
|
417
426
|
#
|
@@ -33,6 +33,7 @@ require 'spaceship/connect_api/models/build'
|
|
33
33
|
require 'spaceship/connect_api/models/build_delivery'
|
34
34
|
require 'spaceship/connect_api/models/build_beta_detail'
|
35
35
|
require 'spaceship/connect_api/models/build_bundle'
|
36
|
+
require 'spaceship/connect_api/models/build_bundle_file_sizes'
|
36
37
|
require 'spaceship/connect_api/models/custom_app_organization'
|
37
38
|
require 'spaceship/connect_api/models/custom_app_user'
|
38
39
|
require 'spaceship/connect_api/models/pre_release_version'
|
@@ -98,4 +98,38 @@ module Spaceship
|
|
98
98
|
|
99
99
|
# Raised when 403 is received from portal request
|
100
100
|
class AccessForbiddenError < BasicPreferredInfoError; end
|
101
|
+
|
102
|
+
# Base class for errors coming from App Store Connect locale changes
|
103
|
+
class AppStoreLocaleError < BasicPreferredInfoError
|
104
|
+
def initialize(msg)
|
105
|
+
@message = (msg ? "An exception occurred for locale: #{msg}." : nil)
|
106
|
+
super
|
107
|
+
end
|
108
|
+
|
109
|
+
# no need to search github issues since the error is specific
|
110
|
+
def show_github_issues
|
111
|
+
false
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Raised for localized text errors from App Store Connect
|
116
|
+
class AppStoreLocalizationError < AppStoreLocaleError
|
117
|
+
def preferred_error_info
|
118
|
+
"#{@message} Check the localization requirements here: https://help.apple.com/app-store-connect/en.lproj/static.html#dev354659071"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# Raised for localized screenshots errors from App Store Connect
|
123
|
+
class AppStoreScreenshotError < AppStoreLocaleError
|
124
|
+
def preferred_error_info
|
125
|
+
"#{@message} Check the screenshot requirements here: https://help.apple.com/app-store-connect/en.lproj/static.html#devd274dd925"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# Raised for localized app preview errors from App Store Connect
|
130
|
+
class AppStoreAppPreviewError < AppStoreLocaleError
|
131
|
+
def preferred_error_info
|
132
|
+
"#{@message} Check the app preview requirements here: https://help.apple.com/app-store-connect/en.lproj/static.html#dev4e413fcb8"
|
133
|
+
end
|
134
|
+
end
|
101
135
|
end
|
metadata
CHANGED
@@ -1,39 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.212.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Josh Holtz
|
8
|
-
- Łukasz Grabowski
|
9
|
-
- Stefan Natchev
|
10
|
-
- Jimmy Dee
|
11
|
-
- Jérôme Lacoste
|
12
|
-
- Daniel Jankowski
|
13
|
-
- Aaron Brager
|
14
|
-
- Matthew Ellis
|
15
|
-
- Kohki Miki
|
16
|
-
- Iulian Onofrei
|
17
|
-
- Roger Oba
|
18
|
-
- Andrew McBurney
|
19
|
-
- Luka Mirosevic
|
20
7
|
- Joshua Liebowitz
|
21
|
-
-
|
22
|
-
- Maksym Grebenets
|
23
|
-
- Helmut Januschka
|
24
|
-
- Manu Wallner
|
8
|
+
- Łukasz Grabowski
|
25
9
|
- Max Ott
|
26
|
-
- Jan Piotrowski
|
27
|
-
- Fumiya Nakamura
|
28
|
-
- Satoshi Namai
|
29
10
|
- Olivier Halligon
|
11
|
+
- Maksym Grebenets
|
12
|
+
- Danielle Tomlinson
|
13
|
+
- Fumiya Nakamura
|
30
14
|
- Felix Krause
|
15
|
+
- Jérôme Lacoste
|
16
|
+
- Helmut Januschka
|
17
|
+
- Iulian Onofrei
|
18
|
+
- Jimmy Dee
|
31
19
|
- Jorge Revuelta H
|
20
|
+
- Luka Mirosevic
|
21
|
+
- Kohki Miki
|
22
|
+
- Roger Oba
|
32
23
|
- Manish Rathi
|
24
|
+
- Josh Holtz
|
25
|
+
- Satoshi Namai
|
26
|
+
- Stefan Natchev
|
27
|
+
- Daniel Jankowski
|
28
|
+
- Jan Piotrowski
|
29
|
+
- Andrew McBurney
|
30
|
+
- Manu Wallner
|
31
|
+
- Aaron Brager
|
32
|
+
- Matthew Ellis
|
33
33
|
autorequire:
|
34
34
|
bindir: bin
|
35
35
|
cert_chain: []
|
36
|
-
date:
|
36
|
+
date: 2023-02-19 00:00:00.000000000 Z
|
37
37
|
dependencies:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: xcodeproj
|
@@ -1395,6 +1395,7 @@ files:
|
|
1395
1395
|
- fastlane_core/README.md
|
1396
1396
|
- fastlane_core/lib/assets/XMLTemplate.xml.erb
|
1397
1397
|
- fastlane_core/lib/fastlane_core.rb
|
1398
|
+
- fastlane_core/lib/fastlane_core/.project.rb.swp
|
1398
1399
|
- fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
|
1399
1400
|
- fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
|
1400
1401
|
- fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
|
@@ -1478,6 +1479,7 @@ files:
|
|
1478
1479
|
- gym/lib/assets/GymfileTemplate.swift
|
1479
1480
|
- gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
|
1480
1481
|
- gym/lib/gym.rb
|
1482
|
+
- gym/lib/gym/.code_signing_mapping.rb.swp
|
1481
1483
|
- gym/lib/gym/code_signing_mapping.rb
|
1482
1484
|
- gym/lib/gym/commands_generator.rb
|
1483
1485
|
- gym/lib/gym/detect_values.rb
|
@@ -1702,6 +1704,7 @@ files:
|
|
1702
1704
|
- spaceship/lib/spaceship/connect_api/models/build.rb
|
1703
1705
|
- spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb
|
1704
1706
|
- spaceship/lib/spaceship/connect_api/models/build_bundle.rb
|
1707
|
+
- spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb
|
1705
1708
|
- spaceship/lib/spaceship/connect_api/models/build_delivery.rb
|
1706
1709
|
- spaceship/lib/spaceship/connect_api/models/bundle_id.rb
|
1707
1710
|
- spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb
|