fastlane 2.219.0 → 2.220.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 +86 -86
- data/bin/console +11 -0
- data/bin/match_file +60 -0
- data/deliver/lib/deliver/download_screenshots.rb +2 -1
- data/deliver/lib/deliver/generate_summary.rb +1 -1
- data/deliver/lib/deliver/options.rb +14 -0
- data/deliver/lib/deliver/runner.rb +4 -4
- data/deliver/lib/deliver/upload_metadata.rb +43 -28
- data/deliver/lib/deliver/upload_screenshots.rb +15 -8
- data/fastlane/lib/fastlane/actions/appetize.rb +4 -0
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -2
- data/fastlane/lib/fastlane/actions/git_add.rb +17 -2
- data/fastlane/lib/fastlane/actions/mailgun.rb +30 -8
- data/fastlane/lib/fastlane/actions/onesignal.rb +14 -2
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +4 -2
- data/fastlane/lib/fastlane/commands_generator.rb +9 -0
- data/fastlane/lib/fastlane/console.rb +24 -0
- data/fastlane/lib/fastlane/helper/sh_helper.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +2 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +2 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -1
- data/fastlane/lib/fastlane/version.rb +2 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +9 -1
- data/fastlane/swift/Fastlane.swift +41 -8
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/OptionalConfigValue.swift +2 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +3 -3
- data/fastlane/swift/formatting/Brewfile.lock.json +17 -17
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +11 -8
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +0 -15
- data/fastlane_core/lib/fastlane_core/print_table.rb +16 -0
- data/fastlane_core/lib/fastlane_core/project.rb +5 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +0 -4
- data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +1 -5
- data/frameit/lib/frameit/device_types.rb +4 -0
- data/frameit/lib/frameit/editor.rb +20 -0
- data/gym/lib/gym/detect_values.rb +2 -0
- data/gym/lib/gym/module.rb +2 -2
- data/match/lib/assets/READMETemplate.md +3 -5
- data/match/lib/match/encryption/encryption.rb +154 -0
- data/match/lib/match/encryption/openssl.rb +7 -38
- data/match/lib/match/encryption.rb +1 -0
- data/match/lib/match/runner.rb +45 -6
- data/match/lib/match/storage/git_storage.rb +4 -3
- data/match/lib/match/storage/interface.rb +9 -5
- data/pilot/lib/pilot/build_manager.rb +5 -2
- data/pilot/lib/pilot/manager.rb +2 -2
- data/pilot/lib/pilot/options.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +2 -2
- data/snapshot/lib/snapshot/setup.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +17 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +44 -9
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +30 -2
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/device.rb +11 -6
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +8 -1
- data/spaceship/lib/spaceship/connect_api/token.rb +2 -1
- data/spaceship/lib/spaceship/connect_api.rb +5 -2
- data/spaceship/lib/spaceship/portal/certificate.rb +2 -2
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +8 -1
- data/trainer/lib/trainer/xcresult.rb +6 -10
- metadata +46 -29
@@ -10,6 +10,7 @@ module Spaceship
|
|
10
10
|
attr_accessor :platform
|
11
11
|
attr_accessor :version_string
|
12
12
|
attr_accessor :app_store_state
|
13
|
+
attr_accessor :app_version_state
|
13
14
|
attr_accessor :store_icon
|
14
15
|
attr_accessor :watch_store_icon
|
15
16
|
attr_accessor :copyright
|
@@ -19,26 +20,53 @@ module Spaceship
|
|
19
20
|
attr_accessor :is_watch_only
|
20
21
|
attr_accessor :downloadable
|
21
22
|
attr_accessor :created_date
|
23
|
+
attr_accessor :review_type
|
22
24
|
|
23
25
|
attr_accessor :app_store_version_submission
|
24
26
|
attr_accessor :app_store_version_phased_release
|
25
27
|
attr_accessor :app_store_review_detail
|
26
28
|
attr_accessor :app_store_version_localizations
|
27
29
|
|
30
|
+
# Deprecated in App Store Connect API specification 3.3
|
28
31
|
module AppStoreState
|
29
|
-
|
30
|
-
READY_FOR_REVIEW = "READY_FOR_REVIEW"
|
31
|
-
PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE"
|
32
|
-
PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE"
|
33
|
-
PENDING_APPLE_RELEASE = "PENDING_APPLE_RELEASE"
|
34
|
-
IN_REVIEW = "IN_REVIEW"
|
35
|
-
WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
|
32
|
+
ACCEPTED = "ACCEPTED"
|
36
33
|
DEVELOPER_REJECTED = "DEVELOPER_REJECTED"
|
37
34
|
DEVELOPER_REMOVED_FROM_SALE = "DEVELOPER_REMOVED_FROM_SALE"
|
38
|
-
|
39
|
-
|
35
|
+
IN_REVIEW = "IN_REVIEW"
|
36
|
+
INVALID_BINARY = "INVALID_BINARY"
|
40
37
|
METADATA_REJECTED = "METADATA_REJECTED"
|
38
|
+
PENDING_APPLE_RELEASE = "PENDING_APPLE_RELEASE"
|
39
|
+
PENDING_CONTRACT = "PENDING_CONTRACT"
|
40
|
+
PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE"
|
41
|
+
PREORDER_READY_FOR_SALE = "PREORDER_READY_FOR_SALE"
|
42
|
+
PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION"
|
43
|
+
PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE"
|
44
|
+
READY_FOR_REVIEW = "READY_FOR_REVIEW"
|
45
|
+
READY_FOR_SALE = "READY_FOR_SALE"
|
46
|
+
REJECTED = "REJECTED"
|
47
|
+
REMOVED_FROM_SALE = "REMOVED_FROM_SALE"
|
48
|
+
REPLACED_WITH_NEW_VERSION = "REPLACED_WITH_NEW_VERSION"
|
49
|
+
WAITING_FOR_EXPORT_COMPLIANCE = "WAITING_FOR_EXPORT_COMPLIANCE"
|
50
|
+
WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
|
51
|
+
NOT_APPLICABLE = "NOT_APPLICABLE"
|
52
|
+
end
|
53
|
+
|
54
|
+
module AppVersionState
|
55
|
+
ACCEPTED = "ACCEPTED"
|
56
|
+
DEVELOPER_REJECTED = "DEVELOPER_REJECTED"
|
57
|
+
IN_REVIEW = "IN_REVIEW"
|
41
58
|
INVALID_BINARY = "INVALID_BINARY"
|
59
|
+
METADATA_REJECTED = "METADATA_REJECTED"
|
60
|
+
PENDING_APPLE_RELEASE = "PENDING_APPLE_RELEASE"
|
61
|
+
PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE"
|
62
|
+
PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION"
|
63
|
+
PROCESSING_FOR_DISTRIBUTION = "PROCESSING_FOR_DISTRIBUTION"
|
64
|
+
READY_FOR_DISTRIBUTION = "READY_FOR_DISTRIBUTION"
|
65
|
+
READY_FOR_REVIEW = "READY_FOR_REVIEW"
|
66
|
+
REJECTED = "REJECTED"
|
67
|
+
REPLACED_WITH_NEW_VERSION = "REPLACED_WITH_NEW_VERSION"
|
68
|
+
WAITING_FOR_EXPORT_COMPLIANCE = "WAITING_FOR_EXPORT_COMPLIANCE"
|
69
|
+
WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
|
42
70
|
end
|
43
71
|
|
44
72
|
module ReleaseType
|
@@ -47,10 +75,16 @@ module Spaceship
|
|
47
75
|
SCHEDULED = "SCHEDULED"
|
48
76
|
end
|
49
77
|
|
78
|
+
module ReviewType
|
79
|
+
APP_STORE = "APP_STORE"
|
80
|
+
NOTARIZATION = "NOTARIZATION"
|
81
|
+
end
|
82
|
+
|
50
83
|
attr_mapping({
|
51
84
|
"platform" => "platform",
|
52
85
|
"versionString" => "version_string",
|
53
86
|
"appStoreState" => "app_store_state",
|
87
|
+
"appVersionState" => "app_version_state",
|
54
88
|
"storeIcon" => "store_icon",
|
55
89
|
"watchStoreIcon" => "watch_store_icon",
|
56
90
|
"copyright" => "copyright",
|
@@ -60,6 +94,7 @@ module Spaceship
|
|
60
94
|
"isWatchOnly" => "is_watch_only",
|
61
95
|
"downloadable" => "downloadable",
|
62
96
|
"createdDate" => "created_date",
|
97
|
+
"reviewType" => "review_type",
|
63
98
|
|
64
99
|
"appStoreVersionSubmission" => "app_store_version_submission",
|
65
100
|
"build" => "build",
|
@@ -8,7 +8,21 @@ module Spaceship
|
|
8
8
|
attr_accessor :last_name
|
9
9
|
attr_accessor :email
|
10
10
|
attr_accessor :invite_type
|
11
|
-
attr_accessor :
|
11
|
+
attr_accessor :beta_tester_state
|
12
|
+
attr_accessor :is_deleted
|
13
|
+
attr_accessor :last_modified_date
|
14
|
+
attr_accessor :installed_cf_bundle_short_version_string
|
15
|
+
attr_accessor :installed_cf_bundle_version
|
16
|
+
attr_accessor :remove_after_date
|
17
|
+
attr_accessor :installed_device
|
18
|
+
attr_accessor :installed_os_version
|
19
|
+
attr_accessor :number_of_installed_devices
|
20
|
+
attr_accessor :latest_expiring_cf_bundle_short_version_string
|
21
|
+
attr_accessor :latest_expiring_cf_bundle_version_string
|
22
|
+
attr_accessor :installed_device_platform
|
23
|
+
attr_accessor :latest_installed_device
|
24
|
+
attr_accessor :latest_installed_os_version
|
25
|
+
attr_accessor :latest_installed_device_platform
|
12
26
|
|
13
27
|
attr_accessor :apps
|
14
28
|
attr_accessor :beta_groups
|
@@ -20,7 +34,21 @@ module Spaceship
|
|
20
34
|
"lastName" => "last_name",
|
21
35
|
"email" => "email",
|
22
36
|
"inviteType" => "invite_type",
|
23
|
-
"
|
37
|
+
"betaTesterState" => "beta_tester_state",
|
38
|
+
"isDeleted" => "is_deleted",
|
39
|
+
"lastModifiedDate" => "last_modified_date",
|
40
|
+
"installedCfBundleShortVersionString" => "installed_cf_bundle_short_version_string",
|
41
|
+
"installedCfBundleVersion" => "installed_cf_bundle_version",
|
42
|
+
"removeAfterDate" => "remove_after_date",
|
43
|
+
"installedDevice" => "installed_device",
|
44
|
+
"installedOsVersion" => "installed_os_version",
|
45
|
+
"numberOfInstalledDevices" => "number_of_installed_devices",
|
46
|
+
"latestExpiringCfBundleShortVersionString" => "latest_expiring_cf_bundle_short_version_string",
|
47
|
+
"latestExpiringCfBundleVersionString" => "latest_expiring_cf_bundle_version_string",
|
48
|
+
"installedDevicePlatform" => "installed_device_platform",
|
49
|
+
"latestInstalledDevice" => "latest_installed_device",
|
50
|
+
"latestInstalledOsVersion" => "latest_installed_os_version",
|
51
|
+
"latestInstalledDevicePlatform" => "latest_installed_device_platform",
|
24
52
|
|
25
53
|
"apps" => "apps",
|
26
54
|
"betaGroups" => "beta_groups",
|
@@ -55,7 +55,7 @@ module Spaceship
|
|
55
55
|
Time.parse(expiration_date) > Time.now
|
56
56
|
end
|
57
57
|
|
58
|
-
# Create a new
|
58
|
+
# Create a new cert signing request that can be used to
|
59
59
|
# generate a new certificate
|
60
60
|
# @example
|
61
61
|
# Create a new certificate signing request
|
@@ -71,7 +71,7 @@ module Spaceship
|
|
71
71
|
['CN', 'PEM', OpenSSL::ASN1::UTF8STRING]
|
72
72
|
])
|
73
73
|
csr.public_key = key.public_key
|
74
|
-
csr.sign(key, OpenSSL::Digest::
|
74
|
+
csr.sign(key, OpenSSL::Digest::SHA256.new)
|
75
75
|
return [csr, key]
|
76
76
|
end
|
77
77
|
|
@@ -30,9 +30,11 @@ module Spaceship
|
|
30
30
|
IPOD = "IPOD"
|
31
31
|
APPLE_TV = "APPLE_TV"
|
32
32
|
MAC = "MAC"
|
33
|
+
APPLE_VISION_PRO = "APPLE_VISION_PRO"
|
33
34
|
|
34
|
-
# As of
|
35
|
+
# As of 2024-03-08, this is not _officially_ supported by App Store Connect API (according to API docs)—yet still used in the API responses
|
35
36
|
APPLE_SILICON_MAC = "APPLE_SILICON_MAC"
|
37
|
+
INTEL_MAC = "INTEL_MAC"
|
36
38
|
end
|
37
39
|
|
38
40
|
module Status
|
@@ -68,7 +70,7 @@ module Spaceship
|
|
68
70
|
device_platform = case platform
|
69
71
|
when :osx, :macos, :mac
|
70
72
|
Spaceship::ConnectAPI::Platform::MAC_OS
|
71
|
-
when :ios
|
73
|
+
when :ios, :tvos, :xros, :visionos
|
72
74
|
Spaceship::ConnectAPI::Platform::IOS
|
73
75
|
when :catalyst
|
74
76
|
Spaceship::ConnectAPI::Platform::MAC_OS
|
@@ -86,7 +88,8 @@ module Spaceship
|
|
86
88
|
Spaceship::ConnectAPI::Device::DeviceClass::IPAD,
|
87
89
|
Spaceship::ConnectAPI::Device::DeviceClass::IPHONE,
|
88
90
|
Spaceship::ConnectAPI::Device::DeviceClass::IPOD,
|
89
|
-
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_WATCH
|
91
|
+
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_WATCH,
|
92
|
+
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_VISION_PRO
|
90
93
|
]
|
91
94
|
when :tvos
|
92
95
|
[
|
@@ -94,7 +97,9 @@ module Spaceship
|
|
94
97
|
]
|
95
98
|
when :macos, :catalyst
|
96
99
|
[
|
97
|
-
Spaceship::ConnectAPI::Device::DeviceClass::MAC
|
100
|
+
Spaceship::ConnectAPI::Device::DeviceClass::MAC,
|
101
|
+
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_SILICON_MAC,
|
102
|
+
Spaceship::ConnectAPI::Device::DeviceClass::INTEL_MAC
|
98
103
|
]
|
99
104
|
else
|
100
105
|
[]
|
@@ -106,9 +111,9 @@ module Spaceship
|
|
106
111
|
end
|
107
112
|
|
108
113
|
filter = {
|
109
|
-
status: Spaceship::ConnectAPI::Device::Status::ENABLED
|
110
|
-
platform: device_platforms.uniq.join(',')
|
114
|
+
status: Spaceship::ConnectAPI::Device::Status::ENABLED
|
111
115
|
}
|
116
|
+
filter[:platform] = device_platforms.uniq.join(',') unless device_platforms.empty?
|
112
117
|
|
113
118
|
devices = Spaceship::ConnectAPI::Device.all(
|
114
119
|
client: client,
|
@@ -64,7 +64,14 @@ module Spaceship
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def valid?
|
67
|
-
|
67
|
+
# Provisioning profiles are not invalidated automatically on the dev portal when the certificate expires.
|
68
|
+
# They become Invalid only when opened directly in the portal 🤷.
|
69
|
+
# We need to do an extra check on the expiration date to ensure the profile is valid.
|
70
|
+
expired = Time.now.utc > Time.parse(self.expiration_date)
|
71
|
+
|
72
|
+
is_valid = profile_state == ProfileState::ACTIVE && !expired
|
73
|
+
|
74
|
+
return is_valid
|
68
75
|
end
|
69
76
|
|
70
77
|
#
|
@@ -100,7 +100,8 @@ module Spaceship
|
|
100
100
|
|
101
101
|
payload = {
|
102
102
|
iss: issuer_id,
|
103
|
-
|
103
|
+
# Reduce the issued-at-time in case our time is slighly ahead of Apple's servers, which causes the token to be rejected.
|
104
|
+
iat: now.to_i - 60,
|
104
105
|
exp: @expiration.to_i,
|
105
106
|
aud: 'appstoreconnect-v1'
|
106
107
|
}
|
@@ -86,9 +86,10 @@ module Spaceship
|
|
86
86
|
IOS = "IOS"
|
87
87
|
MAC_OS = "MAC_OS"
|
88
88
|
TV_OS = "TV_OS"
|
89
|
+
VISION_OS = "VISION_OS"
|
89
90
|
WATCH_OS = "WATCH_OS"
|
90
91
|
|
91
|
-
ALL = [IOS, MAC_OS, TV_OS, WATCH_OS]
|
92
|
+
ALL = [IOS, MAC_OS, TV_OS, VISION_OS, WATCH_OS]
|
92
93
|
|
93
94
|
def self.map(platform)
|
94
95
|
return platform if ALL.include?(platform)
|
@@ -101,6 +102,8 @@ module Spaceship
|
|
101
102
|
return Spaceship::ConnectAPI::Platform::MAC_OS
|
102
103
|
when :ios
|
103
104
|
return Spaceship::ConnectAPI::Platform::IOS
|
105
|
+
when :xros, :visionos
|
106
|
+
return Spaceship::ConnectAPI::Platform::VISION_OS
|
104
107
|
else
|
105
108
|
raise "Cannot find a matching platform for '#{platform}' - valid values are #{ALL.join(', ')}"
|
106
109
|
end
|
@@ -123,7 +126,7 @@ module Spaceship
|
|
123
126
|
case platform.to_sym
|
124
127
|
when :osx, :macos, :mac
|
125
128
|
return Spaceship::ConnectAPI::Platform::MAC_OS
|
126
|
-
when :ios
|
129
|
+
when :ios, :xros, :visionos
|
127
130
|
return Spaceship::ConnectAPI::Platform::IOS
|
128
131
|
else
|
129
132
|
raise "Cannot find a matching platform for '#{platform}' - valid values are #{ALL.join(', ')}"
|
@@ -205,7 +205,7 @@ module Spaceship
|
|
205
205
|
|
206
206
|
# Class methods
|
207
207
|
class << self
|
208
|
-
# Create a new
|
208
|
+
# Create a new cert signing request that can be used to
|
209
209
|
# generate a new certificate
|
210
210
|
# @example
|
211
211
|
# Create a new certificate signing request
|
@@ -221,7 +221,7 @@ module Spaceship
|
|
221
221
|
['CN', 'PEM', OpenSSL::ASN1::UTF8STRING]
|
222
222
|
])
|
223
223
|
csr.public_key = key.public_key
|
224
|
-
csr.sign(key, OpenSSL::Digest::
|
224
|
+
csr.sign(key, OpenSSL::Digest::SHA256.new)
|
225
225
|
return [csr, key]
|
226
226
|
end
|
227
227
|
|
@@ -484,7 +484,14 @@ module Spaceship
|
|
484
484
|
# @return (Bool) Is the current provisioning profile valid?
|
485
485
|
# To also verify the certificate call certificate_valid?
|
486
486
|
def valid?
|
487
|
-
|
487
|
+
# Provisioning profiles are not invalidated automatically on the dev portal when the certificate expires.
|
488
|
+
# They become Invalid only when opened directly in the portal 🤷.
|
489
|
+
# We need to do an extra check on the expiration date to ensure the profile is valid.
|
490
|
+
expired = Time.now.utc > self.expires
|
491
|
+
|
492
|
+
is_valid = status == 'Active' && !expired
|
493
|
+
|
494
|
+
return is_valid
|
488
495
|
end
|
489
496
|
|
490
497
|
# @return (Bool) Is this profile managed by Xcode?
|
@@ -173,6 +173,8 @@ module Trainer
|
|
173
173
|
end
|
174
174
|
|
175
175
|
def find_failure(failures)
|
176
|
+
sanitizer = proc { |name| name.gsub(/\W/, "_") }
|
177
|
+
sanitized_identifier = sanitizer.call(self.identifier)
|
176
178
|
if self.test_status == "Failure"
|
177
179
|
# Tries to match failure on test case name
|
178
180
|
# Example TestFailureIssueSummary:
|
@@ -184,16 +186,10 @@ module Trainer
|
|
184
186
|
# or identifier: "TestThisDude/testFailureJosh2" (when Objective-C)
|
185
187
|
|
186
188
|
found_failure = failures.find do |failure|
|
187
|
-
#
|
188
|
-
#
|
189
|
-
|
190
|
-
|
191
|
-
.tr(".", "/")
|
192
|
-
.tr("-", "")
|
193
|
-
.tr("[", "")
|
194
|
-
.tr("]", "")
|
195
|
-
.tr(" ", "/")
|
196
|
-
self.identifier == sanitized_test_case_name
|
189
|
+
# Sanitize both test case name and identifier in a consistent fashion, then replace all non-word
|
190
|
+
# chars with underscore, and compare them
|
191
|
+
sanitized_test_case_name = sanitizer.call(failure.test_case_name)
|
192
|
+
sanitized_identifier == sanitized_test_case_name
|
197
193
|
end
|
198
194
|
return found_failure
|
199
195
|
else
|
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.220.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Jimmy Dee
|
9
|
-
- Stefan Natchev
|
10
|
-
- Roger Oba
|
11
|
-
- Kohki Miki
|
12
|
-
- Fumiya Nakamura
|
13
|
-
- Josh Holtz
|
7
|
+
- Felix Krause
|
14
8
|
- Iulian Onofrei
|
15
|
-
-
|
16
|
-
-
|
9
|
+
- Manish Rathi
|
10
|
+
- Danielle Tomlinson
|
11
|
+
- Joshua Liebowitz
|
12
|
+
- Satoshi Namai
|
17
13
|
- Manu Wallner
|
14
|
+
- Luka Mirosevic
|
18
15
|
- Jérôme Lacoste
|
19
|
-
-
|
16
|
+
- Stefan Natchev
|
20
17
|
- Łukasz Grabowski
|
18
|
+
- Roger Oba
|
19
|
+
- Olivier Halligon
|
20
|
+
- Daniel Jankowski
|
21
|
+
- Andrew McBurney
|
22
|
+
- Jimmy Dee
|
21
23
|
- Jan Piotrowski
|
22
|
-
-
|
24
|
+
- Maksym Grebenets
|
23
25
|
- Helmut Januschka
|
24
|
-
- Joshua Liebowitz
|
25
|
-
- Danielle Tomlinson
|
26
|
-
- Daniel Jankowski
|
27
|
-
- Olivier Halligon
|
28
|
-
- Satoshi Namai
|
29
|
-
- Luka Mirosevic
|
30
|
-
- Jorge Revuelta H
|
31
|
-
- Manish Rathi
|
32
26
|
- Aaron Brager
|
27
|
+
- Kohki Miki
|
28
|
+
- Josh Holtz
|
29
|
+
- Max Ott
|
30
|
+
- Matthew Ellis
|
31
|
+
- Jorge Revuelta H
|
32
|
+
- Fumiya Nakamura
|
33
33
|
autorequire:
|
34
34
|
bindir: bin
|
35
35
|
cert_chain: []
|
36
|
-
date: 2024-
|
36
|
+
date: 2024-04-04 00:00:00.000000000 Z
|
37
37
|
dependencies:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: addressable
|
@@ -147,16 +147,16 @@ dependencies:
|
|
147
147
|
name: colored
|
148
148
|
requirement: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '1.2'
|
153
153
|
type: :runtime
|
154
154
|
prerelease: false
|
155
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
159
|
+
version: '1.2'
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
161
|
name: commander
|
162
162
|
requirement: !ruby/object:Gem::Requirement
|
@@ -498,6 +498,9 @@ dependencies:
|
|
498
498
|
- - ">="
|
499
499
|
- !ruby/object:Gem::Version
|
500
500
|
version: 0.1.1
|
501
|
+
- - "<"
|
502
|
+
- !ruby/object:Gem::Version
|
503
|
+
version: 1.0.0
|
501
504
|
type: :runtime
|
502
505
|
prerelease: false
|
503
506
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -505,6 +508,9 @@ dependencies:
|
|
505
508
|
- - ">="
|
506
509
|
- !ruby/object:Gem::Version
|
507
510
|
version: 0.1.1
|
511
|
+
- - "<"
|
512
|
+
- !ruby/object:Gem::Version
|
513
|
+
version: 1.0.0
|
508
514
|
- !ruby/object:Gem::Dependency
|
509
515
|
name: plist
|
510
516
|
requirement: !ruby/object:Gem::Requirement
|
@@ -551,14 +557,14 @@ dependencies:
|
|
551
557
|
requirements:
|
552
558
|
- - '='
|
553
559
|
- !ruby/object:Gem::Version
|
554
|
-
version: 0.1.
|
560
|
+
version: 0.1.5
|
555
561
|
type: :runtime
|
556
562
|
prerelease: false
|
557
563
|
version_requirements: !ruby/object:Gem::Requirement
|
558
564
|
requirements:
|
559
565
|
- - '='
|
560
566
|
- !ruby/object:Gem::Version
|
561
|
-
version: 0.1.
|
567
|
+
version: 0.1.5
|
562
568
|
- !ruby/object:Gem::Dependency
|
563
569
|
name: simctl
|
564
570
|
requirement: !ruby/object:Gem::Requirement
|
@@ -688,6 +694,9 @@ dependencies:
|
|
688
694
|
- - ">="
|
689
695
|
- !ruby/object:Gem::Version
|
690
696
|
version: 0.0.3
|
697
|
+
- - "<"
|
698
|
+
- !ruby/object:Gem::Version
|
699
|
+
version: 2.0.0
|
691
700
|
type: :runtime
|
692
701
|
prerelease: false
|
693
702
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -695,6 +704,9 @@ dependencies:
|
|
695
704
|
- - ">="
|
696
705
|
- !ruby/object:Gem::Version
|
697
706
|
version: 0.0.3
|
707
|
+
- - "<"
|
708
|
+
- !ruby/object:Gem::Version
|
709
|
+
version: 2.0.0
|
698
710
|
- !ruby/object:Gem::Dependency
|
699
711
|
name: xcpretty
|
700
712
|
requirement: !ruby/object:Gem::Requirement
|
@@ -715,7 +727,9 @@ email:
|
|
715
727
|
- fastlane@krausefx.com
|
716
728
|
executables:
|
717
729
|
- bin-proxy
|
730
|
+
- console
|
718
731
|
- fastlane
|
732
|
+
- match_file
|
719
733
|
extensions: []
|
720
734
|
extra_rdoc_files: []
|
721
735
|
files:
|
@@ -723,7 +737,9 @@ files:
|
|
723
737
|
- LICENSE
|
724
738
|
- README.md
|
725
739
|
- bin/bin-proxy
|
740
|
+
- bin/console
|
726
741
|
- bin/fastlane
|
742
|
+
- bin/match_file
|
727
743
|
- cert/README.md
|
728
744
|
- cert/lib/cert.rb
|
729
745
|
- cert/lib/cert/commands_generator.rb
|
@@ -1038,6 +1054,7 @@ files:
|
|
1038
1054
|
- fastlane/lib/fastlane/command_line_handler.rb
|
1039
1055
|
- fastlane/lib/fastlane/commands_generator.rb
|
1040
1056
|
- fastlane/lib/fastlane/configuration_helper.rb
|
1057
|
+
- fastlane/lib/fastlane/console.rb
|
1041
1058
|
- fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb
|
1042
1059
|
- fastlane/lib/fastlane/documentation/actions_list.rb
|
1043
1060
|
- fastlane/lib/fastlane/documentation/docs_generator.rb
|
@@ -1270,6 +1287,7 @@ files:
|
|
1270
1287
|
- match/lib/match/change_password.rb
|
1271
1288
|
- match/lib/match/commands_generator.rb
|
1272
1289
|
- match/lib/match/encryption.rb
|
1290
|
+
- match/lib/match/encryption/encryption.rb
|
1273
1291
|
- match/lib/match/encryption/interface.rb
|
1274
1292
|
- match/lib/match/encryption/openssl.rb
|
1275
1293
|
- match/lib/match/generator.rb
|
@@ -1678,6 +1696,5 @@ requirements: []
|
|
1678
1696
|
rubygems_version: 3.2.33
|
1679
1697
|
signing_key:
|
1680
1698
|
specification_version: 4
|
1681
|
-
summary: The easiest way to
|
1682
|
-
Android apps
|
1699
|
+
summary: The easiest way to build and release mobile apps.
|
1683
1700
|
test_files: []
|