fastlane 2.206.1 → 2.208.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -96
  3. data/deliver/lib/deliver/runner.rb +31 -35
  4. data/deliver/lib/deliver/upload_price_tier.rb +3 -1
  5. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
  11. data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -16
  12. data/fastlane/lib/fastlane/lane_manager.rb +1 -1
  13. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  14. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  15. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  16. data/fastlane/lib/fastlane/tools.rb +16 -0
  17. data/fastlane/lib/fastlane/version.rb +1 -1
  18. data/fastlane/swift/Deliverfile.swift +1 -1
  19. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  20. data/fastlane/swift/Fastlane.swift +18 -6
  21. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/joshholtz.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  22. data/fastlane/swift/Gymfile.swift +1 -1
  23. data/fastlane/swift/GymfileProtocol.swift +1 -1
  24. data/fastlane/swift/MainProcess.swift +2 -2
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  27. data/fastlane/swift/Precheckfile.swift +1 -1
  28. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  29. data/fastlane/swift/Scanfile.swift +1 -1
  30. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  31. data/fastlane/swift/Screengrabfile.swift +1 -1
  32. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  33. data/fastlane/swift/Snapshotfile.swift +1 -1
  34. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  35. data/fastlane/swift/SocketClient.swift +1 -1
  36. data/fastlane/swift/formatting/Brewfile.lock.json +21 -16
  37. data/fastlane_core/lib/fastlane_core/cert_checker.rb +7 -11
  38. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  39. data/fastlane_core/lib/fastlane_core/project.rb +19 -2
  40. data/frameit/lib/frameit/device_types.rb +2 -0
  41. data/match/lib/match/encryption.rb +3 -0
  42. data/match/lib/match/importer.rb +1 -0
  43. data/match/lib/match/module.rb +53 -1
  44. data/match/lib/match/nuke.rb +3 -40
  45. data/match/lib/match/options.rb +6 -0
  46. data/match/lib/match/runner.rb +11 -1
  47. data/match/lib/match/setup.rb +1 -1
  48. data/match/lib/match/spaceship_ensure.rb +4 -2
  49. data/match/lib/match/storage/gitlab/client.rb +102 -0
  50. data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
  51. data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
  52. data/match/lib/match/storage.rb +4 -0
  53. data/match/lib/match/table_printer.rb +2 -1
  54. data/match/lib/match/utils.rb +10 -2
  55. data/pem/lib/pem/manager.rb +1 -1
  56. data/scan/lib/scan/detect_values.rb +6 -0
  57. data/sigh/lib/sigh/download_all.rb +14 -2
  58. data/sigh/lib/sigh/module.rb +3 -1
  59. data/sigh/lib/sigh/runner.rb +7 -0
  60. data/snapshot/lib/snapshot/options.rb +1 -1
  61. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  62. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  63. data/spaceship/lib/spaceship/connect_api/models/app.rb +4 -2
  64. data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
  65. data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
  66. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +18 -8
  67. data/spaceship/lib/spaceship/tunes/.tunes_client.rb.swp +0 -0
  68. data/spaceship/lib/spaceship/tunes/tunes_client.rb +63 -2
  69. data/trainer/lib/trainer/junit_generator.rb +1 -1
  70. metadata +24 -21
  71. data/spaceship/lib/spaceship/connect_api/.response.rb.swp +0 -0
  72. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
@@ -2113,7 +2113,7 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2113
2113
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2114
2114
  - headless: Enabling this option will prevent displaying the simulator window
2115
2115
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2116
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2116
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2117
2117
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2118
2118
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2119
2119
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2322,7 +2322,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2322
2322
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2323
2323
  - headless: Enabling this option will prevent displaying the simulator window
2324
2324
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2325
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2325
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2326
2326
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2327
2327
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2328
2328
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2705,7 +2705,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2705
2705
  - matchLightweightTag: Whether or not to match a lightweight tag when searching for the last one
2706
2706
  - quiet: Whether or not to disable changelog output
2707
2707
  - includeMerges: **DEPRECATED!** Use `:merge_commit_filtering` instead - Whether or not to include any commits that are merges
2708
- - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: `:include_merges`, `:exclude_merges`, `:only_include_merges`
2708
+ - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges'
2709
2709
 
2710
2710
  - returns: Returns a String containing your formatted git commits
2711
2711
 
@@ -6655,6 +6655,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
6655
6655
  - s3SecretAccessKey: S3 secret access key
6656
6656
  - s3Bucket: Name of the S3 bucket
6657
6657
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6658
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6658
6659
  - keychainName: Keychain the items should be imported to
6659
6660
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6660
6661
  - force: Renew the provisioning profiles every time you run match
@@ -6706,6 +6707,7 @@ public func match(type: String = matchfile.type,
6706
6707
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3SecretAccessKey),
6707
6708
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3Bucket),
6708
6709
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3ObjectPrefix),
6710
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.gitlabProject),
6709
6711
  keychainName: String = matchfile.keychainName,
6710
6712
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.keychainPassword),
6711
6713
  force: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.force),
@@ -6755,6 +6757,7 @@ public func match(type: String = matchfile.type,
6755
6757
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
6756
6758
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
6757
6759
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
6760
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
6758
6761
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
6759
6762
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
6760
6763
  let forceArg = force.asRubyArgument(name: "force", type: nil)
@@ -6803,6 +6806,7 @@ public func match(type: String = matchfile.type,
6803
6806
  s3SecretAccessKeyArg,
6804
6807
  s3BucketArg,
6805
6808
  s3ObjectPrefixArg,
6809
+ gitlabProjectArg,
6806
6810
  keychainNameArg,
6807
6811
  keychainPasswordArg,
6808
6812
  forceArg,
@@ -6862,6 +6866,7 @@ public func match(type: String = matchfile.type,
6862
6866
  - s3SecretAccessKey: S3 secret access key
6863
6867
  - s3Bucket: Name of the S3 bucket
6864
6868
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6869
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6865
6870
  - keychainName: Keychain the items should be imported to
6866
6871
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6867
6872
  - force: Renew the provisioning profiles every time you run match
@@ -6917,6 +6922,7 @@ public func matchNuke(type: String = "development",
6917
6922
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6918
6923
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6919
6924
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6925
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6920
6926
  keychainName: String = "login.keychain",
6921
6927
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6922
6928
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -6966,6 +6972,7 @@ public func matchNuke(type: String = "development",
6966
6972
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
6967
6973
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
6968
6974
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
6975
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
6969
6976
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
6970
6977
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
6971
6978
  let forceArg = force.asRubyArgument(name: "force", type: nil)
@@ -7014,6 +7021,7 @@ public func matchNuke(type: String = "development",
7014
7021
  s3SecretAccessKeyArg,
7015
7022
  s3BucketArg,
7016
7023
  s3ObjectPrefixArg,
7024
+ gitlabProjectArg,
7017
7025
  keychainNameArg,
7018
7026
  keychainPasswordArg,
7019
7027
  forceArg,
@@ -10256,7 +10264,7 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10256
10264
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
10257
10265
  - headless: Enabling this option will prevent displaying the simulator window
10258
10266
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
10259
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
10267
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
10260
10268
  - localizeSimulator: Enabling this option will configure the Simulator's system language
10261
10269
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
10262
10270
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -11060,6 +11068,7 @@ public func swiftlint(mode: String = "lint",
11060
11068
  - s3SecretAccessKey: S3 secret access key
11061
11069
  - s3Bucket: Name of the S3 bucket
11062
11070
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
11071
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
11063
11072
  - keychainName: Keychain the items should be imported to
11064
11073
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
11065
11074
  - force: Renew the provisioning profiles every time you run match
@@ -11111,6 +11120,7 @@ public func syncCodeSigning(type: String = "development",
11111
11120
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11112
11121
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11113
11122
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11123
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11114
11124
  keychainName: String = "login.keychain",
11115
11125
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11116
11126
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11160,6 +11170,7 @@ public func syncCodeSigning(type: String = "development",
11160
11170
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
11161
11171
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
11162
11172
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
11173
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
11163
11174
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
11164
11175
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
11165
11176
  let forceArg = force.asRubyArgument(name: "force", type: nil)
@@ -11208,6 +11219,7 @@ public func syncCodeSigning(type: String = "development",
11208
11219
  s3SecretAccessKeyArg,
11209
11220
  s3BucketArg,
11210
11221
  s3ObjectPrefixArg,
11222
+ gitlabProjectArg,
11211
11223
  keychainNameArg,
11212
11224
  keychainPasswordArg,
11213
11225
  forceArg,
@@ -13263,7 +13275,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13263
13275
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13264
13276
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13265
13277
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13266
- ideFoundationPath: String = "/Applications/Xcode-13.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13278
+ ideFoundationPath: String = "/Applications/Xcode-13.4.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13267
13279
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13268
13280
  {
13269
13281
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13466,4 +13478,4 @@ public let snapshotfile: Snapshotfile = .init()
13466
13478
 
13467
13479
  // Please don't remove the lines below
13468
13480
  // They are used to detect outdated files
13469
- // FastlaneRunnerAPIVersion [0.9.157]
13481
+ // FastlaneRunnerAPIVersion [0.9.160]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -204,4 +204,4 @@ public extension GymfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.107]
207
+ // FastlaneRunnerAPIVersion [0.9.110]
@@ -47,9 +47,9 @@ class MainProcess {
47
47
  let PATH = run("/bin/bash", "-c", "-l", "eval $(/usr/libexec/path_helper -s) ; echo $PATH").stdout
48
48
  main.env["PATH"] = PATH
49
49
  let path = main.run(bash: "which fastlane").stdout
50
- let pids = main.run("lsof", "-t", "-i", ":2000").stdout.split(separator: "\n")
50
+ let pids = main.run("lsof", "-t", "-i", ":\(argumentProcessor.port)").stdout.split(separator: "\n")
51
51
  pids.forEach { main.run("kill", "-9", $0) }
52
- rubySocketCommand = main.runAsync(path, "socket_server", "-c", "1200")
52
+ rubySocketCommand = main.runAsync(path, "socket_server", "-c", argumentProcessor.commandTimeout, "-p", argumentProcessor.port)
53
53
  lastPrintDate = Date()
54
54
  rubySocketCommand.stderror.onStringOutput { print($0) }
55
55
  rubySocketCommand.stdout.onStringOutput { stdout in
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -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
+ /// GitLab Project Path (i.e. 'gitlab-org/gitlab')
96
+ var gitlabProject: String? { get }
97
+
95
98
  /// Keychain the items should be imported to
96
99
  var keychainName: String { get }
97
100
 
@@ -178,6 +181,7 @@ public extension MatchfileProtocol {
178
181
  var s3SecretAccessKey: String? { return nil }
179
182
  var s3Bucket: String? { return nil }
180
183
  var s3ObjectPrefix: String? { return nil }
184
+ var gitlabProject: String? { return nil }
181
185
  var keychainName: String { return "login.keychain" }
182
186
  var keychainPassword: String? { return nil }
183
187
  var force: Bool { return false }
@@ -200,4 +204,4 @@ public extension MatchfileProtocol {
200
204
 
201
205
  // Please don't remove the lines below
202
206
  // They are used to detect outdated files
203
- // FastlaneRunnerAPIVersion [0.9.101]
207
+ // FastlaneRunnerAPIVersion [0.9.104]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.100]
55
+ // FastlaneRunnerAPIVersion [0.9.103]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -312,4 +312,4 @@ public extension ScanfileProtocol {
312
312
 
313
313
  // Please don't remove the lines below
314
314
  // They are used to detect outdated files
315
- // FastlaneRunnerAPIVersion [0.9.112]
315
+ // FastlaneRunnerAPIVersion [0.9.115]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.102]
99
+ // FastlaneRunnerAPIVersion [0.9.105]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.206.1
20
+ // Generated with fastlane 2.208.0
@@ -53,7 +53,7 @@ public protocol SnapshotfileProtocol: AnyObject {
53
53
  /// Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
54
54
  var overrideStatusBar: Bool { get }
55
55
 
56
- /// Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
56
+ /// Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
57
57
  var overrideStatusBarArguments: String? { get }
58
58
 
59
59
  /// Enabling this option will configure the Simulator's system language
@@ -204,4 +204,4 @@ public extension SnapshotfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.96]
207
+ // FastlaneRunnerAPIVersion [0.9.99]
@@ -310,7 +310,7 @@ extension SocketClient: StreamDelegate {
310
310
  LaneFile.fastfileInstance?.onError(currentLane: ArgumentProcessor(args: CommandLine.arguments).currentLane, errorInfo: failureInformation.joined(), errorClass: failureClass, errorMessage: failureMessage)
311
311
  socketDelegate?.commandExecuted(serverResponse: .serverError) {
312
312
  $0.writeSemaphore.signal()
313
- self.handleFailure(message: failureInformation)
313
+ self.handleFailure(message: failureMessage.map { m in [m] + failureInformation } ?? failureInformation)
314
314
  }
315
315
 
316
316
  case let .parseFailure(failureInformation):
@@ -2,35 +2,40 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.49.9",
5
+ "version": "0.49.13",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
10
  "arm64_monterey": {
11
11
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:bacd0dc8f488fd7909252467eaf16dcd339468857aea13a3643f7e0efd7715f8",
13
- "sha256": "bacd0dc8f488fd7909252467eaf16dcd339468857aea13a3643f7e0efd7715f8"
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:9ca3ab9db1f528cd75201a3cbe8a165c92181fe4353a0aae3002e762992606e2",
13
+ "sha256": "9ca3ab9db1f528cd75201a3cbe8a165c92181fe4353a0aae3002e762992606e2"
14
14
  },
15
15
  "arm64_big_sur": {
16
16
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7bc39a57d110f727993aa556cca5cba5549d536367bc12f25b56e25c4fdfa194",
18
- "sha256": "7bc39a57d110f727993aa556cca5cba5549d536367bc12f25b56e25c4fdfa194"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7c9ca8d9f5d303a9e4e4e4359022075abb82d835cecab2f374960d80be6f366e",
18
+ "sha256": "7c9ca8d9f5d303a9e4e4e4359022075abb82d835cecab2f374960d80be6f366e"
19
19
  },
20
20
  "monterey": {
21
21
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:739d230372dd797d5cf5a0586156068ecb5965878550a67b5ca56ccdf2799557",
23
- "sha256": "739d230372dd797d5cf5a0586156068ecb5965878550a67b5ca56ccdf2799557"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:6686aa8139c4c0f70c1b6b491ace161e0d767ae3a0d9fb27aa9379968423c93e",
23
+ "sha256": "6686aa8139c4c0f70c1b6b491ace161e0d767ae3a0d9fb27aa9379968423c93e"
24
24
  },
25
25
  "big_sur": {
26
26
  "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:22080bdc75b03f5926d68fb248fc401d6a94876205ce03663a8950644b0e41e6",
28
- "sha256": "22080bdc75b03f5926d68fb248fc401d6a94876205ce03663a8950644b0e41e6"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1d46d7bdd32e2743e54db27aa757c75f454626ddce633fed24c2981c2227617c",
28
+ "sha256": "1d46d7bdd32e2743e54db27aa757c75f454626ddce633fed24c2981c2227617c"
29
29
  },
30
30
  "catalina": {
31
31
  "cellar": ":any_skip_relocation",
32
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d4cda88cf3bef7b18e960197b8db4826f234e3b3434ba902c3924c37b9040fe8",
33
- "sha256": "d4cda88cf3bef7b18e960197b8db4826f234e3b3434ba902c3924c37b9040fe8"
32
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:309a419a4345fd1ef7ad75dddbe0995b5dced750b2621ca3aaa1ba49adaddaed",
33
+ "sha256": "309a419a4345fd1ef7ad75dddbe0995b5dced750b2621ca3aaa1ba49adaddaed"
34
+ },
35
+ "x86_64_linux": {
36
+ "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
37
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:af6b21401a7697c6f58d9eb84d14f896e017168193f585e3e571a6eddb77fe7b",
38
+ "sha256": "af6b21401a7697c6f58d9eb84d14f896e017168193f585e3e571a6eddb77fe7b"
34
39
  }
35
40
  }
36
41
  }
@@ -56,12 +61,12 @@
56
61
  "macOS": "11.0.1"
57
62
  },
58
63
  "monterey": {
59
- "HOMEBREW_VERSION": "3.4.11-87-g555cf33",
64
+ "HOMEBREW_VERSION": "3.5.5-12-g6615cd9",
60
65
  "HOMEBREW_PREFIX": "/opt/homebrew",
61
- "Homebrew/homebrew-core": "ef68d97eded78385ebe5ca6d988e84976c47eb41",
62
- "CLT": "13.2.0.0.1.1638488800",
63
- "Xcode": "13.2.1",
64
- "macOS": "12.2.1"
66
+ "Homebrew/homebrew-core": "58e6afce82f3e889b86e852bf7490c5a35802ac9",
67
+ "CLT": "13.4.0.0.1.1651278267",
68
+ "Xcode": "13.4.1",
69
+ "macOS": "12.4"
65
70
  }
66
71
  }
67
72
  }
@@ -22,7 +22,7 @@ module FastlaneCore
22
22
  end
23
23
 
24
24
  def self.installed_identies(in_keychain: nil)
25
- install_wwdr_certificates unless wwdr_certificates_installed?
25
+ install_wwdr_certificate unless wwdr_certificate_installed?
26
26
 
27
27
  available = list_available_identities(in_keychain: in_keychain)
28
28
  # Match for this text against word boundaries to avoid edge cases around multiples of 10 identities!
@@ -81,20 +81,16 @@ module FastlaneCore
81
81
  `#{commands.join(' ')}`
82
82
  end
83
83
 
84
- def self.wwdr_certificates_installed?
84
+ def self.wwdr_certificate_installed?
85
85
  certificate_name = "Apple Worldwide Developer Relations Certification Authority"
86
86
  keychain = wwdr_keychain
87
87
  response = Helper.backticks("security find-certificate -a -c '#{certificate_name}' #{keychain.shellescape}", print: FastlaneCore::Globals.verbose?)
88
88
  certs = response.split("keychain: \"#{keychain}\"").drop(1)
89
- certs.count == 2
89
+ certs.count >= 1
90
90
  end
91
91
 
92
- def self.install_wwdr_certificates
93
- install_wwdr_certificate('https://developer.apple.com/certificationauthority/AppleWWDRCA.cer')
94
- install_wwdr_certificate('https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer')
95
- end
96
-
97
- def self.install_wwdr_certificate(url)
92
+ def self.install_wwdr_certificate
93
+ url = 'https://www.apple.com/certificateauthority/AppleWWDRCAG6.cer'
98
94
  file = Tempfile.new(File.basename(url))
99
95
  filename = file.path
100
96
  keychain = wwdr_keychain
@@ -124,8 +120,8 @@ module FastlaneCore
124
120
 
125
121
  def self.wwdr_keychain
126
122
  priority = [
127
- "security list-keychains -d user",
128
- "security default-keychain -d user"
123
+ "security default-keychain -d user",
124
+ "security list-keychains -d user"
129
125
  ]
130
126
  priority.each do |command|
131
127
  keychains = Helper.backticks(command, print: FastlaneCore::Globals.verbose?).split("\n")
@@ -14,6 +14,7 @@ module FastlaneCore
14
14
  command << " -T /usr/bin/codesign" # to not be asked for permission when running a tool like `gym` (before Sierra)
15
15
  command << " -T /usr/bin/security"
16
16
  command << " -T /usr/bin/productbuild" # to not be asked for permission when using an installer cert for macOS
17
+ command << " -T /usr/bin/productsign" # to not be asked for permission when using an installer cert for macOS
17
18
  command << " 1> /dev/null" unless output
18
19
 
19
20
  sensitive_command = command.gsub(password_part, " -P ********")
@@ -356,7 +356,7 @@ module FastlaneCore
356
356
  # This xcodebuild bug is fixed in Xcode 8.3 so 'clean' it's not necessary anymore
357
357
  # See: https://github.com/fastlane/fastlane/pull/5626
358
358
  if FastlaneCore::Helper.xcode_at_least?('8.3')
359
- command = "xcodebuild -showBuildSettings #{xcodebuild_parameters.join(' ')}"
359
+ command = "xcodebuild -showBuildSettings #{xcodebuild_parameters.join(' ')}#{xcodebuild_destination_parameter}"
360
360
  else
361
361
  command = "xcodebuild clean -showBuildSettings #{xcodebuild_parameters.join(' ')}"
362
362
  end
@@ -365,10 +365,27 @@ module FastlaneCore
365
365
 
366
366
  def build_xcodebuild_resolvepackagedependencies_command
367
367
  return nil if options[:skip_package_dependencies_resolution]
368
- command = "xcodebuild -resolvePackageDependencies #{xcodebuild_parameters.join(' ')}"
368
+ command = "xcodebuild -resolvePackageDependencies #{xcodebuild_parameters.join(' ')}#{xcodebuild_destination_parameter}"
369
369
  command
370
370
  end
371
371
 
372
+ def xcodebuild_destination_parameter
373
+ # Xcode13+ xcodebuild command 'without destination parameter' generates annoying warnings
374
+ # See: https://github.com/fastlane/fastlane/issues/19579
375
+ destination_parameter = ""
376
+ xcode_at_least_13 = FastlaneCore::Helper.xcode_at_least?("13")
377
+ if xcode_at_least_13 && options[:destination]
378
+ begin
379
+ destination_parameter = " " + "-destination #{options[:destination].shellescape}"
380
+ rescue => ex
381
+ # xcodebuild command can continue without destination parameter, so
382
+ # we really don't care about this exception if something goes wrong with shellescape
383
+ UI.important("Failed to set destination parameter for xcodebuild command: #{ex}")
384
+ end
385
+ end
386
+ destination_parameter
387
+ end
388
+
372
389
  # Get the build settings for our project
373
390
  # e.g. to properly get the DerivedData folder
374
391
  # @param [String] The key of which we want the value for (e.g. "PRODUCT_NAME")
@@ -50,6 +50,7 @@ module Frameit
50
50
  MIDNIGHT ||= "Midnight"
51
51
  STARLIGHT ||= "Starlight"
52
52
  SIERRA ||= "Sierra"
53
+ SORTA_SAGE ||= "Sorta Sage"
53
54
 
54
55
  def self.all_colors
55
56
  Color.constants.map { |c| Color.const_get(c).upcase.gsub(' ', '_') }
@@ -85,6 +86,7 @@ module Frameit
85
86
  # Google Pixel 4's priority should be higher than Samsung Galaxy S10+ (priority 8):
86
87
  GOOGLE_PIXEL_4 ||= Frameit::Device.new("google-pixel-4", "Google Pixel 4", 9, [[1080, 2280], [2280, 1080]], 444, Color::JUST_BLACK, Platform::ANDROID)
87
88
  GOOGLE_PIXEL_4_XL ||= Frameit::Device.new("google-pixel-4-xl", "Google Pixel 4 XL", 9, [[1440, 3040], [3040, 1440]], 537, Color::JUST_BLACK, Platform::ANDROID)
89
+ GOOGLE_PIXEL_5 ||= Frameit::Device.new("google-pixel-5", "Google Pixel 5", 10, [[1080, 2340], [2340, 1080]], 432, Color::JUST_BLACK, Platform::ANDROID)
88
90
  HTC_ONE_A9 ||= Frameit::Device.new("htc-one-a9", "HTC One A9", 6, [[1080, 1920], [1920, 1080]], 441, Color::BLACK, Platform::ANDROID)
89
91
  HTC_ONE_M8 ||= Frameit::Device.new("htc-one-m8", "HTC One M8", 3, [[1080, 1920], [1920, 1080]], 441, Color::BLACK, Platform::ANDROID)
90
92
  HUAWEI_P8 ||= Frameit::Device.new("huawei-p8", "Huawei P8", 5, [[1080, 1920], [1920, 1080]], 424, Color::BLACK, Platform::ANDROID)
@@ -18,6 +18,9 @@ module Match
18
18
  "s3" => lambda { |params|
19
19
  params[:keychain_name] = params[:s3_bucket]
20
20
  return Encryption::OpenSSL.configure(params)
21
+ },
22
+ "gitlab_secure_files" => lambda { |params|
23
+ return nil
21
24
  }
22
25
  }
23
26
  end
@@ -37,6 +37,7 @@ module Match
37
37
  s3_access_key: params[:s3_access_key],
38
38
  s3_secret_access_key: params[:s3_secret_access_key],
39
39
  s3_object_prefix: params[:s3_object_prefix],
40
+ gitlab_project: params[:gitlab_project],
40
41
  readonly: params[:readonly],
41
42
  username: params[:username],
42
43
  team_id: params[:team_id],
@@ -1,3 +1,5 @@
1
+ require 'spaceship'
2
+
1
3
  require 'fastlane_core/helper'
2
4
  require 'fastlane/boolean'
3
5
 
@@ -13,7 +15,7 @@ module Match
13
15
  end
14
16
 
15
17
  def self.storage_modes
16
- return %w(git google_cloud s3)
18
+ return %w(git google_cloud s3 gitlab_secure_files)
17
19
  end
18
20
 
19
21
  def self.profile_type_sym(type)
@@ -30,4 +32,54 @@ module Match
30
32
  return :distribution if ["adhoc", "appstore", "distribution"].include?(type)
31
33
  raise "Unknown cert type: '#{type}'"
32
34
  end
35
+
36
+ # Converts provisioning profile type (i.e. development, enterprise) to an array of profile types
37
+ # That can be used for filtering when using Spaceship::ConnectAPI::Profile API
38
+ def self.profile_types(prov_type)
39
+ case prov_type.to_sym
40
+ when :appstore
41
+ return [
42
+ Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_STORE,
43
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_STORE,
44
+ Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_STORE,
45
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_STORE
46
+ ]
47
+ when :development
48
+ return [
49
+ Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_DEVELOPMENT,
50
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_DEVELOPMENT,
51
+ Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_DEVELOPMENT,
52
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_DEVELOPMENT
53
+ ]
54
+ when :enterprise
55
+ profiles = [
56
+ Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_INHOUSE,
57
+ Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_INHOUSE
58
+ ]
59
+
60
+ # As of 2022-06-25, only available with Apple ID auth
61
+ if Spaceship::ConnectAPI.token
62
+ UI.important("Skipping #{Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_INHOUSE} and #{Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_INHOUSE}... only available with Apple ID auth")
63
+ else
64
+ profiles += [
65
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_INHOUSE,
66
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_INHOUSE
67
+ ]
68
+ end
69
+
70
+ return profiles
71
+ when :adhoc
72
+ return [
73
+ Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_ADHOC,
74
+ Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_ADHOC
75
+ ]
76
+ when :developer_id
77
+ return [
78
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_DIRECT,
79
+ Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_DIRECT
80
+ ]
81
+ else
82
+ raise "Unknown provisioning type '#{prov_type}'"
83
+ end
84
+ end
33
85
  end
@@ -54,6 +54,8 @@ module Match
54
54
  s3_access_key: params[:s3_access_key].to_s,
55
55
  s3_secret_access_key: params[:s3_secret_access_key].to_s,
56
56
  s3_bucket: params[:s3_bucket].to_s,
57
+ s3_object_prefix: params[:s3_object_prefix].to_s,
58
+ gitlab_project: params[:gitlab_project],
57
59
  team_id: params[:team_id] || Spaceship::ConnectAPI.client.portal_team_id
58
60
  })
59
61
  self.storage.download
@@ -148,9 +150,7 @@ module Match
148
150
  # Get all iOS and macOS profile
149
151
  self.profiles = []
150
152
  prov_types.each do |prov_type|
151
- types = profile_types(prov_type)
152
- # Filtering on 'profileType' seems to be undocumented as of 2020-07-30
153
- # but works on both web session and official API
153
+ types = Match.profile_types(prov_type)
154
154
  self.profiles += Spaceship::ConnectAPI::Profile.all(filter: { profileType: types.join(",") }, includes: "certificates")
155
155
  end
156
156
 
@@ -404,43 +404,6 @@ module Match
404
404
  end
405
405
  end
406
406
 
407
- # The kind of provisioning profile we're interested in
408
- def profile_types(prov_type)
409
- case prov_type.to_sym
410
- when :appstore
411
- return [
412
- Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_STORE,
413
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_STORE,
414
- Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_STORE,
415
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_STORE
416
- ]
417
- when :development
418
- return [
419
- Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_DEVELOPMENT,
420
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_DEVELOPMENT,
421
- Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_DEVELOPMENT,
422
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_DEVELOPMENT
423
- ]
424
- when :enterprise
425
- return [
426
- Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_INHOUSE,
427
- Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_INHOUSE
428
- ]
429
- when :adhoc
430
- return [
431
- Spaceship::ConnectAPI::Profile::ProfileType::IOS_APP_ADHOC,
432
- Spaceship::ConnectAPI::Profile::ProfileType::TVOS_APP_ADHOC
433
- ]
434
- when :developer_id
435
- return [
436
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_APP_DIRECT,
437
- Spaceship::ConnectAPI::Profile::ProfileType::MAC_CATALYST_APP_DIRECT
438
- ]
439
- else
440
- raise "Unknown provisioning type '#{prov_type}'"
441
- end
442
- end
443
-
444
407
  # Helpers for `safe_remove_certs`
445
408
  def print_safe_remove_certs_hint
446
409
  return if self.safe_remove_certs
@@ -223,6 +223,12 @@ module Match
223
223
  description: "Prefix to be used on all objects uploaded to S3",
224
224
  optional: true),
225
225
 
226
+ # Storage: GitLab Secure Files
227
+ FastlaneCore::ConfigItem.new(key: :gitlab_project,
228
+ env_name: "MATCH_GITLAB_PROJECT",
229
+ description: "GitLab Project Path (i.e. 'gitlab-org/gitlab')",
230
+ optional: true),
231
+
226
232
  # Keychain
227
233
  FastlaneCore::ConfigItem.new(key: :keychain_name,
228
234
  short_option: "-s",