fastlane 2.188.0 → 2.192.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +88 -88
  3. data/deliver/lib/deliver/app_screenshot.rb +2 -1
  4. data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
  5. data/deliver/lib/deliver/loader.rb +1 -1
  6. data/deliver/lib/deliver/options.rb +6 -0
  7. data/deliver/lib/deliver/runner.rb +9 -1
  8. data/deliver/lib/deliver/screenshot_comparable.rb +62 -0
  9. data/deliver/lib/deliver/sync_screenshots.rb +200 -0
  10. data/fastlane/lib/assets/completions/completion.bash +4 -1
  11. data/fastlane/lib/assets/completions/completion.zsh +6 -5
  12. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/bundle_install.rb +13 -1
  14. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +25 -1
  15. data/fastlane/lib/fastlane/actions/create_xcframework.rb +97 -17
  16. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
  17. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +2 -2
  18. data/fastlane/lib/fastlane/actions/notarize.rb +77 -1
  19. data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/zip.rb +86 -21
  21. data/fastlane/lib/fastlane/features.rb +3 -0
  22. data/fastlane/lib/fastlane/version.rb +1 -1
  23. data/fastlane/swift/Deliverfile.swift +1 -1
  24. data/fastlane/swift/DeliverfileProtocol.swift +5 -1
  25. data/fastlane/swift/Fastlane.swift +120 -20
  26. data/fastlane/swift/Gymfile.swift +1 -1
  27. data/fastlane/swift/GymfileProtocol.swift +1 -1
  28. data/fastlane/swift/Matchfile.swift +1 -1
  29. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  30. data/fastlane/swift/Precheckfile.swift +1 -1
  31. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  32. data/fastlane/swift/Scanfile.swift +1 -1
  33. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  34. data/fastlane/swift/Screengrabfile.swift +1 -1
  35. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  36. data/fastlane/swift/Snapshotfile.swift +1 -1
  37. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  38. data/fastlane/swift/formatting/Brewfile.lock.json +9 -9
  39. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +11 -4
  40. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +1 -0
  41. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +41 -0
  42. data/pilot/lib/pilot/build_manager.rb +0 -1
  43. data/precheck/lib/precheck/module.rb +2 -0
  44. data/precheck/lib/precheck/options.rb +3 -3
  45. data/produce/lib/produce/commands_generator.rb +28 -0
  46. data/produce/lib/produce/service.rb +16 -1
  47. data/scan/lib/scan/detect_values.rb +22 -13
  48. data/scan/lib/scan/module.rb +1 -0
  49. data/scan/lib/scan/options.rb +12 -1
  50. data/scan/lib/scan/test_command_generator.rb +29 -6
  51. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +1 -1
  52. data/sigh/lib/sigh/options.rb +2 -1
  53. data/spaceship/lib/spaceship/client.rb +6 -0
  54. data/spaceship/lib/spaceship/connect_api/api_client.rb +15 -1
  55. data/spaceship/lib/spaceship/connect_api/models/app.rb +9 -1
  56. data/spaceship/lib/spaceship/connect_api/models/capabilities.rb +27 -0
  57. data/spaceship/lib/spaceship/connect_api/models/user.rb +17 -3
  58. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +26 -5
  59. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +5 -0
  60. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
  61. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +3 -0
  62. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +46 -5
  63. data/spaceship/lib/spaceship/connect_api/token.rb +4 -1
  64. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +3 -0
  65. data/spaceship/lib/spaceship/connect_api/users/client.rb +3 -0
  66. data/spaceship/lib/spaceship/connect_api/users/users.rb +58 -3
  67. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  68. data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -0
  69. data/supply/lib/supply/client.rb +40 -1
  70. data/supply/lib/supply/options.rb +12 -0
  71. data/supply/lib/supply/uploader.rb +1 -1
  72. metadata +41 -25
  73. data/spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp +0 -0
  74. data/spaceship/lib/spaceship/portal/.app.rb.swp +0 -0
@@ -2,3 +2,6 @@
2
2
 
3
3
  # FastlaneCore::Feature.register(env_var: 'YOUR_FEATURE_SWITCH_ENV_VAR',
4
4
  # description: 'Describe what this feature switch controls')
5
+
6
+ FastlaneCore::Feature.register(env_var: 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS',
7
+ description: 'Use a newly implemented screenshots synchronization logic')
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.188.0'.freeze
2
+ VERSION = '2.192.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.188.0
20
+ // Generated with fastlane 2.192.0
@@ -59,6 +59,9 @@ public protocol DeliverfileProtocol: class {
59
59
  /// Clear all previously uploaded screenshots before uploading the new ones
60
60
  var overwriteScreenshots: Bool { get }
61
61
 
62
+ /// Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
63
+ var syncScreenshots: Bool { get }
64
+
62
65
  /// Submit the new version for Review after uploading everything
63
66
  var submitForReview: Bool { get }
64
67
 
@@ -209,6 +212,7 @@ public extension DeliverfileProtocol {
209
212
  var skipAppVersionUpdate: Bool { return false }
210
213
  var force: Bool { return false }
211
214
  var overwriteScreenshots: Bool { return false }
215
+ var syncScreenshots: Bool { return false }
212
216
  var submitForReview: Bool { return false }
213
217
  var rejectIfPossible: Bool { return false }
214
218
  var automaticRelease: Bool? { return nil }
@@ -256,4 +260,4 @@ public extension DeliverfileProtocol {
256
260
 
257
261
  // Please don't remove the lines below
258
262
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.76]
263
+ // FastlaneRunnerAPIVersion [0.9.80]
@@ -204,7 +204,7 @@ public func appStoreConnectApiKey(keyId: String,
204
204
  keyFilepath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
205
205
  keyContent: OptionalConfigValue<String?> = .fastlaneDefault(nil),
206
206
  isKeyContentBase64: OptionalConfigValue<Bool> = .fastlaneDefault(false),
207
- duration: Int = 1200,
207
+ duration: Int = 500,
208
208
  inHouse: OptionalConfigValue<Bool> = .fastlaneDefault(false),
209
209
  setSpaceshipToken: OptionalConfigValue<Bool> = .fastlaneDefault(true))
210
210
  {
@@ -661,6 +661,7 @@ public func appledoc(input: [String],
661
661
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
662
662
  - force: Skip verification of HTML preview file
663
663
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
664
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
664
665
  - submitForReview: Submit the new version for Review after uploading everything
665
666
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
666
667
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -731,6 +732,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
731
732
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
732
733
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
733
734
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
735
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
734
736
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
735
737
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
736
738
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
@@ -794,6 +796,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
794
796
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
795
797
  let forceArg = force.asRubyArgument(name: "force", type: nil)
796
798
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
799
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
797
800
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
798
801
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
799
802
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -856,6 +859,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
856
859
  skipAppVersionUpdateArg,
857
860
  forceArg,
858
861
  overwriteScreenshotsArg,
862
+ syncScreenshotsArg,
859
863
  submitForReviewArg,
860
864
  rejectIfPossibleArg,
861
865
  automaticReleaseArg,
@@ -1888,6 +1892,8 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1888
1892
  - trustPolicy: Sets level of security when dealing with signed gems. Accepts `LowSecurity`, `MediumSecurity` and `HighSecurity` as values
1889
1893
  - without: Exclude gems that are part of the specified named group
1890
1894
  - with: Include gems that are part of the specified named group
1895
+ - frozen: Don't allow the Gemfile.lock to be updated after install
1896
+ - redownload: Force download every gem, even if the required versions are already available locally
1891
1897
  */
1892
1898
  public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1893
1899
  clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1906,7 +1912,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1906
1912
  standalone: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1907
1913
  trustPolicy: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1908
1914
  without: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1909
- with: OptionalConfigValue<String?> = .fastlaneDefault(nil))
1915
+ with: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1916
+ frozen: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1917
+ redownload: OptionalConfigValue<Bool> = .fastlaneDefault(false))
1910
1918
  {
1911
1919
  let binstubsArg = binstubs.asRubyArgument(name: "binstubs", type: nil)
1912
1920
  let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
@@ -1926,6 +1934,8 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1926
1934
  let trustPolicyArg = trustPolicy.asRubyArgument(name: "trust_policy", type: nil)
1927
1935
  let withoutArg = without.asRubyArgument(name: "without", type: nil)
1928
1936
  let withArg = with.asRubyArgument(name: "with", type: nil)
1937
+ let frozenArg = frozen.asRubyArgument(name: "frozen", type: nil)
1938
+ let redownloadArg = redownload.asRubyArgument(name: "redownload", type: nil)
1929
1939
  let array: [RubyCommand.Argument?] = [binstubsArg,
1930
1940
  cleanArg,
1931
1941
  fullIndexArg,
@@ -1943,7 +1953,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1943
1953
  standaloneArg,
1944
1954
  trustPolicyArg,
1945
1955
  withoutArg,
1946
- withArg]
1956
+ withArg,
1957
+ frozenArg,
1958
+ redownloadArg]
1947
1959
  let args: [RubyCommand.Argument] = array
1948
1960
  .filter { $0?.value != nil }
1949
1961
  .compactMap { $0 }
@@ -2771,7 +2783,7 @@ public func chatwork(apiToken: String,
2771
2783
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2772
2784
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2773
2785
  platform: String = "ios",
2774
- defaultRuleLevel: Any = "error",
2786
+ defaultRuleLevel: String = "error",
2775
2787
  includeInAppPurchases: OptionalConfigValue<Bool> = .fastlaneDefault(true),
2776
2788
  useLive: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2777
2789
  negativeAppleSentiment: Any? = nil,
@@ -2854,11 +2866,29 @@ public func cleanBuildArtifacts(excludePattern: OptionalConfigValue<String?> = .
2854
2866
  /**
2855
2867
  Remove the cache for pods
2856
2868
 
2857
- - parameter name: Pod name to be removed from cache
2869
+ - parameters:
2870
+ - name: Pod name to be removed from cache
2871
+ - noAnsi: Show output without ANSI codes
2872
+ - verbose: Show more debugging information
2873
+ - silent: Show nothing
2874
+ - allowRoot: Allows CocoaPods to run as root
2858
2875
  */
2859
- public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil)) {
2876
+ public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2877
+ noAnsi: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2878
+ verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2879
+ silent: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2880
+ allowRoot: OptionalConfigValue<Bool> = .fastlaneDefault(false))
2881
+ {
2860
2882
  let nameArg = name.asRubyArgument(name: "name", type: nil)
2861
- let array: [RubyCommand.Argument?] = [nameArg]
2883
+ let noAnsiArg = noAnsi.asRubyArgument(name: "no_ansi", type: nil)
2884
+ let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
2885
+ let silentArg = silent.asRubyArgument(name: "silent", type: nil)
2886
+ let allowRootArg = allowRoot.asRubyArgument(name: "allow_root", type: nil)
2887
+ let array: [RubyCommand.Argument?] = [nameArg,
2888
+ noAnsiArg,
2889
+ verboseArg,
2890
+ silentArg,
2891
+ allowRootArg]
2862
2892
  let args: [RubyCommand.Argument] = array
2863
2893
  .filter { $0?.value != nil }
2864
2894
  .compactMap { $0 }
@@ -3474,37 +3504,63 @@ public func createPullRequest(apiToken: OptionalConfigValue<String?> = .fastlane
3474
3504
  Package multiple build configs of a library/framework into a single xcframework
3475
3505
 
3476
3506
  - parameters:
3477
- - frameworks: Frameworks to add to the target xcframework
3478
- - libraries: Libraries to add to the target xcframework, with their corresponding headers
3507
+ - frameworks: Frameworks (without dSYMs) to add to the target xcframework
3508
+ - frameworksWithDsyms: Frameworks (with dSYMs) to add to the target xcframework
3509
+ - libraries: Libraries (without headers or dSYMs) to add to the target xcframework
3510
+ - librariesWithHeadersOrDsyms: Libraries (with headers or dSYMs) to add to the target xcframework
3479
3511
  - output: The path to write the xcframework to
3480
3512
  - allowInternalDistribution: Specifies that the created xcframework contains information not suitable for public distribution
3481
3513
 
3482
3514
  Utility for packaging multiple build configurations of a given library
3483
3515
  or framework into a single xcframework.
3484
3516
 
3485
- If you want to package several frameworks just provide an array containing
3486
- the list of frameworks to be packaged using the :frameworks parameter.
3517
+ If you want to package several frameworks just provide one of:
3518
+
3519
+ * An array containing the list of frameworks using the :frameworks parameter
3520
+ (if they have no associated dSYMs):
3521
+ ['FrameworkA.framework', 'FrameworkB.framework']
3487
3522
 
3488
- If you want to package several libraries with their corresponding headers
3489
- provide a hash containing the library as the key and the directory containing
3490
- its headers as the value (or an empty string if there are no headers associated
3491
- with the provided library).
3523
+ * A hash containing the list of frameworks with their dSYMs using the
3524
+ :frameworks_with_dsyms parameter:
3525
+ {
3526
+ 'FrameworkA.framework' => {},
3527
+ 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' }
3528
+ }
3529
+
3530
+ If you want to package several libraries just provide one of:
3531
+
3532
+ * An array containing the list of libraries using the :libraries parameter
3533
+ (if they have no associated headers or dSYMs):
3534
+ ['LibraryA.so', 'LibraryB.so']
3535
+
3536
+ * A hash containing the list of libraries with their headers and dSYMs
3537
+ using the :libraries_with_headers_or_dsyms parameter:
3538
+ {
3539
+ 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' },
3540
+ 'LibraryB.so' => { headers: 'headers' }
3541
+ }
3492
3542
 
3493
3543
  Finally specify the location of the xcframework to be generated using the :output
3494
3544
  parameter.
3495
3545
 
3496
3546
  */
3497
3547
  public func createXcframework(frameworks: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
3498
- libraries: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
3548
+ frameworksWithDsyms: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
3549
+ libraries: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
3550
+ librariesWithHeadersOrDsyms: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
3499
3551
  output: String,
3500
3552
  allowInternalDistribution: OptionalConfigValue<Bool> = .fastlaneDefault(false))
3501
3553
  {
3502
3554
  let frameworksArg = frameworks.asRubyArgument(name: "frameworks", type: nil)
3555
+ let frameworksWithDsymsArg = frameworksWithDsyms.asRubyArgument(name: "frameworks_with_dsyms", type: nil)
3503
3556
  let librariesArg = libraries.asRubyArgument(name: "libraries", type: nil)
3557
+ let librariesWithHeadersOrDsymsArg = librariesWithHeadersOrDsyms.asRubyArgument(name: "libraries_with_headers_or_dsyms", type: nil)
3504
3558
  let outputArg = RubyCommand.Argument(name: "output", value: output, type: nil)
3505
3559
  let allowInternalDistributionArg = allowInternalDistribution.asRubyArgument(name: "allow_internal_distribution", type: nil)
3506
3560
  let array: [RubyCommand.Argument?] = [frameworksArg,
3561
+ frameworksWithDsymsArg,
3507
3562
  librariesArg,
3563
+ librariesWithHeadersOrDsymsArg,
3508
3564
  outputArg,
3509
3565
  allowInternalDistributionArg]
3510
3566
  let args: [RubyCommand.Argument] = array
@@ -3642,6 +3698,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3642
3698
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
3643
3699
  - force: Skip verification of HTML preview file
3644
3700
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
3701
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
3645
3702
  - submitForReview: Submit the new version for Review after uploading everything
3646
3703
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
3647
3704
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -3712,6 +3769,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3712
3769
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.skipAppVersionUpdate),
3713
3770
  force: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.force),
3714
3771
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.overwriteScreenshots),
3772
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.syncScreenshots),
3715
3773
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.submitForReview),
3716
3774
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.rejectIfPossible),
3717
3775
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(deliverfile.automaticRelease),
@@ -3775,6 +3833,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3775
3833
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
3776
3834
  let forceArg = force.asRubyArgument(name: "force", type: nil)
3777
3835
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
3836
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
3778
3837
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
3779
3838
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
3780
3839
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -3837,6 +3896,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3837
3896
  skipAppVersionUpdateArg,
3838
3897
  forceArg,
3839
3898
  overwriteScreenshotsArg,
3899
+ syncScreenshotsArg,
3840
3900
  submitForReviewArg,
3841
3901
  rejectIfPossibleArg,
3842
3902
  automaticReleaseArg,
@@ -7069,6 +7129,7 @@ public func nexusUpload(file: String,
7069
7129
 
7070
7130
  - parameters:
7071
7131
  - package: Path to package to notarize, e.g. .app bundle or disk image
7132
+ - useNotarytool: Whether to `xcrun notarytool` or `xcrun altool`
7072
7133
  - tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
7073
7134
  - bundleId: Bundle identifier to uniquely identify the package
7074
7135
  - username: Apple ID username
@@ -7078,6 +7139,7 @@ public func nexusUpload(file: String,
7078
7139
  - apiKeyPath: Path to AppStore Connect API key
7079
7140
  */
7080
7141
  public func notarize(package: String,
7142
+ useNotarytool: OptionalConfigValue<Bool> = .fastlaneDefault(true),
7081
7143
  tryEarlyStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7082
7144
  bundleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7083
7145
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -7087,6 +7149,7 @@ public func notarize(package: String,
7087
7149
  apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil))
7088
7150
  {
7089
7151
  let packageArg = RubyCommand.Argument(name: "package", value: package, type: nil)
7152
+ let useNotarytoolArg = useNotarytool.asRubyArgument(name: "use_notarytool", type: nil)
7090
7153
  let tryEarlyStaplingArg = tryEarlyStapling.asRubyArgument(name: "try_early_stapling", type: nil)
7091
7154
  let bundleIdArg = bundleId.asRubyArgument(name: "bundle_id", type: nil)
7092
7155
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
@@ -7095,6 +7158,7 @@ public func notarize(package: String,
7095
7158
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
7096
7159
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
7097
7160
  let array: [RubyCommand.Argument?] = [packageArg,
7161
+ useNotarytoolArg,
7098
7162
  tryEarlyStaplingArg,
7099
7163
  bundleIdArg,
7100
7164
  usernameArg,
@@ -8467,6 +8531,7 @@ public func rubyVersion() {
8467
8531
  - parameters:
8468
8532
  - workspace: Path to the workspace file
8469
8533
  - project: Path to the project file
8534
+ - packagePath: Path to the Swift Package
8470
8535
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8471
8536
  - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8472
8537
  - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
@@ -8541,6 +8606,7 @@ public func rubyVersion() {
8541
8606
  */
8542
8607
  public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8543
8608
  project: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8609
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8544
8610
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8545
8611
  device: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8546
8612
  devices: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -8613,6 +8679,7 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8613
8679
  {
8614
8680
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
8615
8681
  let projectArg = project.asRubyArgument(name: "project", type: nil)
8682
+ let packagePathArg = packagePath.asRubyArgument(name: "package_path", type: nil)
8616
8683
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
8617
8684
  let deviceArg = device.asRubyArgument(name: "device", type: nil)
8618
8685
  let devicesArg = devices.asRubyArgument(name: "devices", type: nil)
@@ -8684,6 +8751,7 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8684
8751
  let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
8685
8752
  let array: [RubyCommand.Argument?] = [workspaceArg,
8686
8753
  projectArg,
8754
+ packagePathArg,
8687
8755
  schemeArg,
8688
8756
  deviceArg,
8689
8757
  devicesArg,
@@ -8868,6 +8936,7 @@ public func say(text: [String],
8868
8936
  - parameters:
8869
8937
  - workspace: Path to the workspace file
8870
8938
  - project: Path to the project file
8939
+ - packagePath: Path to the Swift Package
8871
8940
  - scheme: The project's scheme. Make sure it's marked as `Shared`
8872
8941
  - device: The name of the simulator type you want to run tests on (e.g. 'iPhone 6')
8873
8942
  - devices: Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air'])
@@ -8942,6 +9011,7 @@ public func say(text: [String],
8942
9011
  */
8943
9012
  public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.workspace),
8944
9013
  project: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.project),
9014
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.packagePath),
8945
9015
  scheme: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.scheme),
8946
9016
  device: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.device),
8947
9017
  devices: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.devices),
@@ -9014,6 +9084,7 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9014
9084
  {
9015
9085
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
9016
9086
  let projectArg = project.asRubyArgument(name: "project", type: nil)
9087
+ let packagePathArg = packagePath.asRubyArgument(name: "package_path", type: nil)
9017
9088
  let schemeArg = scheme.asRubyArgument(name: "scheme", type: nil)
9018
9089
  let deviceArg = device.asRubyArgument(name: "device", type: nil)
9019
9090
  let devicesArg = devices.asRubyArgument(name: "devices", type: nil)
@@ -9085,6 +9156,7 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9085
9156
  let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
9086
9157
  let array: [RubyCommand.Argument?] = [workspaceArg,
9087
9158
  projectArg,
9159
+ packagePathArg,
9088
9160
  schemeArg,
9089
9161
  deviceArg,
9090
9162
  devicesArg,
@@ -10629,6 +10701,8 @@ public func ssh(username: String,
10629
10701
  - timeout: Timeout for read, open, and send (in seconds)
10630
10702
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
10631
10703
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
10704
+ - changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
10705
+ - rescueChangesNotSentForReview: Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended
10632
10706
  - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
10633
10707
  - obbMainReferencesVersion: References version of 'main' expansion file
10634
10708
  - obbMainFileSize: Size of 'main' expansion file in bytes
@@ -10668,6 +10742,8 @@ public func supply(packageName: String,
10668
10742
  timeout: Int = 300,
10669
10743
  deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
10670
10744
  versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
10745
+ changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10746
+ rescueChangesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(true),
10671
10747
  inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
10672
10748
  obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10673
10749
  obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -10705,6 +10781,8 @@ public func supply(packageName: String,
10705
10781
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
10706
10782
  let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
10707
10783
  let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
10784
+ let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
10785
+ let rescueChangesNotSentForReviewArg = rescueChangesNotSentForReview.asRubyArgument(name: "rescue_changes_not_sent_for_review", type: nil)
10708
10786
  let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
10709
10787
  let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
10710
10788
  let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
@@ -10741,6 +10819,8 @@ public func supply(packageName: String,
10741
10819
  timeoutArg,
10742
10820
  deactivateOnPromoteArg,
10743
10821
  versionCodesToRetainArg,
10822
+ changesNotSentForReviewArg,
10823
+ rescueChangesNotSentForReviewArg,
10744
10824
  inAppUpdatePriorityArg,
10745
10825
  obbMainReferencesVersionArg,
10746
10826
  obbMainFileSizeArg,
@@ -11966,6 +12046,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
11966
12046
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
11967
12047
  - force: Skip verification of HTML preview file
11968
12048
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
12049
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
11969
12050
  - submitForReview: Submit the new version for Review after uploading everything
11970
12051
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
11971
12052
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
@@ -12036,6 +12117,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12036
12117
  skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12037
12118
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12038
12119
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12120
+ syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12039
12121
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12040
12122
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12041
12123
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
@@ -12099,6 +12181,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12099
12181
  let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
12100
12182
  let forceArg = force.asRubyArgument(name: "force", type: nil)
12101
12183
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
12184
+ let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
12102
12185
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
12103
12186
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
12104
12187
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
@@ -12161,6 +12244,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12161
12244
  skipAppVersionUpdateArg,
12162
12245
  forceArg,
12163
12246
  overwriteScreenshotsArg,
12247
+ syncScreenshotsArg,
12164
12248
  submitForReviewArg,
12165
12249
  rejectIfPossibleArg,
12166
12250
  automaticReleaseArg,
@@ -12245,6 +12329,8 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12245
12329
  - timeout: Timeout for read, open, and send (in seconds)
12246
12330
  - deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
12247
12331
  - versionCodesToRetain: An array of version codes to retain when publishing a new APK
12332
+ - changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
12333
+ - rescueChangesNotSentForReview: Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended
12248
12334
  - inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
12249
12335
  - obbMainReferencesVersion: References version of 'main' expansion file
12250
12336
  - obbMainFileSize: Size of 'main' expansion file in bytes
@@ -12284,6 +12370,8 @@ public func uploadToPlayStore(packageName: String,
12284
12370
  timeout: Int = 300,
12285
12371
  deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
12286
12372
  versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
12373
+ changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12374
+ rescueChangesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(true),
12287
12375
  inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
12288
12376
  obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12289
12377
  obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -12321,6 +12409,8 @@ public func uploadToPlayStore(packageName: String,
12321
12409
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
12322
12410
  let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
12323
12411
  let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
12412
+ let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
12413
+ let rescueChangesNotSentForReviewArg = rescueChangesNotSentForReview.asRubyArgument(name: "rescue_changes_not_sent_for_review", type: nil)
12324
12414
  let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
12325
12415
  let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
12326
12416
  let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
@@ -12357,6 +12447,8 @@ public func uploadToPlayStore(packageName: String,
12357
12447
  timeoutArg,
12358
12448
  deactivateOnPromoteArg,
12359
12449
  versionCodesToRetainArg,
12450
+ changesNotSentForReviewArg,
12451
+ rescueChangesNotSentForReviewArg,
12360
12452
  inAppUpdatePriorityArg,
12361
12453
  obbMainReferencesVersionArg,
12362
12454
  obbMainFileSizeArg,
@@ -12957,7 +13049,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
12957
13049
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12958
13050
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12959
13051
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12960
- ideFoundationPath: String = "/Applications/Xcode-12.5.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13052
+ ideFoundationPath: String = "/Applications/Xcode-13.beta.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
12961
13053
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
12962
13054
  {
12963
13055
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13071,6 +13163,8 @@ public func xcversion(version: String) {
13071
13163
  - verbose: Enable verbose output of zipped file
13072
13164
  - password: Encrypt the contents of the zip archive using a password
13073
13165
  - symlinks: Store symbolic links as such in the zip archive
13166
+ - include: Array of paths or patterns to include
13167
+ - exclude: Array of paths or patterns to exclude
13074
13168
 
13075
13169
  - returns: The path to the output zip file
13076
13170
  */
@@ -13078,18 +13172,24 @@ public func xcversion(version: String) {
13078
13172
  outputPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13079
13173
  verbose: OptionalConfigValue<Bool> = .fastlaneDefault(true),
13080
13174
  password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13081
- symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false)) -> String
13175
+ symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13176
+ include: [String] = [],
13177
+ exclude: [String] = []) -> String
13082
13178
  {
13083
13179
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
13084
13180
  let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil)
13085
13181
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
13086
13182
  let passwordArg = password.asRubyArgument(name: "password", type: nil)
13087
13183
  let symlinksArg = symlinks.asRubyArgument(name: "symlinks", type: nil)
13184
+ let includeArg = RubyCommand.Argument(name: "include", value: include, type: nil)
13185
+ let excludeArg = RubyCommand.Argument(name: "exclude", value: exclude, type: nil)
13088
13186
  let array: [RubyCommand.Argument?] = [pathArg,
13089
13187
  outputPathArg,
13090
13188
  verboseArg,
13091
13189
  passwordArg,
13092
- symlinksArg]
13190
+ symlinksArg,
13191
+ includeArg,
13192
+ excludeArg]
13093
13193
  let args: [RubyCommand.Argument] = array
13094
13194
  .filter { $0?.value != nil }
13095
13195
  .compactMap { $0 }
@@ -13151,4 +13251,4 @@ public let snapshotfile = Snapshotfile()
13151
13251
 
13152
13252
  // Please don't remove the lines below
13153
13253
  // They are used to detect outdated files
13154
- // FastlaneRunnerAPIVersion [0.9.129]
13254
+ // FastlaneRunnerAPIVersion [0.9.133]