fastlane 2.214.0 → 2.215.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +84 -84
- data/deliver/lib/deliver/app_screenshot.rb +13 -10
- data/deliver/lib/deliver/submit_for_review.rb +13 -0
- data/fastlane/lib/fastlane/.features.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
- data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
- data/fastlane/lib/fastlane/new_action.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -2
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/version.rb +2 -2
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +22 -2
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +5 -1
- 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 +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +26 -16
- data/fastlane_core/lib/fastlane_core/.env.rb.swp +0 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +1 -1
- data/frameit/lib/frameit/device_types.rb +1 -1
- data/match/lib/match/change_password.rb +3 -9
- data/match/lib/match/commands_generator.rb +3 -6
- data/match/lib/match/encryption.rb +1 -1
- data/match/lib/match/importer.rb +3 -31
- data/match/lib/match/migrate.rb +6 -2
- data/match/lib/match/nuke.rb +3 -25
- data/match/lib/match/options.rb +7 -0
- data/match/lib/match/runner.rb +5 -32
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +6 -0
- data/match/lib/match/storage.rb +56 -5
- data/spaceship/lib/spaceship/connect_api/api_client.rb +19 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
- data/supply/lib/supply/.client.rb.swp +0 -0
- data/supply/lib/supply/client.rb +47 -21
- data/supply/lib/supply/image_listing.rb +15 -0
- data/supply/lib/supply/options.rb +5 -0
- data/supply/lib/supply/setup.rb +1 -1
- data/supply/lib/supply/uploader.rb +32 -5
- data/supply/lib/supply.rb +1 -0
- metadata +284 -272
@@ -4221,7 +4221,7 @@ public func downloadFromPlayStore(packageName: String,
|
|
4221
4221
|
|
4222
4222
|
Download the universal APK of a given version code from the Google Play Console.
|
4223
4223
|
|
4224
|
-
This uses
|
4224
|
+
This uses _fastlane_ `supply` (and the `AndroidPublisher` Google API) to download the Universal APK
|
4225
4225
|
generated by Google after you uploaded an `.aab` bundle to the Play Console.
|
4226
4226
|
|
4227
4227
|
See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list
|
@@ -6734,6 +6734,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
6734
6734
|
- s3SecretAccessKey: S3 secret access key
|
6735
6735
|
- s3Bucket: Name of the S3 bucket
|
6736
6736
|
- s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
|
6737
|
+
- s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
|
6737
6738
|
- gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
|
6738
6739
|
- gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
|
6739
6740
|
- keychainName: Keychain the items should be imported to
|
@@ -6788,6 +6789,7 @@ public func match(type: String = matchfile.type,
|
|
6788
6789
|
s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3SecretAccessKey),
|
6789
6790
|
s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3Bucket),
|
6790
6791
|
s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3ObjectPrefix),
|
6792
|
+
s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.s3SkipEncryption),
|
6791
6793
|
gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.gitlabProject),
|
6792
6794
|
gitlabHost: String = matchfile.gitlabHost,
|
6793
6795
|
keychainName: String = matchfile.keychainName,
|
@@ -6840,6 +6842,7 @@ public func match(type: String = matchfile.type,
|
|
6840
6842
|
let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
|
6841
6843
|
let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
|
6842
6844
|
let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
|
6845
|
+
let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
|
6843
6846
|
let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
|
6844
6847
|
let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
|
6845
6848
|
let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
|
@@ -6891,6 +6894,7 @@ public func match(type: String = matchfile.type,
|
|
6891
6894
|
s3SecretAccessKeyArg,
|
6892
6895
|
s3BucketArg,
|
6893
6896
|
s3ObjectPrefixArg,
|
6897
|
+
s3SkipEncryptionArg,
|
6894
6898
|
gitlabProjectArg,
|
6895
6899
|
gitlabHostArg,
|
6896
6900
|
keychainNameArg,
|
@@ -6953,6 +6957,7 @@ public func match(type: String = matchfile.type,
|
|
6953
6957
|
- s3SecretAccessKey: S3 secret access key
|
6954
6958
|
- s3Bucket: Name of the S3 bucket
|
6955
6959
|
- s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
|
6960
|
+
- s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
|
6956
6961
|
- gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
|
6957
6962
|
- gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
|
6958
6963
|
- keychainName: Keychain the items should be imported to
|
@@ -7011,6 +7016,7 @@ public func matchNuke(type: String = "development",
|
|
7011
7016
|
s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7012
7017
|
s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7013
7018
|
s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7019
|
+
s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
7014
7020
|
gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7015
7021
|
gitlabHost: String = "https://gitlab.com",
|
7016
7022
|
keychainName: String = "login.keychain",
|
@@ -7063,6 +7069,7 @@ public func matchNuke(type: String = "development",
|
|
7063
7069
|
let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
|
7064
7070
|
let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
|
7065
7071
|
let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
|
7072
|
+
let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
|
7066
7073
|
let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
|
7067
7074
|
let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
|
7068
7075
|
let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
|
@@ -7114,6 +7121,7 @@ public func matchNuke(type: String = "development",
|
|
7114
7121
|
s3SecretAccessKeyArg,
|
7115
7122
|
s3BucketArg,
|
7116
7123
|
s3ObjectPrefixArg,
|
7124
|
+
s3SkipEncryptionArg,
|
7117
7125
|
gitlabProjectArg,
|
7118
7126
|
gitlabHostArg,
|
7119
7127
|
keychainNameArg,
|
@@ -10942,6 +10950,7 @@ public func ssh(username: String,
|
|
10942
10950
|
- skipUploadChangelogs: Whether to skip uploading changelogs
|
10943
10951
|
- skipUploadImages: Whether to skip uploading images, screenshots not included
|
10944
10952
|
- skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
|
10953
|
+
- syncImageUpload: Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store
|
10945
10954
|
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
10946
10955
|
- trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
|
10947
10956
|
- validateOnly: Only validate changes with Google Play rather than actually publish
|
@@ -10984,6 +10993,7 @@ public func supply(packageName: String,
|
|
10984
10993
|
skipUploadChangelogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10985
10994
|
skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10986
10995
|
skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10996
|
+
syncImageUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10987
10997
|
trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10988
10998
|
trackPromoteReleaseStatus: String = "completed",
|
10989
10999
|
validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -11024,6 +11034,7 @@ public func supply(packageName: String,
|
|
11024
11034
|
let skipUploadChangelogsArg = skipUploadChangelogs.asRubyArgument(name: "skip_upload_changelogs", type: nil)
|
11025
11035
|
let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
|
11026
11036
|
let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
|
11037
|
+
let syncImageUploadArg = syncImageUpload.asRubyArgument(name: "sync_image_upload", type: nil)
|
11027
11038
|
let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
|
11028
11039
|
let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
|
11029
11040
|
let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
|
@@ -11063,6 +11074,7 @@ public func supply(packageName: String,
|
|
11063
11074
|
skipUploadChangelogsArg,
|
11064
11075
|
skipUploadImagesArg,
|
11065
11076
|
skipUploadScreenshotsArg,
|
11077
|
+
syncImageUploadArg,
|
11066
11078
|
trackPromoteToArg,
|
11067
11079
|
trackPromoteReleaseStatusArg,
|
11068
11080
|
validateOnlyArg,
|
@@ -11191,6 +11203,7 @@ public func swiftlint(mode: String = "lint",
|
|
11191
11203
|
- s3SecretAccessKey: S3 secret access key
|
11192
11204
|
- s3Bucket: Name of the S3 bucket
|
11193
11205
|
- s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
|
11206
|
+
- s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
|
11194
11207
|
- gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
|
11195
11208
|
- gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
|
11196
11209
|
- keychainName: Keychain the items should be imported to
|
@@ -11245,6 +11258,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11245
11258
|
s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11246
11259
|
s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11247
11260
|
s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11261
|
+
s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11248
11262
|
gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11249
11263
|
gitlabHost: String = "https://gitlab.com",
|
11250
11264
|
keychainName: String = "login.keychain",
|
@@ -11297,6 +11311,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11297
11311
|
let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
|
11298
11312
|
let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
|
11299
11313
|
let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
|
11314
|
+
let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
|
11300
11315
|
let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
|
11301
11316
|
let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
|
11302
11317
|
let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
|
@@ -11348,6 +11363,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11348
11363
|
s3SecretAccessKeyArg,
|
11349
11364
|
s3BucketArg,
|
11350
11365
|
s3ObjectPrefixArg,
|
11366
|
+
s3SkipEncryptionArg,
|
11351
11367
|
gitlabProjectArg,
|
11352
11368
|
gitlabHostArg,
|
11353
11369
|
keychainNameArg,
|
@@ -12669,6 +12685,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12669
12685
|
- skipUploadChangelogs: Whether to skip uploading changelogs
|
12670
12686
|
- skipUploadImages: Whether to skip uploading images, screenshots not included
|
12671
12687
|
- skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
|
12688
|
+
- syncImageUpload: Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store
|
12672
12689
|
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
12673
12690
|
- trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
|
12674
12691
|
- validateOnly: Only validate changes with Google Play rather than actually publish
|
@@ -12711,6 +12728,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12711
12728
|
skipUploadChangelogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12712
12729
|
skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12713
12730
|
skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12731
|
+
syncImageUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12714
12732
|
trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12715
12733
|
trackPromoteReleaseStatus: String = "completed",
|
12716
12734
|
validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -12751,6 +12769,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12751
12769
|
let skipUploadChangelogsArg = skipUploadChangelogs.asRubyArgument(name: "skip_upload_changelogs", type: nil)
|
12752
12770
|
let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
|
12753
12771
|
let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
|
12772
|
+
let syncImageUploadArg = syncImageUpload.asRubyArgument(name: "sync_image_upload", type: nil)
|
12754
12773
|
let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
|
12755
12774
|
let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
|
12756
12775
|
let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
|
@@ -12790,6 +12809,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12790
12809
|
skipUploadChangelogsArg,
|
12791
12810
|
skipUploadImagesArg,
|
12792
12811
|
skipUploadScreenshotsArg,
|
12812
|
+
syncImageUploadArg,
|
12793
12813
|
trackPromoteToArg,
|
12794
12814
|
trackPromoteReleaseStatusArg,
|
12795
12815
|
validateOnlyArg,
|
@@ -13652,4 +13672,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13652
13672
|
|
13653
13673
|
// Please don't remove the lines below
|
13654
13674
|
// They are used to detect outdated files
|
13655
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13675
|
+
// FastlaneRunnerAPIVersion [0.9.172]
|
@@ -92,6 +92,9 @@ public protocol MatchfileProtocol: AnyObject {
|
|
92
92
|
/// Prefix to be used on all objects uploaded to S3
|
93
93
|
var s3ObjectPrefix: String? { get }
|
94
94
|
|
95
|
+
/// Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
|
96
|
+
var s3SkipEncryption: Bool { get }
|
97
|
+
|
95
98
|
/// GitLab Project Path (i.e. 'gitlab-org/gitlab')
|
96
99
|
var gitlabProject: String? { get }
|
97
100
|
|
@@ -187,6 +190,7 @@ public extension MatchfileProtocol {
|
|
187
190
|
var s3SecretAccessKey: String? { return nil }
|
188
191
|
var s3Bucket: String? { return nil }
|
189
192
|
var s3ObjectPrefix: String? { return nil }
|
193
|
+
var s3SkipEncryption: Bool { return false }
|
190
194
|
var gitlabProject: String? { return nil }
|
191
195
|
var gitlabHost: String { return "https://gitlab.com" }
|
192
196
|
var keychainName: String { return "login.keychain" }
|
@@ -212,4 +216,4 @@ public extension MatchfileProtocol {
|
|
212
216
|
|
213
217
|
// Please don't remove the lines below
|
214
218
|
// They are used to detect outdated files
|
215
|
-
// FastlaneRunnerAPIVersion [0.9.
|
219
|
+
// FastlaneRunnerAPIVersion [0.9.116]
|
@@ -2,45 +2,55 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.52.3",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
9
9
|
"files": {
|
10
|
+
"arm64_sonoma": {
|
11
|
+
"cellar": ":any_skip_relocation",
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a5ea23d7a08c20b20981a23f1ebc3221ca5796408934c412c2518598e00eb50f",
|
13
|
+
"sha256": "a5ea23d7a08c20b20981a23f1ebc3221ca5796408934c412c2518598e00eb50f"
|
14
|
+
},
|
10
15
|
"arm64_ventura": {
|
11
16
|
"cellar": ":any_skip_relocation",
|
12
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
13
|
-
"sha256": "
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:4c60e18bc44c0781d97a96c536aa8bb6e762b79008927c5e7307dcf2c69b6058",
|
18
|
+
"sha256": "4c60e18bc44c0781d97a96c536aa8bb6e762b79008927c5e7307dcf2c69b6058"
|
14
19
|
},
|
15
20
|
"arm64_monterey": {
|
16
21
|
"cellar": ":any_skip_relocation",
|
17
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
18
|
-
"sha256": "
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d63d1affcfba1ea8b6bf035d4abd834bf2effe0c0cf385ba608f98341da1c837",
|
23
|
+
"sha256": "d63d1affcfba1ea8b6bf035d4abd834bf2effe0c0cf385ba608f98341da1c837"
|
19
24
|
},
|
20
25
|
"arm64_big_sur": {
|
21
26
|
"cellar": ":any_skip_relocation",
|
22
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
23
|
-
"sha256": "
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d80ec81a9140159181b77145d2dfdcd38488b23b262ef1bd74ab7163d0cbebae",
|
28
|
+
"sha256": "d80ec81a9140159181b77145d2dfdcd38488b23b262ef1bd74ab7163d0cbebae"
|
29
|
+
},
|
30
|
+
"sonoma": {
|
31
|
+
"cellar": ":any_skip_relocation",
|
32
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1aa6efde9ecda9e98c1b852192e0230b2e84055861382660e93c50e59a80487f",
|
33
|
+
"sha256": "1aa6efde9ecda9e98c1b852192e0230b2e84055861382660e93c50e59a80487f"
|
24
34
|
},
|
25
35
|
"ventura": {
|
26
36
|
"cellar": ":any_skip_relocation",
|
27
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
28
|
-
"sha256": "
|
37
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:274da364741558f1f52780e9a92354db212a803cf5d84c2ca9ff632d94ada47d",
|
38
|
+
"sha256": "274da364741558f1f52780e9a92354db212a803cf5d84c2ca9ff632d94ada47d"
|
29
39
|
},
|
30
40
|
"monterey": {
|
31
41
|
"cellar": ":any_skip_relocation",
|
32
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
33
|
-
"sha256": "
|
42
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:b53d82e6f2d42bf1e6fa799983fdfae934b483bc916c34436184fcb7e407f896",
|
43
|
+
"sha256": "b53d82e6f2d42bf1e6fa799983fdfae934b483bc916c34436184fcb7e407f896"
|
34
44
|
},
|
35
45
|
"big_sur": {
|
36
46
|
"cellar": ":any_skip_relocation",
|
37
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
38
|
-
"sha256": "
|
47
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:9bd117c9e2f92bde0f59a4106748a56e57687a1716627ef601e63b15a383ea35",
|
48
|
+
"sha256": "9bd117c9e2f92bde0f59a4106748a56e57687a1716627ef601e63b15a383ea35"
|
39
49
|
},
|
40
50
|
"x86_64_linux": {
|
41
51
|
"cellar": "/home/linuxbrew/.linuxbrew/Cellar",
|
42
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
43
|
-
"sha256": "
|
52
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:384fee82f88b4bf8b30cfe9cec946ebd9127a4741b28e06cec42fc0d9b70c0f6",
|
53
|
+
"sha256": "384fee82f88b4bf8b30cfe9cec946ebd9127a4741b28e06cec42fc0d9b70c0f6"
|
44
54
|
}
|
45
55
|
}
|
46
56
|
}
|
@@ -74,7 +84,7 @@
|
|
74
84
|
"macOS": "12.5"
|
75
85
|
},
|
76
86
|
"ventura": {
|
77
|
-
"HOMEBREW_VERSION": "4.
|
87
|
+
"HOMEBREW_VERSION": "4.1.11-38-gaa2a77b",
|
78
88
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
79
89
|
"Homebrew/homebrew-core": "api",
|
80
90
|
"CLT": "",
|
Binary file
|
@@ -146,7 +146,7 @@ module FastlaneCore
|
|
146
146
|
|
147
147
|
def self.install_wwdr_certificate(cert_alias)
|
148
148
|
url = WWDRCA_CERTIFICATES.find { |c| c[:alias] == cert_alias }.fetch(:url)
|
149
|
-
file = Tempfile.new(File.basename(url))
|
149
|
+
file = Tempfile.new([File.basename(url, ".cer"), ".cer"])
|
150
150
|
filename = file.path
|
151
151
|
keychain = wwdr_keychain
|
152
152
|
keychain = "-k #{keychain.shellescape}" unless keychain.empty?
|
@@ -120,7 +120,7 @@ module Frameit
|
|
120
120
|
IPHONE_8_PLUS ||= Frameit::Device.new("iphone-8-plus", "Apple iPhone 8 Plus", 6, [[1242, 2208], [2208, 1242]], 401, Color::SPACE_GRAY)
|
121
121
|
IPHONE_X ||= Frameit::Device.new("iphone-X", "Apple iPhone X", 7, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_58, :use_legacy_iphonex)
|
122
122
|
IPHONE_XS ||= Frameit::Device.new("iphone-XS", "Apple iPhone XS", 8, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_58, :use_legacy_iphonexs)
|
123
|
-
IPHONE_XR ||= Frameit::Device.new("iphone-XR", "Apple iPhone XR", 8, [[828, 1792], [1792, 828]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::
|
123
|
+
IPHONE_XR ||= Frameit::Device.new("iphone-XR", "Apple iPhone XR", 8, [[828, 1792], [1792, 828]], 326, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_65, :use_legacy_iphonexsmax)
|
124
124
|
IPHONE_XS_MAX ||= Frameit::Device.new("iphone-XS-Max", "Apple iPhone XS Max", 8, [[1242, 2688], [2688, 1242]], 458, Color::SPACE_GRAY, Platform::IOS, Deliver::AppScreenshot::ScreenSize::IOS_65, :use_legacy_iphonexsmax)
|
125
125
|
IPHONE_11 ||= Frameit::Device.new("iphone-11", "Apple iPhone 11", 9, [[828, 1792], [1792, 828]], 326, Color::BLACK, Platform::IOS)
|
126
126
|
IPHONE_11_PRO ||= Frameit::Device.new("iphone-11-pro", "Apple iPhone 11 Pro", 9, [[1125, 2436], [2436, 1125]], 458, Color::SPACE_GRAY, Platform::IOS)
|
@@ -19,19 +19,13 @@ module Match
|
|
19
19
|
new_password = FastlaneCore::Helper.ask_password(message: "New passphrase for Git Repo: ", confirm: true)
|
20
20
|
|
21
21
|
# Choose the right storage and encryption implementations
|
22
|
-
storage = Storage.
|
23
|
-
git_url: params[:git_url],
|
24
|
-
shallow_clone: params[:shallow_clone],
|
25
|
-
skip_docs: params[:skip_docs],
|
26
|
-
git_branch: params[:git_branch],
|
27
|
-
git_full_name: params[:git_full_name],
|
28
|
-
git_user_email: params[:git_user_email],
|
29
|
-
clone_branch_directly: params[:clone_branch_directly]
|
30
|
-
})
|
22
|
+
storage = Storage.from_params(params)
|
31
23
|
storage.download
|
32
24
|
|
33
25
|
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
34
26
|
git_url: params[:git_url],
|
27
|
+
s3_bucket: params[:s3_bucket],
|
28
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
35
29
|
working_directory: storage.working_directory
|
36
30
|
})
|
37
31
|
encryption.decrypt_files
|
@@ -118,16 +118,13 @@ module Match
|
|
118
118
|
params = FastlaneCore::Configuration.create(Match::Options.available_options, options.__hash__)
|
119
119
|
params.load_configuration_file("Matchfile")
|
120
120
|
|
121
|
-
storage = Storage.
|
122
|
-
git_url: params[:git_url],
|
123
|
-
shallow_clone: params[:shallow_clone],
|
124
|
-
git_branch: params[:git_branch],
|
125
|
-
clone_branch_directly: params[:clone_branch_directly]
|
126
|
-
})
|
121
|
+
storage = Storage.from_params(params)
|
127
122
|
storage.download
|
128
123
|
|
129
124
|
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
130
125
|
git_url: params[:git_url],
|
126
|
+
s3_bucket: params[:s3_bucket],
|
127
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
131
128
|
working_directory: storage.working_directory
|
132
129
|
})
|
133
130
|
encryption.decrypt_files if encryption
|
@@ -17,7 +17,7 @@ module Match
|
|
17
17
|
},
|
18
18
|
"s3" => lambda { |params|
|
19
19
|
params[:keychain_name] = params[:s3_bucket]
|
20
|
-
return Encryption::OpenSSL.configure(params)
|
20
|
+
return params[:s3_skip_encryption] ? nil : Encryption::OpenSSL.configure(params)
|
21
21
|
},
|
22
22
|
"gitlab_secure_files" => lambda { |params|
|
23
23
|
return nil
|
data/match/lib/match/importer.rb
CHANGED
@@ -15,42 +15,14 @@ module Match
|
|
15
15
|
profile_path = ensure_valid_file_path(profile_path, "Provisioning profile", ".mobileprovision or .provisionprofile", optional: true)
|
16
16
|
|
17
17
|
# Storage
|
18
|
-
storage = Storage.
|
19
|
-
git_url: params[:git_url],
|
20
|
-
shallow_clone: params[:shallow_clone],
|
21
|
-
skip_docs: params[:skip_docs],
|
22
|
-
git_branch: params[:git_branch],
|
23
|
-
git_full_name: params[:git_full_name],
|
24
|
-
git_user_email: params[:git_user_email],
|
25
|
-
git_private_key: params[:git_private_key],
|
26
|
-
git_basic_authorization: params[:git_basic_authorization],
|
27
|
-
git_bearer_authorization: params[:git_bearer_authorization],
|
28
|
-
clone_branch_directly: params[:clone_branch_directly],
|
29
|
-
type: params[:type].to_s,
|
30
|
-
platform: params[:platform].to_s,
|
31
|
-
google_cloud_bucket_name: params[:google_cloud_bucket_name].to_s,
|
32
|
-
google_cloud_keys_file: params[:google_cloud_keys_file].to_s,
|
33
|
-
google_cloud_project_id: params[:google_cloud_project_id].to_s,
|
34
|
-
skip_google_cloud_account_confirmation: params[:skip_google_cloud_account_confirmation],
|
35
|
-
s3_bucket: params[:s3_bucket],
|
36
|
-
s3_region: params[:s3_region],
|
37
|
-
s3_access_key: params[:s3_access_key],
|
38
|
-
s3_secret_access_key: params[:s3_secret_access_key],
|
39
|
-
s3_object_prefix: params[:s3_object_prefix],
|
40
|
-
gitlab_project: params[:gitlab_project],
|
41
|
-
gitlab_host: params[:gitlab_host],
|
42
|
-
readonly: params[:readonly],
|
43
|
-
username: params[:username],
|
44
|
-
team_id: params[:team_id],
|
45
|
-
team_name: params[:team_name],
|
46
|
-
api_key_path: params[:api_key_path],
|
47
|
-
api_key: params[:api_key]
|
48
|
-
})
|
18
|
+
storage = Storage.from_params(params)
|
49
19
|
storage.download
|
50
20
|
|
51
21
|
# Encryption
|
52
22
|
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
53
23
|
git_url: params[:git_url],
|
24
|
+
s3_bucket: params[:s3_bucket],
|
25
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
54
26
|
working_directory: storage.working_directory
|
55
27
|
})
|
56
28
|
encryption.decrypt_files if encryption
|
data/match/lib/match/migrate.rb
CHANGED
@@ -13,13 +13,15 @@ module Match
|
|
13
13
|
|
14
14
|
# We init the Google storage client before the git client
|
15
15
|
# to ask for all the missing inputs *before* cloning the git repo
|
16
|
-
google_cloud_storage = Storage.
|
16
|
+
google_cloud_storage = Storage.from_params({
|
17
|
+
storage_mode: "google_cloud",
|
17
18
|
google_cloud_bucket_name: params[:google_cloud_bucket_name],
|
18
19
|
google_cloud_keys_file: params[:google_cloud_keys_file],
|
19
20
|
google_cloud_project_id: params[:google_cloud_project_id]
|
20
21
|
})
|
21
22
|
|
22
|
-
git_storage = Storage.
|
23
|
+
git_storage = Storage.from_params({
|
24
|
+
storage_mode: "git",
|
23
25
|
git_url: params[:git_url],
|
24
26
|
shallow_clone: params[:shallow_clone],
|
25
27
|
git_branch: params[:git_branch],
|
@@ -29,6 +31,8 @@ module Match
|
|
29
31
|
|
30
32
|
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
31
33
|
git_url: params[:git_url],
|
34
|
+
s3_bucket: params[:s3_bucket],
|
35
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
32
36
|
working_directory: git_storage.working_directory
|
33
37
|
})
|
34
38
|
encryption.decrypt_files if encryption
|
data/match/lib/match/nuke.rb
CHANGED
@@ -34,36 +34,14 @@ module Match
|
|
34
34
|
|
35
35
|
spaceship_login
|
36
36
|
|
37
|
-
self.storage = Storage.
|
38
|
-
git_url: params[:git_url],
|
39
|
-
shallow_clone: params[:shallow_clone],
|
40
|
-
skip_docs: params[:skip_docs],
|
41
|
-
git_branch: params[:git_branch],
|
42
|
-
git_full_name: params[:git_full_name],
|
43
|
-
git_user_email: params[:git_user_email],
|
44
|
-
|
45
|
-
git_private_key: params[:git_private_key],
|
46
|
-
git_basic_authorization: params[:git_basic_authorization],
|
47
|
-
git_bearer_authorization: params[:git_bearer_authorization],
|
48
|
-
|
49
|
-
clone_branch_directly: params[:clone_branch_directly],
|
50
|
-
google_cloud_bucket_name: params[:google_cloud_bucket_name].to_s,
|
51
|
-
google_cloud_keys_file: params[:google_cloud_keys_file].to_s,
|
52
|
-
google_cloud_project_id: params[:google_cloud_project_id].to_s,
|
53
|
-
s3_region: params[:s3_region].to_s,
|
54
|
-
s3_access_key: params[:s3_access_key].to_s,
|
55
|
-
s3_secret_access_key: params[:s3_secret_access_key].to_s,
|
56
|
-
s3_bucket: params[:s3_bucket].to_s,
|
57
|
-
s3_object_prefix: params[:s3_object_prefix].to_s,
|
58
|
-
gitlab_project: params[:gitlab_project],
|
59
|
-
gitlab_host: params[:gitlab_host],
|
60
|
-
team_id: params[:team_id] || Spaceship::ConnectAPI.client.portal_team_id
|
61
|
-
})
|
37
|
+
self.storage = Storage.from_params(params)
|
62
38
|
self.storage.download
|
63
39
|
|
64
40
|
# After the download was complete
|
65
41
|
self.encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
66
42
|
git_url: params[:git_url],
|
43
|
+
s3_bucket: params[:s3_bucket],
|
44
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
67
45
|
working_directory: storage.working_directory
|
68
46
|
})
|
69
47
|
self.encryption.decrypt_files if self.encryption
|
data/match/lib/match/options.rb
CHANGED
@@ -4,6 +4,7 @@ require 'credentials_manager/appfile_config'
|
|
4
4
|
require_relative 'module'
|
5
5
|
|
6
6
|
module Match
|
7
|
+
# rubocop:disable Metrics/ClassLength
|
7
8
|
class Options
|
8
9
|
# This is match specific, as users can append storage specific options
|
9
10
|
def self.append_option(option)
|
@@ -222,6 +223,11 @@ module Match
|
|
222
223
|
env_name: "MATCH_S3_OBJECT_PREFIX",
|
223
224
|
description: "Prefix to be used on all objects uploaded to S3",
|
224
225
|
optional: true),
|
226
|
+
FastlaneCore::ConfigItem.new(key: :s3_skip_encryption,
|
227
|
+
env_name: "MATCH_S3_SKIP_ENCRYPTION",
|
228
|
+
description: "Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html",
|
229
|
+
type: Boolean,
|
230
|
+
default_value: false),
|
225
231
|
|
226
232
|
# Storage: GitLab Secure Files
|
227
233
|
FastlaneCore::ConfigItem.new(key: :gitlab_project,
|
@@ -349,4 +355,5 @@ module Match
|
|
349
355
|
]
|
350
356
|
end
|
351
357
|
end
|
358
|
+
# rubocop:enable Metrics/ClassLength
|
352
359
|
end
|
data/match/lib/match/runner.rb
CHANGED
@@ -31,43 +31,16 @@ module Match
|
|
31
31
|
update_optional_values_depending_on_storage_type(params)
|
32
32
|
|
33
33
|
# Choose the right storage and encryption implementations
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
skip_docs: params[:skip_docs],
|
38
|
-
git_branch: params[:git_branch],
|
39
|
-
git_full_name: params[:git_full_name],
|
40
|
-
git_user_email: params[:git_user_email],
|
41
|
-
clone_branch_directly: params[:clone_branch_directly],
|
42
|
-
git_basic_authorization: params[:git_basic_authorization],
|
43
|
-
git_bearer_authorization: params[:git_bearer_authorization],
|
44
|
-
git_private_key: params[:git_private_key],
|
45
|
-
type: params[:type].to_s,
|
46
|
-
generate_apple_certs: params[:generate_apple_certs],
|
47
|
-
platform: params[:platform].to_s,
|
48
|
-
google_cloud_bucket_name: params[:google_cloud_bucket_name].to_s,
|
49
|
-
google_cloud_keys_file: params[:google_cloud_keys_file].to_s,
|
50
|
-
google_cloud_project_id: params[:google_cloud_project_id].to_s,
|
51
|
-
skip_google_cloud_account_confirmation: params[:skip_google_cloud_account_confirmation],
|
52
|
-
s3_region: params[:s3_region],
|
53
|
-
s3_access_key: params[:s3_access_key],
|
54
|
-
s3_secret_access_key: params[:s3_secret_access_key],
|
55
|
-
s3_bucket: params[:s3_bucket],
|
56
|
-
s3_object_prefix: params[:s3_object_prefix],
|
57
|
-
gitlab_project: params[:gitlab_project],
|
58
|
-
gitlab_host: params[:gitlab_host],
|
59
|
-
readonly: params[:readonly],
|
60
|
-
username: params[:readonly] ? nil : params[:username], # only pass username if not readonly
|
61
|
-
team_id: params[:team_id],
|
62
|
-
team_name: params[:team_name],
|
63
|
-
api_key_path: params[:api_key_path],
|
64
|
-
api_key: params[:api_key]
|
65
|
-
})
|
34
|
+
storage_params = params
|
35
|
+
storage_params[:username] = params[:readonly] ? nil : params[:username] # only pass username if not readonly
|
36
|
+
self.storage = Storage.from_params(storage_params)
|
66
37
|
storage.download
|
67
38
|
|
68
39
|
# Init the encryption only after the `storage.download` was called to have the right working directory
|
69
40
|
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
70
41
|
git_url: params[:git_url],
|
42
|
+
s3_bucket: params[:s3_bucket],
|
43
|
+
s3_skip_encryption: params[:s3_skip_encryption],
|
71
44
|
working_directory: storage.working_directory
|
72
45
|
})
|
73
46
|
encryption.decrypt_files if encryption
|