fastlane 2.171.0 → 2.172.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -72
  3. data/deliver/lib/deliver/commands_generator.rb +1 -1
  4. data/deliver/lib/deliver/setup.rb +8 -3
  5. data/fastlane/lib/fastlane/actions/{.github_api.rb.swp → .update_fastlane.rb.swp} +0 -0
  6. data/fastlane/lib/fastlane/actions/artifactory.rb +36 -3
  7. data/fastlane/lib/fastlane/actions/build_app.rb +3 -1
  8. data/fastlane/lib/fastlane/actions/create_pull_request.rb +16 -1
  9. data/fastlane/lib/fastlane/actions/create_xcframework.rb +118 -0
  10. data/fastlane/lib/fastlane/actions/download_dsyms.rb +0 -1
  11. data/fastlane/lib/fastlane/actions/git_commit.rb +8 -4
  12. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/register_devices.rb +2 -1
  14. data/fastlane/lib/fastlane/actions/swiftlint.rb +4 -4
  15. data/fastlane/lib/fastlane/cli_tools_distributor.rb +3 -0
  16. data/fastlane/lib/fastlane/version.rb +1 -1
  17. data/fastlane/swift/Deliverfile.swift +2 -2
  18. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  19. data/fastlane/swift/Fastlane.swift +125 -18
  20. data/fastlane/swift/Gymfile.swift +2 -2
  21. data/fastlane/swift/GymfileProtocol.swift +11 -3
  22. data/fastlane/swift/Matchfile.swift +2 -2
  23. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  24. data/fastlane/swift/Precheckfile.swift +2 -2
  25. data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
  26. data/fastlane/swift/Scanfile.swift +2 -2
  27. data/fastlane/swift/ScanfileProtocol.swift +10 -2
  28. data/fastlane/swift/Screengrabfile.swift +2 -2
  29. data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
  30. data/fastlane/swift/Snapshotfile.swift +2 -2
  31. data/fastlane/swift/SnapshotfileProtocol.swift +14 -2
  32. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  33. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
  34. data/fastlane_core/lib/fastlane_core/project.rb +18 -5
  35. data/frameit/lib/frameit/device_types.rb +7 -1
  36. data/gym/lib/gym/generators/build_command_generator.rb +3 -1
  37. data/gym/lib/gym/options.rb +12 -2
  38. data/scan/lib/scan/options.rb +10 -0
  39. data/scan/lib/scan/runner.rb +6 -1
  40. data/scan/lib/scan/slack_poster.rb +3 -1
  41. data/scan/lib/scan/test_command_generator.rb +3 -1
  42. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  43. data/snapshot/lib/snapshot/options.rb +16 -1
  44. data/snapshot/lib/snapshot/update.rb +1 -1
  45. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -1
  46. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +9 -0
  47. data/spaceship/lib/spaceship/connect_api/models/device.rb +26 -0
  48. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
  49. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +1 -0
  50. metadata +36 -23
  51. data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
  52. data/fastlane/lib/fastlane/actions/.set_github_release.rb.swp +0 -0
@@ -285,7 +285,6 @@ module Fastlane
285
285
  short_option: "-p",
286
286
  env_name: "DOWNLOAD_DSYMS_PLATFORM",
287
287
  description: "The app platform for dSYMs you wish to download (ios, appletvos)",
288
- optional: true,
289
288
  default_value: :ios),
290
289
  FastlaneCore::ConfigItem.new(key: :version,
291
290
  short_option: "-v",
@@ -11,9 +11,13 @@ module Fastlane
11
11
  skip_git_hooks = params[:skip_git_hooks] ? '--no-verify' : ''
12
12
 
13
13
  if params[:allow_nothing_to_commit]
14
- nothing_staged = Actions.sh("git --no-pager diff --name-only --staged").empty?
15
- UI.success("Nothing staged to commit ✅.") if nothing_staged
16
- return if nothing_staged
14
+ # Here we check if the path passed in parameter contains any modification
15
+ # and we skip the `git commit` command if there is none.
16
+ # That means you can have other files modified that are not in the path parameter
17
+ # and still make use of allow_nothing_to_commit.
18
+ repo_clean = Actions.sh("git status #{paths} --porcelain").empty?
19
+ UI.success("Nothing to commit, working tree clean ✅.") if repo_clean
20
+ return if repo_clean
17
21
  end
18
22
 
19
23
  command = "git commit -m #{params[:message].shellescape} #{paths} #{skip_git_hooks}".strip
@@ -42,7 +46,7 @@ module Fastlane
42
46
  type: Boolean,
43
47
  optional: true),
44
48
  FastlaneCore::ConfigItem.new(key: :allow_nothing_to_commit,
45
- description: "Set to true to allow commit without any git changes",
49
+ description: "Set to true to allow commit without any git changes in the files you want to commit",
46
50
  type: Boolean,
47
51
  optional: true)
48
52
  ]
@@ -27,7 +27,7 @@ module Fastlane
27
27
  end
28
28
 
29
29
  begin
30
- Spaceship::ConnectAPI::Device.create(name: name, platform: platform, udid: udid)
30
+ Spaceship::ConnectAPI::Device.find_or_create(udid, name: name, platform: platform)
31
31
  rescue => ex
32
32
  UI.error(ex.to_s)
33
33
  UI.crash!("Failed to register new device (name: #{name}, platform: #{platform}, UDID: #{udid})")
@@ -77,7 +77,7 @@ module Fastlane
77
77
  end
78
78
 
79
79
  def self.try_create_device(name: nil, platform: nil, udid: nil)
80
- Spaceship::ConnectAPI::Device.create(name: name, platform: platform, udid: udid)
80
+ Spaceship::ConnectAPI::Device.find_or_create(udid, name: name, platform: platform)
81
81
  rescue => ex
82
82
  UI.error(ex.to_s)
83
83
  UI.crash!("Failed to register new device (name: #{name}, UDID: #{udid})")
@@ -155,6 +155,7 @@ module Fastlane
155
155
  FastlaneCore::ConfigItem.new(key: :username,
156
156
  env_name: "DELIVER_USER",
157
157
  description: "Optional: Your Apple ID",
158
+ optional: true,
158
159
  default_value: user,
159
160
  default_value_dynamic: true),
160
161
  FastlaneCore::ConfigItem.new(key: :platform,
@@ -139,13 +139,13 @@ module Fastlane
139
139
  optional: true),
140
140
  FastlaneCore::ConfigItem.new(key: :reporter,
141
141
  env_name: "FL_SWIFTLINT_REPORTER",
142
- description: "Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, \
143
- emoji, sonarqube, markdown, github-actions-logging",
142
+ description: "Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, \
143
+ junit, html, emoji, sonarqube, markdown, github-actions-logging",
144
144
  is_string: true,
145
145
  optional: true,
146
146
  verify_block: proc do |value|
147
- available = ['xcode', 'json', 'csv', 'checkstyle', 'junit', 'html', 'emoji', 'sonarqube', 'markdown', 'github-actions-logging']
148
- UI.user_error!("Available values are '#{available.join("', '")}'") unless available.include?(value)
147
+ available = ['xcode', 'json', 'csv', 'checkstyle', 'codeclimate', 'junit', 'html', 'emoji', 'sonarqube', 'markdown', 'github-actions-logging']
148
+ UI.warning("Known 'reporter' values are '#{available.join("', '")}'. If you're receiving errors from swiftlint related to the reporter, make sure the reporter identifier you're using is correct and it's supported by your version of swiftlint.") unless available.include?(value)
149
149
  end),
150
150
  FastlaneCore::ConfigItem.new(key: :quiet,
151
151
  env_name: "FL_SWIFTLINT_QUIET",
@@ -71,6 +71,9 @@ module Fastlane
71
71
  # Disabling colors if environment variable set
72
72
  require 'fastlane_core/ui/disable_colors' if FastlaneCore::Helper.colors_disabled?
73
73
 
74
+ # Set interactive environment variable for spaceship (which can't require fastlane_core)
75
+ ENV["FASTLANE_IS_INTERACTIVE"] = FastlaneCore::UI.interactive?.to_s
76
+
74
77
  ARGV.unshift("spaceship") if ARGV.first == "spaceauth"
75
78
  tool_name = ARGV.first ? ARGV.first.downcase : nil
76
79
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.171.0'.freeze
2
+ VERSION = '2.172.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 = '0.49.1'.freeze
@@ -1,5 +1,5 @@
1
1
  // Deliverfile.swift
2
- // Copyright (c) 2020 FastlaneTools
2
+ // Copyright (c) 2021 FastlaneTools
3
3
 
4
4
  // This class is automatically included in FastlaneRunner during build
5
5
 
@@ -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.171.0
20
+ // Generated with fastlane 2.172.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.54]
259
+ // FastlaneRunnerAPIVersion [0.9.55]
@@ -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
  /**
@@ -700,6 +700,7 @@ public func apteligent(dsym: String? = nil,
700
700
  - endpoint: Artifactory endpoint
701
701
  - username: Artifactory username
702
702
  - password: Artifactory password
703
+ - apiKey: Artifactory API key
703
704
  - properties: Artifact properties hash
704
705
  - sslPemFile: Location of pem file to use for ssl verification
705
706
  - sslVerify: Verify SSL
@@ -708,13 +709,16 @@ public func apteligent(dsym: String? = nil,
708
709
  - proxyAddress: Proxy address
709
710
  - proxyPort: Proxy port
710
711
  - readTimeout: Read timeout
712
+
713
+ Connect to the artifactory server using either a username/password or an api_key
711
714
  */
712
715
  public func artifactory(file: String,
713
716
  repo: String,
714
717
  repoPath: String,
715
718
  endpoint: String,
716
- username: String,
717
- password: String,
719
+ username: String? = nil,
720
+ password: String? = nil,
721
+ apiKey: String? = nil,
718
722
  properties: [String: Any] = [:],
719
723
  sslPemFile: String? = nil,
720
724
  sslVerify: Bool = true,
@@ -730,6 +734,7 @@ public func artifactory(file: String,
730
734
  RubyCommand.Argument(name: "endpoint", value: endpoint),
731
735
  RubyCommand.Argument(name: "username", value: username),
732
736
  RubyCommand.Argument(name: "password", value: password),
737
+ RubyCommand.Argument(name: "api_key", value: apiKey),
733
738
  RubyCommand.Argument(name: "properties", value: properties),
734
739
  RubyCommand.Argument(name: "ssl_pem_file", value: sslPemFile),
735
740
  RubyCommand.Argument(name: "ssl_verify", value: sslVerify),
@@ -953,7 +958,7 @@ public func buildAndroidApp(task: String? = nil,
953
958
  - skipPackagePkg: Should we skip packaging the pkg?
954
959
  - includeSymbols: Should the ipa file include symbols?
955
960
  - includeBitcode: Should the ipa file include bitcode?
956
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
961
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
957
962
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
958
963
  - 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++"
959
964
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -984,6 +989,8 @@ public func buildAndroidApp(task: String? = nil,
984
989
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
985
990
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
986
991
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
992
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
993
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
987
994
  - useSystemScm: Lets xcodebuild use system's scm configuration
988
995
 
989
996
  - returns: The absolute path to the generated ipa file
@@ -1034,6 +1041,8 @@ public func buildApp(workspace: String? = nil,
1034
1041
  xcprettyUtf: Bool? = nil,
1035
1042
  skipProfileDetection: Bool = false,
1036
1043
  clonedSourcePackagesPath: String? = nil,
1044
+ skipPackageDependenciesResolution: Bool = false,
1045
+ disablePackageAutomaticUpdates: Bool = false,
1037
1046
  useSystemScm: Bool = false)
1038
1047
  {
1039
1048
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1080,6 +1089,8 @@ public func buildApp(workspace: String? = nil,
1080
1089
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1081
1090
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1082
1091
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1092
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1093
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1083
1094
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1084
1095
  _ = runner.executeCommand(command)
1085
1096
  }
@@ -1100,7 +1111,7 @@ public func buildApp(workspace: String? = nil,
1100
1111
  - skipPackageIpa: Should we skip packaging the ipa?
1101
1112
  - includeSymbols: Should the ipa file include symbols?
1102
1113
  - includeBitcode: Should the ipa file include bitcode?
1103
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
1114
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
1104
1115
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
1105
1116
  - 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++"
1106
1117
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -1129,6 +1140,8 @@ public func buildApp(workspace: String? = nil,
1129
1140
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1130
1141
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1131
1142
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1143
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1144
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1132
1145
  - useSystemScm: Lets xcodebuild use system's scm configuration
1133
1146
 
1134
1147
  - returns: The absolute path to the generated ipa file
@@ -1176,6 +1189,8 @@ public func buildIosApp(workspace: String? = nil,
1176
1189
  xcprettyUtf: Bool? = nil,
1177
1190
  skipProfileDetection: Bool = false,
1178
1191
  clonedSourcePackagesPath: String? = nil,
1192
+ skipPackageDependenciesResolution: Bool = false,
1193
+ disablePackageAutomaticUpdates: Bool = false,
1179
1194
  useSystemScm: Bool = false)
1180
1195
  {
1181
1196
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1219,6 +1234,8 @@ public func buildIosApp(workspace: String? = nil,
1219
1234
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1220
1235
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1221
1236
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1237
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1238
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1222
1239
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1223
1240
  _ = runner.executeCommand(command)
1224
1241
  }
@@ -1239,7 +1256,7 @@ public func buildIosApp(workspace: String? = nil,
1239
1256
  - skipPackagePkg: Should we skip packaging the pkg?
1240
1257
  - includeSymbols: Should the ipa file include symbols?
1241
1258
  - includeBitcode: Should the ipa file include bitcode?
1242
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
1259
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
1243
1260
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
1244
1261
  - 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++"
1245
1262
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -1269,6 +1286,8 @@ public func buildIosApp(workspace: String? = nil,
1269
1286
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1270
1287
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1271
1288
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1289
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1290
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1272
1291
  - useSystemScm: Lets xcodebuild use system's scm configuration
1273
1292
 
1274
1293
  - returns: The absolute path to the generated ipa file
@@ -1317,6 +1336,8 @@ public func buildMacApp(workspace: String? = nil,
1317
1336
  xcprettyUtf: Bool? = nil,
1318
1337
  skipProfileDetection: Bool = false,
1319
1338
  clonedSourcePackagesPath: String? = nil,
1339
+ skipPackageDependenciesResolution: Bool = false,
1340
+ disablePackageAutomaticUpdates: Bool = false,
1320
1341
  useSystemScm: Bool = false)
1321
1342
  {
1322
1343
  let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -1361,6 +1382,8 @@ public func buildMacApp(workspace: String? = nil,
1361
1382
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1362
1383
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1363
1384
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1385
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1386
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1364
1387
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1365
1388
  _ = runner.executeCommand(command)
1366
1389
  }
@@ -1546,11 +1569,14 @@ public func captureAndroidScreenshots(androidHome: String? = nil,
1546
1569
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1547
1570
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1548
1571
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1572
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1573
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1549
1574
  - testplan: The testplan associated with the scheme that should be used for testing
1550
1575
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1551
1576
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1552
1577
  - disableXcpretty: Disable xcpretty formatting of build
1553
1578
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1579
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1554
1580
  */
1555
1581
  public func captureIosScreenshots(workspace: String? = nil,
1556
1582
  project: String? = nil,
@@ -1591,11 +1617,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1591
1617
  concurrentSimulators: Bool = true,
1592
1618
  disableSlideToType: Bool = false,
1593
1619
  clonedSourcePackagesPath: String? = nil,
1620
+ skipPackageDependenciesResolution: Bool = false,
1621
+ disablePackageAutomaticUpdates: Bool = false,
1594
1622
  testplan: String? = nil,
1595
1623
  onlyTesting: Any? = nil,
1596
1624
  skipTesting: Any? = nil,
1597
1625
  disableXcpretty: Bool? = nil,
1598
- suppressXcodeOutput: Bool? = nil)
1626
+ suppressXcodeOutput: Bool? = nil,
1627
+ useSystemScm: Bool = false)
1599
1628
  {
1600
1629
  let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1601
1630
  RubyCommand.Argument(name: "project", value: project),
@@ -1636,11 +1665,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1636
1665
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1637
1666
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1638
1667
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1668
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1669
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1639
1670
  RubyCommand.Argument(name: "testplan", value: testplan),
1640
1671
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1641
1672
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1642
1673
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1643
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1674
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1675
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1644
1676
  _ = runner.executeCommand(command)
1645
1677
  }
1646
1678
 
@@ -1687,11 +1719,14 @@ public func captureIosScreenshots(workspace: String? = nil,
1687
1719
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1688
1720
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1689
1721
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1722
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1723
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
1690
1724
  - testplan: The testplan associated with the scheme that should be used for testing
1691
1725
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1692
1726
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1693
1727
  - disableXcpretty: Disable xcpretty formatting of build
1694
1728
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1729
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1695
1730
  */
1696
1731
  public func captureScreenshots(workspace: String? = nil,
1697
1732
  project: String? = nil,
@@ -1732,11 +1767,14 @@ public func captureScreenshots(workspace: String? = nil,
1732
1767
  concurrentSimulators: Bool = true,
1733
1768
  disableSlideToType: Bool = false,
1734
1769
  clonedSourcePackagesPath: String? = nil,
1770
+ skipPackageDependenciesResolution: Bool = false,
1771
+ disablePackageAutomaticUpdates: Bool = false,
1735
1772
  testplan: String? = nil,
1736
1773
  onlyTesting: Any? = nil,
1737
1774
  skipTesting: Any? = nil,
1738
1775
  disableXcpretty: Bool? = nil,
1739
- suppressXcodeOutput: Bool? = nil)
1776
+ suppressXcodeOutput: Bool? = nil,
1777
+ useSystemScm: Bool = false)
1740
1778
  {
1741
1779
  let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1742
1780
  RubyCommand.Argument(name: "project", value: project),
@@ -1777,11 +1815,14 @@ public func captureScreenshots(workspace: String? = nil,
1777
1815
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1778
1816
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1779
1817
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1818
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
1819
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
1780
1820
  RubyCommand.Argument(name: "testplan", value: testplan),
1781
1821
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1782
1822
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1783
1823
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1784
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1824
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1825
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1785
1826
  _ = runner.executeCommand(command)
1786
1827
  }
1787
1828
 
@@ -2480,6 +2521,7 @@ public func createKeychain(name: String? = nil,
2480
2521
 
2481
2522
  - parameters:
2482
2523
  - apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
2524
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
2483
2525
  - repo: The name of the repository you want to submit the pull request to
2484
2526
  - title: The title of the pull request
2485
2527
  - body: The contents of the pull request
@@ -2495,7 +2537,8 @@ public func createKeychain(name: String? = nil,
2495
2537
 
2496
2538
  - returns: The pull request URL when successful
2497
2539
  */
2498
- public func createPullRequest(apiToken: String,
2540
+ public func createPullRequest(apiToken: String? = nil,
2541
+ apiBearer: String? = nil,
2499
2542
  repo: String,
2500
2543
  title: String,
2501
2544
  body: String? = nil,
@@ -2510,6 +2553,7 @@ public func createPullRequest(apiToken: String,
2510
2553
  teamReviewers: [String]? = nil)
2511
2554
  {
2512
2555
  let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
2556
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer),
2513
2557
  RubyCommand.Argument(name: "repo", value: repo),
2514
2558
  RubyCommand.Argument(name: "title", value: title),
2515
2559
  RubyCommand.Argument(name: "body", value: body),
@@ -2525,6 +2569,42 @@ public func createPullRequest(apiToken: String,
2525
2569
  _ = runner.executeCommand(command)
2526
2570
  }
2527
2571
 
2572
+ /**
2573
+ Package multiple build configs of a library/framework into a single xcframework
2574
+
2575
+ - parameters:
2576
+ - frameworks: Frameworks to add to the target xcframework
2577
+ - libraries: Libraries to add to the target xcframework, with their corresponding headers
2578
+ - output: The path to write the xcframework to
2579
+ - allowInternalDistribution: Specifies that the created xcframework contains information not suitable for public distribution
2580
+
2581
+ Utility for packaging multiple build configurations of a given library
2582
+ or framework into a single xcframework.
2583
+
2584
+ If you want to package several frameworks just provide an array containing
2585
+ the list of frameworks to be packaged using the :frameworks parameter.
2586
+
2587
+ If you want to package several libraries with their corresponding headers
2588
+ provide a hash containing the library as the key and the directory containing
2589
+ its headers as the value (or an empty string if there are no headers associated
2590
+ with the provided library).
2591
+
2592
+ Finally specify the location of the xcframework to be generated using the :output
2593
+ parameter.
2594
+
2595
+ */
2596
+ public func createXcframework(frameworks: [String]? = nil,
2597
+ libraries: [String: Any]? = nil,
2598
+ output: String,
2599
+ allowInternalDistribution: Bool = false)
2600
+ {
2601
+ let command = RubyCommand(commandID: "", methodName: "create_xcframework", className: nil, args: [RubyCommand.Argument(name: "frameworks", value: frameworks),
2602
+ RubyCommand.Argument(name: "libraries", value: libraries),
2603
+ RubyCommand.Argument(name: "output", value: output),
2604
+ RubyCommand.Argument(name: "allow_internal_distribution", value: allowInternalDistribution)])
2605
+ _ = runner.executeCommand(command)
2606
+ }
2607
+
2528
2608
  /**
2529
2609
  Runs `danger` for the project
2530
2610
 
@@ -3753,7 +3833,7 @@ public func gitAdd(path: Any? = nil,
3753
3833
  - path: The file you want to commit
3754
3834
  - message: The commit message that should be used
3755
3835
  - skipGitHooks: Set to true to pass --no-verify to git
3756
- - allowNothingToCommit: Set to true to allow commit without any git changes
3836
+ - allowNothingToCommit: Set to true to allow commit without any git changes in the files you want to commit
3757
3837
  */
3758
3838
  public func gitCommit(path: Any,
3759
3839
  message: String,
@@ -4005,7 +4085,7 @@ public func gradle(task: String? = nil,
4005
4085
  - skipPackagePkg: Should we skip packaging the pkg?
4006
4086
  - includeSymbols: Should the ipa file include symbols?
4007
4087
  - includeBitcode: Should the ipa file include bitcode?
4008
- - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
4088
+ - exportMethod: Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
4009
4089
  - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
4010
4090
  - 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++"
4011
4091
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
@@ -4036,6 +4116,8 @@ public func gradle(task: String? = nil,
4036
4116
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
4037
4117
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
4038
4118
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
4119
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
4120
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
4039
4121
  - useSystemScm: Lets xcodebuild use system's scm configuration
4040
4122
 
4041
4123
  - returns: The absolute path to the generated ipa file
@@ -4086,6 +4168,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4086
4168
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
4087
4169
  skipProfileDetection: Bool = gymfile.skipProfileDetection,
4088
4170
  clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath,
4171
+ skipPackageDependenciesResolution: Bool = gymfile.skipPackageDependenciesResolution,
4172
+ disablePackageAutomaticUpdates: Bool = gymfile.disablePackageAutomaticUpdates,
4089
4173
  useSystemScm: Bool = gymfile.useSystemScm)
4090
4174
  {
4091
4175
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -4132,6 +4216,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4132
4216
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
4133
4217
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
4134
4218
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
4219
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
4220
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
4135
4221
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
4136
4222
  _ = runner.executeCommand(command)
4137
4223
  }
@@ -5904,7 +5990,7 @@ public func registerDevices(devices: [String: Any]? = nil,
5904
5990
  apiKey: [String: Any]? = nil,
5905
5991
  teamId: String? = nil,
5906
5992
  teamName: String? = nil,
5907
- username: String,
5993
+ username: String? = nil,
5908
5994
  platform: String = "ios")
5909
5995
  {
5910
5996
  let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
@@ -6141,6 +6227,8 @@ public func rubyVersion() {
6141
6227
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6142
6228
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6143
6229
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6230
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
6231
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
6144
6232
  - useSystemScm: Lets xcodebuild use system's scm configuration
6145
6233
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6146
6234
 
@@ -6210,6 +6298,8 @@ public func runTests(workspace: String? = nil,
6210
6298
  customReportFileName: String? = nil,
6211
6299
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
6212
6300
  clonedSourcePackagesPath: String? = nil,
6301
+ skipPackageDependenciesResolution: Bool = false,
6302
+ disablePackageAutomaticUpdates: Bool = false,
6213
6303
  useSystemScm: Bool = false,
6214
6304
  failBuild: Bool = true)
6215
6305
  {
@@ -6277,6 +6367,8 @@ public func runTests(workspace: String? = nil,
6277
6367
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6278
6368
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6279
6369
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6370
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
6371
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
6280
6372
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6281
6373
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6282
6374
  _ = runner.executeCommand(command)
@@ -6426,6 +6518,8 @@ public func say(text: Any,
6426
6518
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6427
6519
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6428
6520
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6521
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
6522
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
6429
6523
  - useSystemScm: Lets xcodebuild use system's scm configuration
6430
6524
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6431
6525
 
@@ -6495,6 +6589,8 @@ public func scan(workspace: Any? = scanfile.workspace,
6495
6589
  customReportFileName: Any? = scanfile.customReportFileName,
6496
6590
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6497
6591
  clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
6592
+ skipPackageDependenciesResolution: Bool = scanfile.skipPackageDependenciesResolution,
6593
+ disablePackageAutomaticUpdates: Bool = scanfile.disablePackageAutomaticUpdates,
6498
6594
  useSystemScm: Bool = scanfile.useSystemScm,
6499
6595
  failBuild: Bool = scanfile.failBuild)
6500
6596
  {
@@ -6562,6 +6658,8 @@ public func scan(workspace: Any? = scanfile.workspace,
6562
6658
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6563
6659
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6564
6660
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6661
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
6662
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
6565
6663
  RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6566
6664
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6567
6665
  _ = runner.executeCommand(command)
@@ -7282,11 +7380,14 @@ public func slather(buildDirectory: String? = nil,
7282
7380
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
7283
7381
  - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
7284
7382
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
7383
+ - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
7384
+ - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
7285
7385
  - testplan: The testplan associated with the scheme that should be used for testing
7286
7386
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
7287
7387
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
7288
7388
  - disableXcpretty: Disable xcpretty formatting of build
7289
7389
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
7390
+ - useSystemScm: Lets xcodebuild use system's scm configuration
7290
7391
  */
7291
7392
  public func snapshot(workspace: Any? = snapshotfile.workspace,
7292
7393
  project: Any? = snapshotfile.project,
@@ -7327,11 +7428,14 @@ public func snapshot(workspace: Any? = snapshotfile.workspace,
7327
7428
  concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
7328
7429
  disableSlideToType: Bool = snapshotfile.disableSlideToType,
7329
7430
  clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath,
7431
+ skipPackageDependenciesResolution: Bool = snapshotfile.skipPackageDependenciesResolution,
7432
+ disablePackageAutomaticUpdates: Bool = snapshotfile.disablePackageAutomaticUpdates,
7330
7433
  testplan: Any? = snapshotfile.testplan,
7331
7434
  onlyTesting: Any? = snapshotfile.onlyTesting,
7332
7435
  skipTesting: Any? = snapshotfile.skipTesting,
7333
7436
  disableXcpretty: Bool? = snapshotfile.disableXcpretty,
7334
- suppressXcodeOutput: Bool? = snapshotfile.suppressXcodeOutput)
7437
+ suppressXcodeOutput: Bool? = snapshotfile.suppressXcodeOutput,
7438
+ useSystemScm: Bool = snapshotfile.useSystemScm)
7335
7439
  {
7336
7440
  let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
7337
7441
  RubyCommand.Argument(name: "project", value: project),
@@ -7372,11 +7476,14 @@ public func snapshot(workspace: Any? = snapshotfile.workspace,
7372
7476
  RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
7373
7477
  RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
7374
7478
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
7479
+ RubyCommand.Argument(name: "skip_package_dependencies_resolution", value: skipPackageDependenciesResolution),
7480
+ RubyCommand.Argument(name: "disable_package_automatic_updates", value: disablePackageAutomaticUpdates),
7375
7481
  RubyCommand.Argument(name: "testplan", value: testplan),
7376
7482
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
7377
7483
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
7378
7484
  RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
7379
- RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
7485
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
7486
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
7380
7487
  _ = runner.executeCommand(command)
7381
7488
  }
7382
7489
 
@@ -7713,7 +7820,7 @@ public func supply(packageName: String,
7713
7820
  - files: List of files to process
7714
7821
  - ignoreExitStatus: Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false)
7715
7822
  - raiseIfSwiftlintError: Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false)
7716
- - reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging
7823
+ - reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging
7717
7824
  - quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
7718
7825
  - executable: Path to the `swiftlint` executable on your machine
7719
7826
  - format: Format code when mode is :autocorrect
@@ -9523,4 +9630,4 @@ public let snapshotfile = Snapshotfile()
9523
9630
 
9524
9631
  // Please don't remove the lines below
9525
9632
  // They are used to detect outdated files
9526
- // FastlaneRunnerAPIVersion [0.9.107]
9633
+ // FastlaneRunnerAPIVersion [0.9.108]