fastlane 2.169.0 → 2.174.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -76
  3. data/deliver/lib/deliver/app_screenshot.rb +5 -7
  4. data/deliver/lib/deliver/app_screenshot_validator.rb +108 -0
  5. data/deliver/lib/deliver/commands_generator.rb +1 -1
  6. data/deliver/lib/deliver/loader.rb +13 -29
  7. data/deliver/lib/deliver/setup.rb +8 -3
  8. data/deliver/lib/deliver/upload_metadata.rb +5 -3
  9. data/fastlane/lib/fastlane/actions/add_git_tag.rb +12 -3
  10. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -0
  11. data/fastlane/lib/fastlane/actions/appetize.rb +13 -1
  12. data/fastlane/lib/fastlane/actions/artifactory.rb +36 -3
  13. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +10 -2
  14. data/fastlane/lib/fastlane/actions/build_app.rb +3 -1
  15. data/fastlane/lib/fastlane/actions/carthage.rb +22 -0
  16. data/fastlane/lib/fastlane/actions/cocoapods.rb +15 -1
  17. data/fastlane/lib/fastlane/actions/create_pull_request.rb +16 -1
  18. data/fastlane/lib/fastlane/actions/create_xcframework.rb +118 -0
  19. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
  20. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -0
  21. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +5 -1
  22. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +142 -0
  23. data/fastlane/lib/fastlane/actions/download_dsyms.rb +0 -1
  24. data/fastlane/lib/fastlane/actions/git_commit.rb +6 -2
  25. data/fastlane/lib/fastlane/actions/github_api.rb +14 -3
  26. data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
  27. data/fastlane/lib/fastlane/actions/onesignal.rb +13 -3
  28. data/fastlane/lib/fastlane/actions/pod_push.rb +9 -0
  29. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +9 -1
  30. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/register_devices.rb +2 -1
  32. data/fastlane/lib/fastlane/actions/set_github_release.rb +21 -8
  33. data/fastlane/lib/fastlane/actions/slack.rb +4 -5
  34. data/fastlane/lib/fastlane/actions/spm.rb +2 -2
  35. data/fastlane/lib/fastlane/actions/swiftlint.rb +4 -4
  36. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +291 -0
  37. data/fastlane/lib/fastlane/cli_tools_distributor.rb +3 -0
  38. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
  39. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -0
  40. data/fastlane/lib/fastlane/version.rb +1 -1
  41. data/fastlane/swift/Actions.swift +1 -1
  42. data/fastlane/swift/Appfile.swift +1 -1
  43. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  44. data/fastlane/swift/ControlCommand.swift +1 -1
  45. data/fastlane/swift/Deliverfile.swift +2 -2
  46. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  47. data/fastlane/swift/Fastlane.swift +253 -37
  48. data/fastlane/swift/Gymfile.swift +2 -2
  49. data/fastlane/swift/GymfileProtocol.swift +11 -3
  50. data/fastlane/swift/LaneFileProtocol.swift +1 -1
  51. data/fastlane/swift/MainProcess.swift +1 -1
  52. data/fastlane/swift/Matchfile.swift +2 -2
  53. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  54. data/fastlane/swift/Plugins.swift +1 -1
  55. data/fastlane/swift/Precheckfile.swift +2 -2
  56. data/fastlane/swift/PrecheckfileProtocol.swift +6 -2
  57. data/fastlane/swift/RubyCommand.swift +1 -1
  58. data/fastlane/swift/RubyCommandable.swift +1 -1
  59. data/fastlane/swift/Runner.swift +2 -2
  60. data/fastlane/swift/RunnerArgument.swift +1 -1
  61. data/fastlane/swift/Scanfile.swift +2 -2
  62. data/fastlane/swift/ScanfileProtocol.swift +14 -2
  63. data/fastlane/swift/Screengrabfile.swift +2 -2
  64. data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
  65. data/fastlane/swift/Snapshotfile.swift +2 -2
  66. data/fastlane/swift/SnapshotfileProtocol.swift +15 -3
  67. data/fastlane/swift/SocketClient.swift +1 -1
  68. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  69. data/fastlane/swift/SocketResponse.swift +1 -1
  70. data/fastlane/swift/formatting/Brewfile.lock.json +18 -14
  71. data/fastlane/swift/main.swift +1 -1
  72. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +7 -1
  73. data/fastlane_core/lib/fastlane_core/helper.rb +2 -2
  74. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
  75. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -4
  76. data/fastlane_core/lib/fastlane_core/project.rb +41 -14
  77. data/frameit/lib/frameit/device_types.rb +7 -1
  78. data/gym/lib/gym/error_handler.rb +8 -0
  79. data/gym/lib/gym/generators/build_command_generator.rb +3 -1
  80. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
  81. data/gym/lib/gym/options.rb +12 -2
  82. data/match/lib/match/encryption/openssl.rb +4 -2
  83. data/match/lib/match/runner.rb +1 -1
  84. data/match/lib/match/storage/git_storage.rb +14 -10
  85. data/precheck/lib/precheck/options.rb +6 -1
  86. data/precheck/lib/precheck/rule_processor.rb +1 -1
  87. data/precheck/lib/precheck/runner.rb +1 -1
  88. data/scan/lib/scan/options.rb +15 -0
  89. data/scan/lib/scan/runner.rb +6 -1
  90. data/scan/lib/scan/slack_poster.rb +4 -1
  91. data/scan/lib/scan/test_command_generator.rb +3 -1
  92. data/screengrab/lib/screengrab/runner.rb +2 -0
  93. data/sigh/lib/sigh/runner.rb +1 -1
  94. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  95. data/snapshot/lib/snapshot/options.rb +17 -2
  96. data/snapshot/lib/snapshot/update.rb +1 -1
  97. data/spaceship/lib/spaceship/client.rb +14 -1
  98. data/spaceship/lib/spaceship/connect_api.rb +6 -0
  99. data/spaceship/lib/spaceship/connect_api/api_client.rb +17 -2
  100. data/spaceship/lib/spaceship/connect_api/models/app.rb +6 -0
  101. data/spaceship/lib/spaceship/connect_api/models/app_data_usage.rb +59 -0
  102. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb +65 -0
  103. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_data_protection.rb +27 -0
  104. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_grouping.rb +18 -0
  105. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_purposes.rb +37 -0
  106. data/spaceship/lib/spaceship/connect_api/models/app_data_usages_publish_state.rb +36 -0
  107. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +7 -1
  108. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +9 -0
  109. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +24 -0
  110. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +26 -4
  111. data/spaceship/lib/spaceship/connect_api/models/device.rb +30 -0
  112. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +53 -0
  113. data/spaceship/lib/spaceship/connect_api/response.rb +3 -1
  114. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
  115. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +103 -0
  116. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +1 -0
  117. data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
  118. metadata +45 -25
  119. data/cert/lib/cert/.options.rb.swp +0 -0
  120. data/cert/lib/cert/.runner.rb.swp +0 -0
  121. data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
  122. data/match/lib/match/.options.rb.swp +0 -0
  123. data/sigh/lib/sigh/.options.rb.swp +0 -0
@@ -1,5 +1,5 @@
1
1
  // DeliverfileProtocol.swift
2
- // Copyright (c) 2020 FastlaneTools
2
+ // Copyright (c) 2021 FastlaneTools
3
3
 
4
4
  public protocol DeliverfileProtocol: class {
5
5
  /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
@@ -256,4 +256,4 @@ public extension DeliverfileProtocol {
256
256
 
257
257
  // Please don't remove the lines below
258
258
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.52]
259
+ // FastlaneRunnerAPIVersion [0.9.57]
@@ -1,5 +1,5 @@
1
1
  // Fastlane.swift
2
- // Copyright (c) 2020 FastlaneTools
2
+ // Copyright (c) 2021 FastlaneTools
3
3
 
4
4
  import Foundation
5
5
  /**
@@ -54,6 +54,7 @@ public func addExtraPlatforms(platforms: [String] = []) {
54
54
  - parameters:
55
55
  - tag: Define your own tag text. This will replace all other parameters
56
56
  - grouping: Is used to keep your tags organised under one 'folder'
57
+ - includesLane: Whether the current lane should be included in the tag and message composition, e.g. '<grouping>/<lane>/<prefix><build_number><postfix>'
57
58
  - prefix: Anything you want to put in front of the version number (e.g. 'v')
58
59
  - postfix: Anything you want to put at the end of the version number (e.g. '-RC1')
59
60
  - buildNumber: The build number. Defaults to the result of increment_build_number if you're using it
@@ -62,10 +63,10 @@ public func addExtraPlatforms(platforms: [String] = []) {
62
63
  - force: Force adding the tag
63
64
  - sign: Make a GPG-signed tag, using the default e-mail address's key
64
65
 
65
- This will automatically tag your build with the following format: `<grouping>/<lane>/<prefix><build_number>`, where:|
66
+ This will automatically tag your build with the following format: `<grouping>/<lane>/<prefix><build_number><postfix>`, where:|
66
67
  |
67
68
  >- `grouping` is just to keep your tags organised under one 'folder', defaults to 'builds'|
68
- - `lane` is the name of the current fastlane lane|
69
+ - `lane` is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true'|
69
70
  - `prefix` is anything you want to stick in front of the version number, e.g. 'v'|
70
71
  - `postfix` is anything you want to stick at the end of the version number, e.g. '-RC1'|
71
72
  - `build_number` is the build number, which defaults to the value emitted by the `increment_build_number` action|
@@ -74,6 +75,7 @@ public func addExtraPlatforms(platforms: [String] = []) {
74
75
  */
75
76
  public func addGitTag(tag: String? = nil,
76
77
  grouping: String = "builds",
78
+ includesLane: Bool = true,
77
79
  prefix: String = "",
78
80
  postfix: String = "",
79
81
  buildNumber: Any? = nil,
@@ -84,6 +86,7 @@ public func addGitTag(tag: String? = nil,
84
86
  {
85
87
  let command = RubyCommand(commandID: "", methodName: "add_git_tag", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag),
86
88
  RubyCommand.Argument(name: "grouping", value: grouping),
89
+ RubyCommand.Argument(name: "includes_lane", value: includesLane),
87
90
  RubyCommand.Argument(name: "prefix", value: prefix),
88
91
  RubyCommand.Argument(name: "postfix", value: postfix),
89
92
  RubyCommand.Argument(name: "build_number", value: buildNumber),
@@ -155,7 +158,7 @@ public func appStoreConnectApiKey(keyId: String,
155
158
  keyFilepath: String? = nil,
156
159
  keyContent: String? = nil,
157
160
  isKeyContentBase64: Bool = false,
158
- duration: Int? = nil,
161
+ duration: Int = 1200,
159
162
  inHouse: Bool? = nil)
160
163
  {
161
164
  let command = RubyCommand(commandID: "", methodName: "app_store_connect_api_key", className: nil, args: [RubyCommand.Argument(name: "key_id", value: keyId),
@@ -216,6 +219,7 @@ public func appaloosa(binary: String,
216
219
  - path: Path to zipped build on the local filesystem. Either this or `url` must be specified
217
220
  - publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
218
221
  - note: Notes you wish to add to the uploaded app
222
+ - timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
219
223
 
220
224
  If you provide a `public_key`, this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value.
221
225
 
@@ -227,7 +231,8 @@ public func appetize(apiHost: String = "api.appetize.io",
227
231
  platform: String = "ios",
228
232
  path: String? = nil,
229
233
  publicKey: String? = nil,
230
- note: String? = nil)
234
+ note: String? = nil,
235
+ timeout: Int? = nil)
231
236
  {
232
237
  let command = RubyCommand(commandID: "", methodName: "appetize", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
233
238
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -235,7 +240,8 @@ public func appetize(apiHost: String = "api.appetize.io",
235
240
  RubyCommand.Argument(name: "platform", value: platform),
236
241
  RubyCommand.Argument(name: "path", value: path),
237
242
  RubyCommand.Argument(name: "public_key", value: publicKey),
238
- RubyCommand.Argument(name: "note", value: note)])
243
+ RubyCommand.Argument(name: "note", value: note),
244
+ RubyCommand.Argument(name: "timeout", value: timeout)])
239
245
  _ = runner.executeCommand(command)
240
246
  }
241
247
 
@@ -697,6 +703,7 @@ public func apteligent(dsym: String? = nil,
697
703
  - endpoint: Artifactory endpoint
698
704
  - username: Artifactory username
699
705
  - password: Artifactory password
706
+ - apiKey: Artifactory API key
700
707
  - properties: Artifact properties hash
701
708
  - sslPemFile: Location of pem file to use for ssl verification
702
709
  - sslVerify: Verify SSL
@@ -705,13 +712,16 @@ public func apteligent(dsym: String? = nil,
705
712
  - proxyAddress: Proxy address
706
713
  - proxyPort: Proxy port
707
714
  - readTimeout: Read timeout
715
+
716
+ Connect to the artifactory server using either a username/password or an api_key
708
717
  */
709
718
  public func artifactory(file: String,
710
719
  repo: String,
711
720
  repoPath: String,
712
721
  endpoint: String,
713
- username: String,
714
- password: String,
722
+ username: String? = nil,
723
+ password: String? = nil,
724
+ apiKey: String? = nil,
715
725
  properties: [String: Any] = [:],
716
726
  sslPemFile: String? = nil,
717
727
  sslVerify: Bool = true,
@@ -727,6 +737,7 @@ public func artifactory(file: String,
727
737
  RubyCommand.Argument(name: "endpoint", value: endpoint),
728
738
  RubyCommand.Argument(name: "username", value: username),
729
739
  RubyCommand.Argument(name: "password", value: password),
740
+ RubyCommand.Argument(name: "api_key", value: apiKey),
730
741
  RubyCommand.Argument(name: "properties", value: properties),
731
742
  RubyCommand.Argument(name: "ssl_pem_file", value: sslPemFile),
732
743
  RubyCommand.Argument(name: "ssl_verify", value: sslVerify),
@@ -866,6 +877,7 @@ public func badge(dark: Any? = nil,
866
877
  - apiToken: Appetize.io API Token
867
878
  - publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
868
879
  - note: Notes you wish to add to the uploaded app
880
+ - timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
869
881
 
870
882
  This should be called from danger.
871
883
  More information in the [device_grid guide](https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/device_grid/README.md).
@@ -874,13 +886,15 @@ public func buildAndUploadToAppetize(xcodebuild: [String: Any] = [:],
874
886
  scheme: String? = nil,
875
887
  apiToken: String,
876
888
  publicKey: String? = nil,
877
- note: String? = nil)
889
+ note: String? = nil,
890
+ timeout: Int? = nil)
878
891
  {
879
892
  let command = RubyCommand(commandID: "", methodName: "build_and_upload_to_appetize", className: nil, args: [RubyCommand.Argument(name: "xcodebuild", value: xcodebuild),
880
893
  RubyCommand.Argument(name: "scheme", value: scheme),
881
894
  RubyCommand.Argument(name: "api_token", value: apiToken),
882
895
  RubyCommand.Argument(name: "public_key", value: publicKey),
883
- RubyCommand.Argument(name: "note", value: note)])
896
+ RubyCommand.Argument(name: "note", value: note),
897
+ RubyCommand.Argument(name: "timeout", value: timeout)])
884
898
  _ = runner.executeCommand(command)
885
899
  }
886
900
 
@@ -950,7 +964,7 @@ public func buildAndroidApp(task: String? = nil,
950
964
  - skipPackagePkg: Should we skip packaging the pkg?
951
965
  - includeSymbols: Should the ipa file include symbols?
952
966
  - includeBitcode: Should the ipa file include bitcode?
953
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
967
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
954
968
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
955
969
  - exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
956
970
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -981,6 +995,8 @@ public func buildAndroidApp(task: String? = nil,
981
995
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
982
996
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
983
997
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
998
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
999
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
984
1000
  - useSystemScm: Lets xcodebuild use system's scm configuration
985
1001
 
986
1002
  - returns: The absolute path to the generated ipa file
@@ -1031,6 +1047,8 @@ public func buildApp(workspace: String? = nil,
1031
1047
  xcprettyUtf: Bool? = nil,
1032
1048
  skipProfileDetection: Bool = false,
1033
1049
  clonedSourcePackagesPath: String? = nil,
1050
+ skipPackageDependenciesResolution: Bool = false,
1051
+ disablePackageAutomaticUpdates: Bool = false,
1034
1052
  useSystemScm: Bool = false)
1035
1053
  {
1036
1054
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1077,6 +1095,8 @@ public func buildApp(workspace: String? = nil,
1077
1095
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1078
1096
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1079
1097
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1098
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1099
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1080
1100
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1081
1101
  _ = runner.executeCommand(command)
1082
1102
  }
@@ -1097,7 +1117,7 @@ public func buildApp(workspace: String? = nil,
1097
1117
  - skipPackageIpa: Should we skip packaging the ipa?
1098
1118
  - includeSymbols: Should the ipa file include symbols?
1099
1119
  - includeBitcode: Should the ipa file include bitcode?
1100
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
1120
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
1101
1121
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
1102
1122
  - exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1103
1123
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -1126,6 +1146,8 @@ public func buildApp(workspace: String? = nil,
1126
1146
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1127
1147
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1128
1148
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1149
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1150
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1129
1151
  - useSystemScm: Lets xcodebuild use system's scm configuration
1130
1152
 
1131
1153
  - returns: The absolute path to the generated ipa file
@@ -1173,6 +1195,8 @@ public func buildIosApp(workspace: String? = nil,
1173
1195
  xcprettyUtf: Bool? = nil,
1174
1196
  skipProfileDetection: Bool = false,
1175
1197
  clonedSourcePackagesPath: String? = nil,
1198
+ skipPackageDependenciesResolution: Bool = false,
1199
+ disablePackageAutomaticUpdates: Bool = false,
1176
1200
  useSystemScm: Bool = false)
1177
1201
  {
1178
1202
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1216,6 +1240,8 @@ public func buildIosApp(workspace: String? = nil,
1216
1240
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1217
1241
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1218
1242
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1243
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1244
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1219
1245
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1220
1246
  _ = runner.executeCommand(command)
1221
1247
  }
@@ -1236,7 +1262,7 @@ public func buildIosApp(workspace: String? = nil,
1236
1262
  - skipPackagePkg: Should we skip packaging the pkg?
1237
1263
  - includeSymbols: Should the ipa file include symbols?
1238
1264
  - includeBitcode: Should the ipa file include bitcode?
1239
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
1265
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
1240
1266
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
1241
1267
  - exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1242
1268
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -1266,6 +1292,8 @@ public func buildIosApp(workspace: String? = nil,
1266
1292
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1267
1293
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1268
1294
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1295
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1296
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1269
1297
  - useSystemScm: Lets xcodebuild use system's scm configuration
1270
1298
 
1271
1299
  - returns: The absolute path to the generated ipa file
@@ -1314,6 +1342,8 @@ public func buildMacApp(workspace: String? = nil,
1314
1342
  xcprettyUtf: Bool? = nil,
1315
1343
  skipProfileDetection: Bool = false,
1316
1344
  clonedSourcePackagesPath: String? = nil,
1345
+ skipPackageDependenciesResolution: Bool = false,
1346
+ disablePackageAutomaticUpdates: Bool = false,
1317
1347
  useSystemScm: Bool = false)
1318
1348
  {
1319
1349
  let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1358,6 +1388,8 @@ public func buildMacApp(workspace: String? = nil,
1358
1388
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1359
1389
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1360
1390
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1391
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1392
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1361
1393
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1362
1394
  _ = runner.executeCommand(command)
1363
1395
  }
@@ -1520,7 +1552,7 @@ public func captureAndroidScreenshots(androidHome: String? = nil,
1520
1552
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1521
1553
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1522
1554
  - headless: Enabling this option will prevent displaying the simulator window
1523
- - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1555
+ - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
1524
1556
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1525
1557
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
1526
1558
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -1543,11 +1575,14 @@ public func captureAndroidScreenshots(androidHome: String? = nil,
1543
1575
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1544
1576
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1545
1577
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1578
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1579
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1546
1580
  - testplan: The testplan associated with the scheme that should be used for testing
1547
1581
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1548
1582
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1549
1583
  - disableXcpretty: Disable xcpretty formatting of build
1550
1584
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1585
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1551
1586
  */
1552
1587
  public func captureIosScreenshots(workspace: String? = nil,
1553
1588
  project: String? = nil,
@@ -1588,11 +1623,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1588
1623
  concurrentSimulators: Bool = true,
1589
1624
  disableSlideToType: Bool = false,
1590
1625
  clonedSourcePackagesPath: String? = nil,
1626
+ skipPackageDependenciesResolution: Bool = false,
1627
+ disablePackageAutomaticUpdates: Bool = false,
1591
1628
  testplan: String? = nil,
1592
1629
  onlyTesting: Any? = nil,
1593
1630
  skipTesting: Any? = nil,
1594
1631
  disableXcpretty: Bool? = nil,
1595
- suppressXcodeOutput: Bool? = nil)
1632
+ suppressXcodeOutput: Bool? = nil,
1633
+ useSystemScm: Bool = false)
1596
1634
  {
1597
1635
  let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1598
1636
  RubyCommand.Argument(name: "project", value: project),
@@ -1633,11 +1671,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1633
1671
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1634
1672
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1635
1673
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1674
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1675
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1636
1676
  RubyCommand.Argument(name: "testplan", value: testplan),
1637
1677
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1638
1678
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1639
1679
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1640
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1680
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1681
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1641
1682
  _ = runner.executeCommand(command)
1642
1683
  }
1643
1684
 
@@ -1661,7 +1702,7 @@ public func captureIosScreenshots(workspace: String? = nil,
1661
1702
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1662
1703
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1663
1704
  - headless: Enabling this option will prevent displaying the simulator window
1664
- - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1705
+ - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
1665
1706
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1666
1707
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
1667
1708
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -1684,11 +1725,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1684
1725
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1685
1726
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1686
1727
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1728
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1729
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1687
1730
  - testplan: The testplan associated with the scheme that should be used for testing
1688
1731
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1689
1732
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1690
1733
  - disableXcpretty: Disable xcpretty formatting of build
1691
1734
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1735
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1692
1736
  */
1693
1737
  public func captureScreenshots(workspace: String? = nil,
1694
1738
  project: String? = nil,
@@ -1729,11 +1773,14 @@ public func captureScreenshots(workspace: String? = nil,
1729
1773
  concurrentSimulators: Bool = true,
1730
1774
  disableSlideToType: Bool = false,
1731
1775
  clonedSourcePackagesPath: String? = nil,
1776
+ skipPackageDependenciesResolution: Bool = false,
1777
+ disablePackageAutomaticUpdates: Bool = false,
1732
1778
  testplan: String? = nil,
1733
1779
  onlyTesting: Any? = nil,
1734
1780
  skipTesting: Any? = nil,
1735
1781
  disableXcpretty: Bool? = nil,
1736
- suppressXcodeOutput: Bool? = nil)
1782
+ suppressXcodeOutput: Bool? = nil,
1783
+ useSystemScm: Bool = false)
1737
1784
  {
1738
1785
  let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1739
1786
  RubyCommand.Argument(name: "project", value: project),
@@ -1774,11 +1821,14 @@ public func captureScreenshots(workspace: String? = nil,
1774
1821
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1775
1822
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1776
1823
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1824
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1825
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1777
1826
  RubyCommand.Argument(name: "testplan", value: testplan),
1778
1827
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1779
1828
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1780
1829
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1781
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1830
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1831
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1782
1832
  _ = runner.executeCommand(command)
1783
1833
  }
1784
1834
 
@@ -1806,6 +1856,8 @@ public func captureScreenshots(workspace: String? = nil,
1806
1856
  - projectDirectory: Define the directory containing the Carthage project
1807
1857
  - newResolver: Use new resolver when resolving dependency graph
1808
1858
  - logPath: Path to the xcode build output
1859
+ - useXcframeworks: Create xcframework bundles instead of one framework per platform (requires Xcode 12+)
1860
+ - archive: Archive built frameworks from the current project
1809
1861
  - executable: Path to the `carthage` executable on your machine
1810
1862
  */
1811
1863
  public func carthage(command: String = "bootstrap",
@@ -1828,6 +1880,8 @@ public func carthage(command: String = "bootstrap",
1828
1880
  projectDirectory: String? = nil,
1829
1881
  newResolver: Bool? = nil,
1830
1882
  logPath: String? = nil,
1883
+ useXcframeworks: Bool = false,
1884
+ archive: Bool = false,
1831
1885
  executable: String = "carthage")
1832
1886
  {
1833
1887
  let command = RubyCommand(commandID: "", methodName: "carthage", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
@@ -1850,6 +1904,8 @@ public func carthage(command: String = "bootstrap",
1850
1904
  RubyCommand.Argument(name: "project_directory", value: projectDirectory),
1851
1905
  RubyCommand.Argument(name: "new_resolver", value: newResolver),
1852
1906
  RubyCommand.Argument(name: "log_path", value: logPath),
1907
+ RubyCommand.Argument(name: "use_xcframeworks", value: useXcframeworks),
1908
+ RubyCommand.Argument(name: "archive", value: archive),
1853
1909
  RubyCommand.Argument(name: "executable", value: executable)])
1854
1910
  _ = runner.executeCommand(command)
1855
1911
  }
@@ -1993,6 +2049,7 @@ public func chatwork(apiToken: String,
1993
2049
  - platform: The platform to use (optional)
1994
2050
  - defaultRuleLevel: The default rule level unless otherwise configured
1995
2051
  - includeInAppPurchases: Should check in-app purchases?
2052
+ - useLive: Should force check live app?
1996
2053
  - negativeAppleSentiment: mentioning  in a way that could be considered negative
1997
2054
  - placeholderText: using placeholder text (e.g.:"lorem ipsum", "text here", etc...)
1998
2055
  - otherPlatforms: mentioning other platforms, like Android or Blackberry
@@ -2017,6 +2074,7 @@ public func checkAppStoreMetadata(apiKeyPath: String? = nil,
2017
2074
  platform: String = "ios",
2018
2075
  defaultRuleLevel: Any = "error",
2019
2076
  includeInAppPurchases: Bool = true,
2077
+ useLive: Bool = false,
2020
2078
  negativeAppleSentiment: Any? = nil,
2021
2079
  placeholderText: Any? = nil,
2022
2080
  otherPlatforms: Any? = nil,
@@ -2037,6 +2095,7 @@ public func checkAppStoreMetadata(apiKeyPath: String? = nil,
2037
2095
  RubyCommand.Argument(name: "platform", value: platform),
2038
2096
  RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
2039
2097
  RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
2098
+ RubyCommand.Argument(name: "use_live", value: useLive),
2040
2099
  RubyCommand.Argument(name: "negative_apple_sentiment", value: negativeAppleSentiment),
2041
2100
  RubyCommand.Argument(name: "placeholder_text", value: placeholderText),
2042
2101
  RubyCommand.Argument(name: "other_platforms", value: otherPlatforms),
@@ -2145,6 +2204,7 @@ public func clubmate() {
2145
2204
  - errorCallback: A callback invoked with the command output if there is a non-zero exit status
2146
2205
  - tryRepoUpdateOnError: Retry with --repo-update if action was finished with error
2147
2206
  - deployment: Disallow any changes to the Podfile or the Podfile.lock during installation
2207
+ - allowRoot: Allows CocoaPods to run as root
2148
2208
  - clean: **DEPRECATED!** (Option renamed as clean_install) Remove SCM directories
2149
2209
  - integrate: **DEPRECATED!** (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s)
2150
2210
 
@@ -2160,6 +2220,7 @@ public func cocoapods(repoUpdate: Bool = false,
2160
2220
  errorCallback: ((String) -> Void)? = nil,
2161
2221
  tryRepoUpdateOnError: Bool = false,
2162
2222
  deployment: Bool = false,
2223
+ allowRoot: Bool = false,
2163
2224
  clean: Bool = true,
2164
2225
  integrate: Bool = true)
2165
2226
  {
@@ -2173,6 +2234,7 @@ public func cocoapods(repoUpdate: Bool = false,
2173
2234
  RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure),
2174
2235
  RubyCommand.Argument(name: "try_repo_update_on_error", value: tryRepoUpdateOnError),
2175
2236
  RubyCommand.Argument(name: "deployment", value: deployment),
2237
+ RubyCommand.Argument(name: "allow_root", value: allowRoot),
2176
2238
  RubyCommand.Argument(name: "clean", value: clean),
2177
2239
  RubyCommand.Argument(name: "integrate", value: integrate)])
2178
2240
  _ = runner.executeCommand(command)
@@ -2474,6 +2536,7 @@ public func createKeychain(name: String? = nil,
2474
2536
 
2475
2537
  - parameters:
2476
2538
  - apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
2539
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
2477
2540
  - repo: The name of the repository you want to submit the pull request to
2478
2541
  - title: The title of the pull request
2479
2542
  - body: The contents of the pull request
@@ -2489,7 +2552,8 @@ public func createKeychain(name: String? = nil,
2489
2552
 
2490
2553
  - returns: The pull request URL when successful
2491
2554
  */
2492
- public func createPullRequest(apiToken: String,
2555
+ public func createPullRequest(apiToken: String? = nil,
2556
+ apiBearer: String? = nil,
2493
2557
  repo: String,
2494
2558
  title: String,
2495
2559
  body: String? = nil,
@@ -2504,6 +2568,7 @@ public func createPullRequest(apiToken: String,
2504
2568
  teamReviewers: [String]? = nil)
2505
2569
  {
2506
2570
  let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
2571
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer),
2507
2572
  RubyCommand.Argument(name: "repo", value: repo),
2508
2573
  RubyCommand.Argument(name: "title", value: title),
2509
2574
  RubyCommand.Argument(name: "body", value: body),
@@ -2519,6 +2584,42 @@ public func createPullRequest(apiToken: String,
2519
2584
  _ = runner.executeCommand(command)
2520
2585
  }
2521
2586
 
2587
+ /**
2588
+ Package multiple build configs of a library/framework into a single xcframework
2589
+
2590
+ - parameters:
2591
+ - frameworks: Frameworks to add to the target xcframework
2592
+ - libraries: Libraries to add to the target xcframework, with their corresponding headers
2593
+ - output: The path to write the xcframework to
2594
+ - allowInternalDistribution: Specifies that the created xcframework contains information not suitable for public distribution
2595
+
2596
+ Utility for packaging multiple build configurations of a given library
2597
+ or framework into a single xcframework.
2598
+
2599
+ If you want to package several frameworks just provide an array containing
2600
+ the list of frameworks to be packaged using the :frameworks parameter.
2601
+
2602
+ If you want to package several libraries with their corresponding headers
2603
+ provide a hash containing the library as the key and the directory containing
2604
+ its headers as the value (or an empty string if there are no headers associated
2605
+ with the provided library).
2606
+
2607
+ Finally specify the location of the xcframework to be generated using the :output
2608
+ parameter.
2609
+
2610
+ */
2611
+ public func createXcframework(frameworks: [String]? = nil,
2612
+ libraries: [String: Any]? = nil,
2613
+ output: String,
2614
+ allowInternalDistribution: Bool = false)
2615
+ {
2616
+ let command = RubyCommand(commandID: "", methodName: "create_xcframework", className: nil, args: [RubyCommand.Argument(name: "frameworks", value: frameworks),
2617
+ RubyCommand.Argument(name: "libraries", value: libraries),
2618
+ RubyCommand.Argument(name: "output", value: output),
2619
+ RubyCommand.Argument(name: "allow_internal_distribution", value: allowInternalDistribution)])
2620
+ _ = runner.executeCommand(command)
2621
+ }
2622
+
2522
2623
  /**
2523
2624
  Runs `danger` for the project
2524
2625
 
@@ -2864,6 +2965,32 @@ public func download(url: String) {
2864
2965
  _ = runner.executeCommand(command)
2865
2966
  }
2866
2967
 
2968
+ /**
2969
+ Download App Privacy Details from an app in App Store Connect
2970
+
2971
+ - parameters:
2972
+ - username: Your Apple ID Username for App Store Connect
2973
+ - appIdentifier: The bundle identifier of your app
2974
+ - teamId: The ID of your App Store Connect team if you're in multiple teams
2975
+ - teamName: The name of your App Store Connect team if you're in multiple teams
2976
+ - outputJsonPath: Path to the app usage data JSON file generated by interactive questions
2977
+
2978
+ Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details
2979
+ */
2980
+ public func downloadAppPrivacyDetailsFromAppStore(username: String,
2981
+ appIdentifier: String,
2982
+ teamId: Any? = nil,
2983
+ teamName: String? = nil,
2984
+ outputJsonPath: String = "./fastlane/app_privacy_details.json")
2985
+ {
2986
+ let command = RubyCommand(commandID: "", methodName: "download_app_privacy_details_from_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2987
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2988
+ RubyCommand.Argument(name: "team_id", value: teamId),
2989
+ RubyCommand.Argument(name: "team_name", value: teamName),
2990
+ RubyCommand.Argument(name: "output_json_path", value: outputJsonPath)])
2991
+ _ = runner.executeCommand(command)
2992
+ }
2993
+
2867
2994
  /**
2868
2995
  Download dSYM files from App Store Connect for Bitcode apps
2869
2996
 
@@ -3721,7 +3848,7 @@ public func gitAdd(path: Any? = nil,
3721
3848
  - path: The file you want to commit
3722
3849
  - message: The commit message that should be used
3723
3850
  - skipGitHooks: Set to true to pass --no-verify to git
3724
- - allowNothingToCommit: Set to true to allow commit without any git changes
3851
+ - allowNothingToCommit: Set to true to allow commit without any git changes in the files you want to commit
3725
3852
  */
3726
3853
  public func gitCommit(path: Any,
3727
3854
  message: String,
@@ -3791,6 +3918,7 @@ public func gitTagExists(tag: String,
3791
3918
  - parameters:
3792
3919
  - serverUrl: The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com')
3793
3920
  - apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
3921
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
3794
3922
  - httpMethod: The HTTP method. e.g. GET / POST
3795
3923
  - body: The request body in JSON or hash format
3796
3924
  - rawBody: The request body taken verbatim instead of as JSON, useful for file uploads
@@ -3807,7 +3935,8 @@ public func gitTagExists(tag: String,
3807
3935
  Documentation: [https://developer.github.com/v3](https://developer.github.com/v3).
3808
3936
  */
3809
3937
  public func githubApi(serverUrl: String = "https://api.github.com",
3810
- apiToken: String,
3938
+ apiToken: String? = nil,
3939
+ apiBearer: String? = nil,
3811
3940
  httpMethod: String = "GET",
3812
3941
  body: [String: Any] = [:],
3813
3942
  rawBody: String? = nil,
@@ -3819,6 +3948,7 @@ public func githubApi(serverUrl: String = "https://api.github.com",
3819
3948
  {
3820
3949
  let command = RubyCommand(commandID: "", methodName: "github_api", className: nil, args: [RubyCommand.Argument(name: "server_url", value: serverUrl),
3821
3950
  RubyCommand.Argument(name: "api_token", value: apiToken),
3951
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer),
3822
3952
  RubyCommand.Argument(name: "http_method", value: httpMethod),
3823
3953
  RubyCommand.Argument(name: "body", value: body),
3824
3954
  RubyCommand.Argument(name: "raw_body", value: rawBody),
@@ -3970,7 +4100,7 @@ public func gradle(task: String? = nil,
3970
4100
  - skipPackagePkg: Should we skip packaging the pkg?
3971
4101
  - includeSymbols: Should the ipa file include symbols?
3972
4102
  - includeBitcode: Should the ipa file include bitcode?
3973
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
4103
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
3974
4104
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
3975
4105
  - exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
3976
4106
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -4001,6 +4131,8 @@ public func gradle(task: String? = nil,
4001
4131
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
4002
4132
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
4003
4133
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
4134
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
4135
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
4004
4136
  - useSystemScm: Lets xcodebuild use system's scm configuration
4005
4137
 
4006
4138
  - returns: The absolute path to the generated ipa file
@@ -4051,6 +4183,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4051
4183
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
4052
4184
  skipProfileDetection: Bool = gymfile.skipProfileDetection,
4053
4185
  clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath,
4186
+ skipPackageDependenciesResolution: Bool = gymfile.skipPackageDependenciesResolution,
4187
+ disablePackageAutomaticUpdates: Bool = gymfile.disablePackageAutomaticUpdates,
4054
4188
  useSystemScm: Bool = gymfile.useSystemScm)
4055
4189
  {
4056
4190
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -4097,6 +4231,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4097
4231
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
4098
4232
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
4099
4233
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
4234
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
4235
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
4100
4236
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
4101
4237
  _ = runner.executeCommand(command)
4102
4238
  }
@@ -5159,6 +5295,7 @@ public func oclint(oclintPath: String = "oclint",
5159
5295
  - apnsP12: APNS P12 File (in .p12 format)
5160
5296
  - apnsP12Password: APNS P12 password
5161
5297
  - apnsEnv: APNS environment
5298
+ - organizationId: OneSignal Organization ID
5162
5299
 
5163
5300
  You can use this action to automatically create or update a OneSignal application. You can also upload a `.p12` with password, a GCM key, or both.
5164
5301
  */
@@ -5169,7 +5306,8 @@ public func onesignal(appId: String? = nil,
5169
5306
  androidGcmSenderId: String? = nil,
5170
5307
  apnsP12: String? = nil,
5171
5308
  apnsP12Password: String? = nil,
5172
- apnsEnv: String = "production")
5309
+ apnsEnv: String = "production",
5310
+ organizationId: String? = nil)
5173
5311
  {
5174
5312
  let command = RubyCommand(commandID: "", methodName: "onesignal", className: nil, args: [RubyCommand.Argument(name: "app_id", value: appId),
5175
5313
  RubyCommand.Argument(name: "auth_token", value: authToken),
@@ -5178,7 +5316,8 @@ public func onesignal(appId: String? = nil,
5178
5316
  RubyCommand.Argument(name: "android_gcm_sender_id", value: androidGcmSenderId),
5179
5317
  RubyCommand.Argument(name: "apns_p12", value: apnsP12),
5180
5318
  RubyCommand.Argument(name: "apns_p12_password", value: apnsP12Password),
5181
- RubyCommand.Argument(name: "apns_env", value: apnsEnv)])
5319
+ RubyCommand.Argument(name: "apns_env", value: apnsEnv),
5320
+ RubyCommand.Argument(name: "organization_id", value: organizationId)])
5182
5321
  _ = runner.executeCommand(command)
5183
5322
  }
5184
5323
 
@@ -5489,6 +5628,7 @@ public func podLibLint(useBundleExec: Bool = true,
5489
5628
  - swiftVersion: The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file
5490
5629
  - skipImportValidation: Lint skips validating that the pod can be imported
5491
5630
  - skipTests: Lint skips building and running tests during validation
5631
+ - useJson: Convert the podspec to JSON before pushing it to the repo
5492
5632
  - verbose: Show more debugging information
5493
5633
  - useModularHeaders: Use modular headers option during validation
5494
5634
  - synchronous: If validation depends on other recently pushed pods, synchronize
@@ -5502,6 +5642,7 @@ public func podPush(useBundleExec: Bool = false,
5502
5642
  swiftVersion: String? = nil,
5503
5643
  skipImportValidation: Bool? = nil,
5504
5644
  skipTests: Bool? = nil,
5645
+ useJson: Bool? = nil,
5505
5646
  verbose: Bool = false,
5506
5647
  useModularHeaders: Bool? = nil,
5507
5648
  synchronous: Bool? = nil)
@@ -5515,6 +5656,7 @@ public func podPush(useBundleExec: Bool = false,
5515
5656
  RubyCommand.Argument(name: "swift_version", value: swiftVersion),
5516
5657
  RubyCommand.Argument(name: "skip_import_validation", value: skipImportValidation),
5517
5658
  RubyCommand.Argument(name: "skip_tests", value: skipTests),
5659
+ RubyCommand.Argument(name: "use_json", value: useJson),
5518
5660
  RubyCommand.Argument(name: "verbose", value: verbose),
5519
5661
  RubyCommand.Argument(name: "use_modular_headers", value: useModularHeaders),
5520
5662
  RubyCommand.Argument(name: "synchronous", value: synchronous)])
@@ -5568,6 +5710,7 @@ public func podioItem(clientId: String,
5568
5710
  - platform: The platform to use (optional)
5569
5711
  - defaultRuleLevel: The default rule level unless otherwise configured
5570
5712
  - includeInAppPurchases: Should check in-app purchases?
5713
+ - useLive: Should force check live app?
5571
5714
  - freeStuffInIap: using text indicating that your IAP is free
5572
5715
 
5573
5716
  - returns: true if precheck passes, else, false
@@ -5583,6 +5726,7 @@ public func precheck(apiKeyPath: Any? = precheckfile.apiKeyPath,
5583
5726
  platform: Any = precheckfile.platform,
5584
5727
  defaultRuleLevel: Any = precheckfile.defaultRuleLevel,
5585
5728
  includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
5729
+ useLive: Bool = precheckfile.useLive,
5586
5730
  freeStuffInIap: Any? = precheckfile.freeStuffInIap)
5587
5731
  {
5588
5732
  let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
@@ -5594,6 +5738,7 @@ public func precheck(apiKeyPath: Any? = precheckfile.apiKeyPath,
5594
5738
  RubyCommand.Argument(name: "platform", value: platform),
5595
5739
  RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
5596
5740
  RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
5741
+ RubyCommand.Argument(name: "use_live", value: useLive),
5597
5742
  RubyCommand.Argument(name: "free_stuff_in_iap", value: freeStuffInIap)])
5598
5743
  _ = runner.executeCommand(command)
5599
5744
  }
@@ -5738,6 +5883,7 @@ public func pushGitTags(force: Bool = false,
5738
5883
  - remote: The remote to push to
5739
5884
  - noVerify: Whether or not to use --no-verify
5740
5885
  - setUpstream: Whether or not to use --set-upstream
5886
+ - pushOptions: Array of strings to be passed using the '--push-option' option
5741
5887
 
5742
5888
  Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using `commit_version_bump`) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo.
5743
5889
  If this is a new branch, use the `set_upstream` option to set the remote branch as upstream.
@@ -5749,7 +5895,8 @@ public func pushToGitRemote(localBranch: String? = nil,
5749
5895
  tags: Bool = true,
5750
5896
  remote: String = "origin",
5751
5897
  noVerify: Bool = false,
5752
- setUpstream: Bool = false)
5898
+ setUpstream: Bool = false,
5899
+ pushOptions: [String] = [])
5753
5900
  {
5754
5901
  let command = RubyCommand(commandID: "", methodName: "push_to_git_remote", className: nil, args: [RubyCommand.Argument(name: "local_branch", value: localBranch),
5755
5902
  RubyCommand.Argument(name: "remote_branch", value: remoteBranch),
@@ -5758,7 +5905,8 @@ public func pushToGitRemote(localBranch: String? = nil,
5758
5905
  RubyCommand.Argument(name: "tags", value: tags),
5759
5906
  RubyCommand.Argument(name: "remote", value: remote),
5760
5907
  RubyCommand.Argument(name: "no_verify", value: noVerify),
5761
- RubyCommand.Argument(name: "set_upstream", value: setUpstream)])
5908
+ RubyCommand.Argument(name: "set_upstream", value: setUpstream),
5909
+ RubyCommand.Argument(name: "push_options", value: pushOptions)])
5762
5910
  _ = runner.executeCommand(command)
5763
5911
  }
5764
5912
 
@@ -5857,7 +6005,7 @@ public func registerDevices(devices: [String: Any]? = nil,
5857
6005
  apiKey: [String: Any]? = nil,
5858
6006
  teamId: String? = nil,
5859
6007
  teamName: String? = nil,
5860
- username: String,
6008
+ username: String? = nil,
5861
6009
  platform: String = "ios")
5862
6010
  {
5863
6011
  let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
@@ -6088,11 +6236,14 @@ public func rubyVersion() {
6088
6236
  - slackIconUrl: Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false
6089
6237
  - skipSlack: Don't publish to slack, even when an URL is given
6090
6238
  - slackOnlyOnFailure: Only post on Slack if the tests fail
6239
+ - slackDefaultPayloads: Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack
6091
6240
  - destination: Use only if you're a pro, use the other options instead
6092
6241
  - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
6093
6242
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6094
6243
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6095
6244
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6245
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
6246
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
6096
6247
  - useSystemScm: Lets xcodebuild use system's scm configuration
6097
6248
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6098
6249
 
@@ -6156,11 +6307,14 @@ public func runTests(workspace: String? = nil,
6156
6307
  slackIconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
6157
6308
  skipSlack: Bool = false,
6158
6309
  slackOnlyOnFailure: Bool = false,
6310
+ slackDefaultPayloads: [String]? = nil,
6159
6311
  destination: Any? = nil,
6160
6312
  catalystPlatform: String? = nil,
6161
6313
  customReportFileName: String? = nil,
6162
6314
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
6163
6315
  clonedSourcePackagesPath: String? = nil,
6316
+ skipPackageDependenciesResolution: Bool = false,
6317
+ disablePackageAutomaticUpdates: Bool = false,
6164
6318
  useSystemScm: Bool = false,
6165
6319
  failBuild: Bool = true)
6166
6320
  {
@@ -6222,11 +6376,14 @@ public func runTests(workspace: String? = nil,
6222
6376
  RubyCommand.Argument(name: "slack_icon_url", value: slackIconUrl),
6223
6377
  RubyCommand.Argument(name: "skip_slack", value: skipSlack),
6224
6378
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
6379
+ RubyCommand.Argument(name: "slack_default_payloads", value: slackDefaultPayloads),
6225
6380
  RubyCommand.Argument(name: "destination", value: destination),
6226
6381
  RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
6227
6382
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6228
6383
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6229
6384
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6385
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
6386
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
6230
6387
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6231
6388
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6232
6389
  _ = runner.executeCommand(command)
@@ -6370,11 +6527,14 @@ public func say(text: Any,
6370
6527
  - slackIconUrl: Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false
6371
6528
  - skipSlack: Don't publish to slack, even when an URL is given
6372
6529
  - slackOnlyOnFailure: Only post on Slack if the tests fail
6530
+ - slackDefaultPayloads: Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack
6373
6531
  - destination: Use only if you're a pro, use the other options instead
6374
6532
  - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
6375
6533
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6376
6534
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6377
6535
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6536
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
6537
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
6378
6538
  - useSystemScm: Lets xcodebuild use system's scm configuration
6379
6539
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6380
6540
 
@@ -6438,11 +6598,14 @@ public func scan(workspace: Any? = scanfile.workspace,
6438
6598
  slackIconUrl: Any = scanfile.slackIconUrl,
6439
6599
  skipSlack: Bool = scanfile.skipSlack,
6440
6600
  slackOnlyOnFailure: Bool = scanfile.slackOnlyOnFailure,
6601
+ slackDefaultPayloads: [String]? = scanfile.slackDefaultPayloads,
6441
6602
  destination: Any? = scanfile.destination,
6442
6603
  catalystPlatform: Any? = scanfile.catalystPlatform,
6443
6604
  customReportFileName: Any? = scanfile.customReportFileName,
6444
6605
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6445
6606
  clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
6607
+ skipPackageDependenciesResolution: Bool = scanfile.skipPackageDependenciesResolution,
6608
+ disablePackageAutomaticUpdates: Bool = scanfile.disablePackageAutomaticUpdates,
6446
6609
  useSystemScm: Bool = scanfile.useSystemScm,
6447
6610
  failBuild: Bool = scanfile.failBuild)
6448
6611
  {
@@ -6504,11 +6667,14 @@ public func scan(workspace: Any? = scanfile.workspace,
6504
6667
  RubyCommand.Argument(name: "slack_icon_url", value: slackIconUrl),
6505
6668
  RubyCommand.Argument(name: "skip_slack", value: skipSlack),
6506
6669
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
6670
+ RubyCommand.Argument(name: "slack_default_payloads", value: slackDefaultPayloads),
6507
6671
  RubyCommand.Argument(name: "destination", value: destination),
6508
6672
  RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
6509
6673
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6510
6674
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6511
6675
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6676
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
6677
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
6512
6678
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6513
6679
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6514
6680
  _ = runner.executeCommand(command)
@@ -6682,6 +6848,7 @@ public func setChangelog(apiKeyPath: String? = nil,
6682
6848
  - repositoryName: The path to your repo, e.g. 'fastlane/fastlane'
6683
6849
  - serverUrl: The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com')
6684
6850
  - apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
6851
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
6685
6852
  - tagName: Pass in the tag name
6686
6853
  - name: Name of this release
6687
6854
  - commitish: Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master)
@@ -6699,7 +6866,8 @@ public func setChangelog(apiKeyPath: String? = nil,
6699
6866
  */
6700
6867
  @discardableResult public func setGithubRelease(repositoryName: String,
6701
6868
  serverUrl: String = "https://api.github.com",
6702
- apiToken: String,
6869
+ apiToken: String? = nil,
6870
+ apiBearer: String? = nil,
6703
6871
  tagName: String,
6704
6872
  name: String? = nil,
6705
6873
  commitish: String? = nil,
@@ -6711,6 +6879,7 @@ public func setChangelog(apiKeyPath: String? = nil,
6711
6879
  let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
6712
6880
  RubyCommand.Argument(name: "server_url", value: serverUrl),
6713
6881
  RubyCommand.Argument(name: "api_token", value: apiToken),
6882
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer),
6714
6883
  RubyCommand.Argument(name: "tag_name", value: tagName),
6715
6884
  RubyCommand.Argument(name: "name", value: name),
6716
6885
  RubyCommand.Argument(name: "commitish", value: commitish),
@@ -7001,7 +7170,7 @@ public func skipDocs() {
7001
7170
  - username: Overrides the webhook's username property if use_webhook_configured_username_and_icon is false
7002
7171
  - iconUrl: Overrides the webhook's image property if use_webhook_configured_username_and_icon is false
7003
7172
  - payload: Add additional information to this post. payload must be a hash containing any key with any value
7004
- - defaultPayloads: Remove some of the default payloads. More information about the available payloads on GitHub
7173
+ - defaultPayloads: Specifies default payloads to include. Pass an empty array to suppress all the default payloads
7005
7174
  - attachmentProperties: Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments
7006
7175
  - success: Was this build successful? (true/false)
7007
7176
  - failOnError: Should an error sending the slack notification cause a failure? (true/false)
@@ -7017,7 +7186,7 @@ public func slack(message: String? = nil,
7017
7186
  username: String = "fastlane",
7018
7187
  iconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
7019
7188
  payload: [String: Any] = [:],
7020
- defaultPayloads: [String]? = nil,
7189
+ defaultPayloads: [String] = ["lane", "test_result", "git_branch", "git_author", "last_git_commit", "last_git_commit_hash"],
7021
7190
  attachmentProperties: [String: Any] = [:],
7022
7191
  success: Bool = true,
7023
7192
  failOnError: Bool = true,
@@ -7203,7 +7372,7 @@ public func slather(buildDirectory: String? = nil,
7203
7372
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
7204
7373
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
7205
7374
  - headless: Enabling this option will prevent displaying the simulator window
7206
- - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
7375
+ - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
7207
7376
  - localizeSimulator: Enabling this option will configure the Simulator's system language
7208
7377
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
7209
7378
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -7226,11 +7395,14 @@ public func slather(buildDirectory: String? = nil,
7226
7395
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
7227
7396
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
7228
7397
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
7398
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
7399
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
7229
7400
  - testplan: The testplan associated with the scheme that should be used for testing
7230
7401
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
7231
7402
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
7232
7403
  - disableXcpretty: Disable xcpretty formatting of build
7233
7404
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
7405
+ - useSystemScm: Lets xcodebuild use system's scm configuration
7234
7406
  */
7235
7407
  public func snapshot(workspace: Any? = snapshotfile.workspace,
7236
7408
  project: Any? = snapshotfile.project,
@@ -7271,11 +7443,14 @@ public func snapshot(workspace: Any? = snapshotfile.workspace,
7271
7443
  concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
7272
7444
  disableSlideToType: Bool = snapshotfile.disableSlideToType,
7273
7445
  clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath,
7446
+ skipPackageDependenciesResolution: Bool = snapshotfile.skipPackageDependenciesResolution,
7447
+ disablePackageAutomaticUpdates: Bool = snapshotfile.disablePackageAutomaticUpdates,
7274
7448
  testplan: Any? = snapshotfile.testplan,
7275
7449
  onlyTesting: Any? = snapshotfile.onlyTesting,
7276
7450
  skipTesting: Any? = snapshotfile.skipTesting,
7277
7451
  disableXcpretty: Bool? = snapshotfile.disableXcpretty,
7278
- suppressXcodeOutput: Bool? = snapshotfile.suppressXcodeOutput)
7452
+ suppressXcodeOutput: Bool? = snapshotfile.suppressXcodeOutput,
7453
+ useSystemScm: Bool = snapshotfile.useSystemScm)
7279
7454
  {
7280
7455
  let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
7281
7456
  RubyCommand.Argument(name: "project", value: project),
@@ -7316,11 +7491,14 @@ public func snapshot(workspace: Any? = snapshotfile.workspace,
7316
7491
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
7317
7492
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
7318
7493
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
7494
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
7495
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
7319
7496
  RubyCommand.Argument(name: "testplan", value: testplan),
7320
7497
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
7321
7498
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
7322
7499
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
7323
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
7500
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
7501
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
7324
7502
  _ = runner.executeCommand(command)
7325
7503
  }
7326
7504
 
@@ -7463,7 +7641,7 @@ public func splunkmint(dsym: String? = nil,
7463
7641
 
7464
7642
  - parameters:
7465
7643
  - command: The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init)
7466
- - enableCodeCoverage: Enables code coverage for the generated Xcode project when using the generate-xcodeproj command
7644
+ - enableCodeCoverage: Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command
7467
7645
  - buildPath: Specify build/cache directory [default: ./.build]
7468
7646
  - packagePath: Change working directory before any other operation
7469
7647
  - xcconfig: Use xcconfig file to override swift package generate-xcodeproj defaults
@@ -7657,7 +7835,7 @@ public func supply(packageName: String,
7657
7835
  - files: List of files to process
7658
7836
  - ignoreExitStatus: Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false)
7659
7837
  - raiseIfSwiftlintError: Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false)
7660
- - reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging
7838
+ - reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging
7661
7839
  - quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
7662
7840
  - executable: Path to the `swiftlint` executable on your machine
7663
7841
  - format: Format code when mode is :autocorrect
@@ -8427,6 +8605,44 @@ public func updateUrlSchemes(path: String,
8427
8605
  _ = runner.executeCommand(command)
8428
8606
  }
8429
8607
 
8608
+ /**
8609
+ Upload App Privacy Details for an app in App Store Connect
8610
+
8611
+ - parameters:
8612
+ - username: Your Apple ID Username for App Store Connect
8613
+ - appIdentifier: The bundle identifier of your app
8614
+ - teamId: The ID of your App Store Connect team if you're in multiple teams
8615
+ - teamName: The name of your App Store Connect team if you're in multiple teams
8616
+ - jsonPath: Path to the app usage data JSON
8617
+ - outputJsonPath: Path to the app usage data JSON file generated by interactive questions
8618
+ - skipJsonFileSaving: Whether to skip the saving of the JSON file
8619
+ - skipUpload: Whether to skip the upload and only create the JSON file with interactive questions
8620
+ - skipPublish: Whether to skip the publishing
8621
+
8622
+ Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details
8623
+ */
8624
+ public func uploadAppPrivacyDetailsToAppStore(username: String,
8625
+ appIdentifier: String,
8626
+ teamId: Any? = nil,
8627
+ teamName: String? = nil,
8628
+ jsonPath: String? = nil,
8629
+ outputJsonPath: String = "./fastlane/app_privacy_details.json",
8630
+ skipJsonFileSaving: Bool = false,
8631
+ skipUpload: Bool = false,
8632
+ skipPublish: Bool = false)
8633
+ {
8634
+ let command = RubyCommand(commandID: "", methodName: "upload_app_privacy_details_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8635
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8636
+ RubyCommand.Argument(name: "team_id", value: teamId),
8637
+ RubyCommand.Argument(name: "team_name", value: teamName),
8638
+ RubyCommand.Argument(name: "json_path", value: jsonPath),
8639
+ RubyCommand.Argument(name: "output_json_path", value: outputJsonPath),
8640
+ RubyCommand.Argument(name: "skip_json_file_saving", value: skipJsonFileSaving),
8641
+ RubyCommand.Argument(name: "skip_upload", value: skipUpload),
8642
+ RubyCommand.Argument(name: "skip_publish", value: skipPublish)])
8643
+ _ = runner.executeCommand(command)
8644
+ }
8645
+
8430
8646
  /**
8431
8647
  Upload dSYM symbolication files to Crashlytics
8432
8648
 
@@ -9429,4 +9645,4 @@ public let snapshotfile = Snapshotfile()
9429
9645
 
9430
9646
  // Please don't remove the lines below
9431
9647
  // They are used to detect outdated files
9432
- // FastlaneRunnerAPIVersion [0.9.105]
9648
+ // FastlaneRunnerAPIVersion [0.9.110]