fastlane 2.195.0 → 2.198.1

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/cert/lib/cert/runner.rb +5 -2
  4. data/deliver/lib/assets/ScreenshotsHelp +29 -6
  5. data/deliver/lib/deliver/app_screenshot.rb +5 -4
  6. data/deliver/lib/deliver/runner.rb +1 -1
  7. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +12 -6
  9. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  10. data/fastlane/lib/fastlane/actions/download_dsyms.rb +47 -30
  11. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/get_version_number.rb +6 -2
  13. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -3
  14. data/fastlane/lib/fastlane/actions/notarize.rb +29 -11
  15. data/fastlane/lib/fastlane/actions/set_github_release.rb +11 -5
  16. data/fastlane/lib/fastlane/version.rb +1 -1
  17. data/fastlane/swift/Deliverfile.swift +1 -1
  18. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  19. data/fastlane/swift/Fastlane.swift +57 -17
  20. data/fastlane/swift/Gymfile.swift +1 -1
  21. data/fastlane/swift/GymfileProtocol.swift +5 -1
  22. data/fastlane/swift/LaneFileProtocol.swift +1 -1
  23. data/fastlane/swift/Matchfile.swift +1 -1
  24. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  25. data/fastlane/swift/Precheckfile.swift +1 -1
  26. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  27. data/fastlane/swift/Runner.swift +1 -1
  28. data/fastlane/swift/Scanfile.swift +1 -1
  29. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  30. data/fastlane/swift/Screengrabfile.swift +1 -1
  31. data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
  32. data/fastlane/swift/Snapshotfile.swift +1 -1
  33. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  34. data/fastlane/swift/formatting/Brewfile.lock.json +27 -22
  35. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +38 -7
  36. data/frameit/lib/frameit/editor.rb +16 -18
  37. data/frameit/lib/frameit/trim_box.rb +6 -0
  38. data/gym/lib/gym/generators/build_command_generator.rb +1 -1
  39. data/gym/lib/gym/options.rb +6 -0
  40. data/match/lib/match/nuke.rb +79 -1
  41. data/match/lib/match/spaceship_ensure.rb +1 -0
  42. data/pem/lib/pem/manager.rb +31 -7
  43. data/pem/lib/pem/options.rb +10 -1
  44. data/pilot/lib/pilot/build_manager.rb +1 -1
  45. data/scan/lib/scan/runner.rb +1 -1
  46. data/screengrab/lib/screengrab/options.rb +2 -2
  47. data/sigh/lib/assets/resign.sh +8 -5
  48. data/snapshot/lib/snapshot/reports_generator.rb +8 -0
  49. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -2
  50. data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +59 -0
  51. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +3 -0
  52. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
  53. data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
  54. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  55. data/supply/lib/supply/client.rb +3 -3
  56. data/supply/lib/supply/uploader.rb +1 -1
  57. metadata +38 -32
@@ -5,6 +5,7 @@ module Fastlane
5
5
  def self.run(params)
6
6
  package_path = params[:package]
7
7
  bundle_id = params[:bundle_id]
8
+ skip_stapling = params[:skip_stapling]
8
9
  try_early_stapling = params[:try_early_stapling]
9
10
  print_log = params[:print_log]
10
11
  verbose = params[:verbose]
@@ -38,13 +39,13 @@ module Fastlane
38
39
  UI.user_error!('Could not read bundle identifier, provide as a parameter') unless bundle_id
39
40
 
40
41
  if use_notarytool
41
- notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
42
+ notarytool(params, package_path, bundle_id, skip_stapling, print_log, verbose, api_key, compressed_package_path)
42
43
  else
43
- altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
44
+ altool(params, package_path, bundle_id, try_early_stapling, skip_stapling, print_log, verbose, api_key, compressed_package_path)
44
45
  end
45
46
  end
46
47
 
47
- def self.notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
48
+ def self.notarytool(params, package_path, bundle_id, skip_stapling, print_log, verbose, api_key, compressed_package_path)
48
49
  temp_file = nil
49
50
 
50
51
  # Create authorization part of command with either API Key or Apple ID
@@ -89,10 +90,15 @@ module Fastlane
89
90
  submission_id = notarization_info["id"]
90
91
  UI.success("Successfully uploaded package to notarization service with request identifier #{submission_id}")
91
92
 
92
- UI.message('Stapling package')
93
- self.staple(package_path, verbose)
93
+ if skip_stapling
94
+ UI.success("Successfully notarized artifact")
95
+ else
96
+ UI.message('Stapling package')
94
97
 
95
- UI.success("Successfully notarized and stapled package")
98
+ self.staple(package_path, verbose)
99
+
100
+ UI.success("Successfully notarized and stapled package")
101
+ end
96
102
  when 'Invalid'
97
103
  UI.user_error!("Could not notarize package with message '#{notarization_info['statusSummary']}'")
98
104
  else
@@ -102,7 +108,7 @@ module Fastlane
102
108
  temp_file.delete if temp_file
103
109
  end
104
110
 
105
- def self.altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
111
+ def self.altool(params, package_path, bundle_id, try_early_stapling, skip_stapling, print_log, verbose, api_key, compressed_package_path)
106
112
  UI.message('Uploading package to notarization service, might take a while')
107
113
 
108
114
  notarization_upload_command = "xcrun altool --notarize-app -t osx -f \"#{compressed_package_path || package_path}\" --primary-bundle-id #{bundle_id} --output-format xml"
@@ -133,7 +139,7 @@ module Fastlane
133
139
  while notarization_info.empty? || (notarization_info['Status'] == 'in progress')
134
140
  if notarization_info.empty?
135
141
  UI.message('Waiting to query request status')
136
- elsif try_early_stapling
142
+ elsif try_early_stapling && !skip_stapling
137
143
  UI.message('Request in progress, trying early staple')
138
144
 
139
145
  begin
@@ -182,11 +188,15 @@ module Fastlane
182
188
 
183
189
  case notarization_info['Status']
184
190
  when 'success'
185
- UI.message('Stapling package')
191
+ if skip_stapling
192
+ UI.success("Successfully notarized artifact#{log_suffix}")
193
+ else
194
+ UI.message('Stapling package')
186
195
 
187
- self.staple(package_path, verbose)
196
+ self.staple(package_path, verbose)
188
197
 
189
- UI.success("Successfully notarized and stapled package#{log_suffix}")
198
+ UI.success("Successfully notarized and stapled package#{log_suffix}")
199
+ end
190
200
  when 'invalid'
191
201
  UI.user_error!("Could not notarize package with message '#{notarization_info['Status Message']}'#{log_suffix}")
192
202
  else
@@ -262,6 +272,14 @@ module Fastlane
262
272
  env_name: 'FL_NOTARIZE_TRY_EARLY_STAPLING',
263
273
  description: 'Whether to try early stapling while the notarization request is in progress',
264
274
  optional: true,
275
+ conflicting_options: [:skip_stapling],
276
+ default_value: false,
277
+ type: Boolean),
278
+ FastlaneCore::ConfigItem.new(key: :skip_stapling,
279
+ env_name: 'FL_NOTARIZE_SKIP_STAPLING',
280
+ description: 'Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives',
281
+ optional: true,
282
+ conflicting_options: [:try_early_stapling],
265
283
  default_value: false,
266
284
  type: Boolean),
267
285
  FastlaneCore::ConfigItem.new(key: :bundle_id,
@@ -19,11 +19,12 @@ module Fastlane
19
19
 
20
20
  payload = {
21
21
  'tag_name' => params[:tag_name],
22
- 'name' => params[:name],
23
- 'body' => params[:description],
24
22
  'draft' => !!params[:is_draft],
25
- 'prerelease' => !!params[:is_prerelease]
23
+ 'prerelease' => !!params[:is_prerelease],
24
+ 'generate_release_notes' => !!params[:is_generate_release_notes]
26
25
  }
26
+ payload['name'] = params[:name] if params[:name]
27
+ payload['body'] = params[:description] if params[:description]
27
28
  payload['target_commitish'] = params[:commitish] if params[:commitish]
28
29
 
29
30
  GithubApiAction.run(
@@ -48,8 +49,7 @@ module Fastlane
48
49
  UI.user_error!("You are not authorized to access #{repo_name}, please make sure you provided a valid API token (GITHUB_API_TOKEN)")
49
50
  end,
50
51
  '*' => proc do |result|
51
- UI.error("GitHub responded with #{result[:status]}:#{result[:body]}")
52
- return nil
52
+ UI.user_error!("GitHub responded with #{result[:status]}:#{result[:body]}")
53
53
  end
54
54
  }
55
55
  ) do |result|
@@ -221,6 +221,12 @@ module Fastlane
221
221
  optional: true,
222
222
  default_value: false,
223
223
  type: Boolean),
224
+ FastlaneCore::ConfigItem.new(key: :is_generate_release_notes,
225
+ env_name: "FL_SET_GITHUB_RELEASE_IS_GENERATE_RELEASE_NOTES",
226
+ description: "Whether the name and body of this release should be generated automatically",
227
+ optional: true,
228
+ default_value: false,
229
+ type: Boolean),
224
230
  FastlaneCore::ConfigItem.new(key: :upload_assets,
225
231
  env_name: "FL_SET_GITHUB_RELEASE_UPLOAD_ASSETS",
226
232
  description: "Path to assets to be uploaded with the release",
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.195.0'.freeze
2
+ VERSION = '2.198.1'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1
@@ -260,4 +260,4 @@ public extension DeliverfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.84]
263
+ // FastlaneRunnerAPIVersion [0.9.88]
@@ -1322,6 +1322,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1322
1322
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1323
1323
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1324
1324
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1325
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1325
1326
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1326
1327
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1327
1328
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1374,6 +1375,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1374
1375
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1375
1376
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1376
1377
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1378
+ xcodebuildCommand: String = "xcodebuild",
1377
1379
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1378
1380
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1379
1381
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1422,6 +1424,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1422
1424
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1423
1425
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1424
1426
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1427
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1425
1428
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1426
1429
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1427
1430
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1469,6 +1472,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1469
1472
  analyzeBuildTimeArg,
1470
1473
  xcprettyUtfArg,
1471
1474
  skipProfileDetectionArg,
1475
+ xcodebuildCommandArg,
1472
1476
  clonedSourcePackagesPathArg,
1473
1477
  skipPackageDependenciesResolutionArg,
1474
1478
  disablePackageAutomaticUpdatesArg,
@@ -1524,6 +1528,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1524
1528
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1525
1529
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1526
1530
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1531
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1527
1532
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1528
1533
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1529
1534
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1573,6 +1578,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1573
1578
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1574
1579
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1575
1580
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1581
+ xcodebuildCommand: String = "xcodebuild",
1576
1582
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1577
1583
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1578
1584
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1618,6 +1624,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1618
1624
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1619
1625
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1620
1626
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1627
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1621
1628
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1622
1629
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1623
1630
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1662,6 +1669,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1662
1669
  analyzeBuildTimeArg,
1663
1670
  xcprettyUtfArg,
1664
1671
  skipProfileDetectionArg,
1672
+ xcodebuildCommandArg,
1665
1673
  clonedSourcePackagesPathArg,
1666
1674
  skipPackageDependenciesResolutionArg,
1667
1675
  disablePackageAutomaticUpdatesArg,
@@ -1718,6 +1726,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1718
1726
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1719
1727
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1720
1728
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1729
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
1721
1730
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1722
1731
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1723
1732
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -1768,6 +1777,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1768
1777
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1769
1778
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1770
1779
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1780
+ xcodebuildCommand: String = "xcodebuild",
1771
1781
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1772
1782
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1773
1783
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1814,6 +1824,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1814
1824
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
1815
1825
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
1816
1826
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
1827
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
1817
1828
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1818
1829
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1819
1830
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -1859,6 +1870,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1859
1870
  analyzeBuildTimeArg,
1860
1871
  xcprettyUtfArg,
1861
1872
  skipProfileDetectionArg,
1873
+ xcodebuildCommandArg,
1862
1874
  clonedSourcePackagesPathArg,
1863
1875
  skipPackageDependenciesResolutionArg,
1864
1876
  disablePackageAutomaticUpdatesArg,
@@ -1982,10 +1994,10 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
1982
1994
  - endingLocale: **DEPRECATED!** Return the device to this locale after running tests
1983
1995
  - useAdbRoot: **DEPRECATED!** Restarts the adb daemon using `adb root` to allow access to screenshots directories on device. Use if getting 'Permission denied' errors
1984
1996
  - appApkPath: The path to the APK for the app under test
1985
- - testsApkPath: The path to the APK for the the tests bundle
1997
+ - testsApkPath: The path to the APK for the tests bundle
1986
1998
  - specificDevice: Use the device or emulator with the given serial number or qualifier
1987
1999
  - deviceType: Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear)
1988
- - exitOnTestFailure: Whether or not to exit Screengrab on test failure. Exiting on failure will not copy sceenshots to local machine nor open sceenshots summary
2000
+ - exitOnTestFailure: Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary
1989
2001
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1990
2002
  - useTimestampSuffix: Add timestamp suffix to screenshot filename
1991
2003
  - adbHost: Configure the host used by adb to connect, allows running on remote devices farm
@@ -4013,6 +4025,8 @@ public func downloadAppPrivacyDetailsFromAppStore(username: String,
4013
4025
  Download dSYM files from App Store Connect for Bitcode apps
4014
4026
 
4015
4027
  - parameters:
4028
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
4029
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
4016
4030
  - username: Your Apple ID Username for App Store Connect
4017
4031
  - appIdentifier: The bundle identifier of your app
4018
4032
  - teamId: The ID of your App Store Connect team if you're in multiple teams
@@ -4037,7 +4051,9 @@ public func downloadAppPrivacyDetailsFromAppStore(username: String,
4037
4051
  ```|
4038
4052
  >|
4039
4053
  */
4040
- public func downloadDsyms(username: String,
4054
+ public func downloadDsyms(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4055
+ apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
4056
+ username: String,
4041
4057
  appIdentifier: String,
4042
4058
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4043
4059
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -4050,6 +4066,8 @@ public func downloadDsyms(username: String,
4050
4066
  waitForDsymProcessing: OptionalConfigValue<Bool> = .fastlaneDefault(false),
4051
4067
  waitTimeout: Int = 300)
4052
4068
  {
4069
+ let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
4070
+ let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
4053
4071
  let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
4054
4072
  let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
4055
4073
  let teamIdArg = teamId.asRubyArgument(name: "team_id", type: nil)
@@ -4062,7 +4080,9 @@ public func downloadDsyms(username: String,
4062
4080
  let outputDirectoryArg = outputDirectory.asRubyArgument(name: "output_directory", type: nil)
4063
4081
  let waitForDsymProcessingArg = waitForDsymProcessing.asRubyArgument(name: "wait_for_dsym_processing", type: nil)
4064
4082
  let waitTimeoutArg = RubyCommand.Argument(name: "wait_timeout", value: waitTimeout, type: nil)
4065
- let array: [RubyCommand.Argument?] = [usernameArg,
4083
+ let array: [RubyCommand.Argument?] = [apiKeyPathArg,
4084
+ apiKeyArg,
4085
+ usernameArg,
4066
4086
  appIdentifierArg,
4067
4087
  teamIdArg,
4068
4088
  teamNameArg,
@@ -4985,6 +5005,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
4985
5005
  Ensure a valid push profile is active, creating a new one if needed (via _pem_)
4986
5006
 
4987
5007
  - parameters:
5008
+ - platform: Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos
4988
5009
  - development: Renew the development push certificate instead of the production one
4989
5010
  - websitePush: Create a Website Push certificate
4990
5011
  - generateP12: Generate a p12 file additionally to a PEM file
@@ -5012,7 +5033,8 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
5012
5033
  ```|
5013
5034
  >|
5014
5035
  */
5015
- public func getPushCertificate(development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5036
+ public func getPushCertificate(platform: String = "ios",
5037
+ development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5016
5038
  websitePush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5017
5039
  generateP12: OptionalConfigValue<Bool> = .fastlaneDefault(true),
5018
5040
  activeDaysLimit: Int = 30,
@@ -5022,11 +5044,12 @@ public func getPushCertificate(development: OptionalConfigValue<Bool> = .fastlan
5022
5044
  username: String,
5023
5045
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5024
5046
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5025
- p12Password: String,
5047
+ p12Password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5026
5048
  pemName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5027
5049
  outputPath: String = ".",
5028
5050
  newProfile: ((String) -> Void)? = nil)
5029
5051
  {
5052
+ let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
5030
5053
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
5031
5054
  let websitePushArg = websitePush.asRubyArgument(name: "website_push", type: nil)
5032
5055
  let generateP12Arg = generateP12.asRubyArgument(name: "generate_p12", type: nil)
@@ -5037,11 +5060,12 @@ public func getPushCertificate(development: OptionalConfigValue<Bool> = .fastlan
5037
5060
  let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
5038
5061
  let teamIdArg = teamId.asRubyArgument(name: "team_id", type: nil)
5039
5062
  let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
5040
- let p12PasswordArg = RubyCommand.Argument(name: "p12_password", value: p12Password, type: nil)
5063
+ let p12PasswordArg = p12Password.asRubyArgument(name: "p12_password", type: nil)
5041
5064
  let pemNameArg = pemName.asRubyArgument(name: "pem_name", type: nil)
5042
5065
  let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
5043
5066
  let newProfileArg = RubyCommand.Argument(name: "new_profile", value: newProfile, type: .stringClosure)
5044
- let array: [RubyCommand.Argument?] = [developmentArg,
5067
+ let array: [RubyCommand.Argument?] = [platformArg,
5068
+ developmentArg,
5045
5069
  websitePushArg,
5046
5070
  generateP12Arg,
5047
5071
  activeDaysLimitArg,
@@ -5070,7 +5094,7 @@ public func getPushCertificate(development: OptionalConfigValue<Bool> = .fastlan
5070
5094
  - target: Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one
5071
5095
  - configuration: Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected
5072
5096
 
5073
- This action will return the current version number set on your project.
5097
+ This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings.
5074
5098
  */
5075
5099
  @discardableResult public func getVersionNumber(xcodeproj: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5076
5100
  target: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -5513,6 +5537,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5513
5537
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
5514
5538
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
5515
5539
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
5540
+ - xcodebuildCommand: Allows for override of the default `xcodebuild` command
5516
5541
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
5517
5542
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
5518
5543
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
@@ -5565,6 +5590,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5565
5590
  analyzeBuildTime: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.analyzeBuildTime),
5566
5591
  xcprettyUtf: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.xcprettyUtf),
5567
5592
  skipProfileDetection: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipProfileDetection),
5593
+ xcodebuildCommand: String = gymfile.xcodebuildCommand,
5568
5594
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.clonedSourcePackagesPath),
5569
5595
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipPackageDependenciesResolution),
5570
5596
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.disablePackageAutomaticUpdates),
@@ -5613,6 +5639,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5613
5639
  let analyzeBuildTimeArg = analyzeBuildTime.asRubyArgument(name: "analyze_build_time", type: nil)
5614
5640
  let xcprettyUtfArg = xcprettyUtf.asRubyArgument(name: "xcpretty_utf", type: nil)
5615
5641
  let skipProfileDetectionArg = skipProfileDetection.asRubyArgument(name: "skip_profile_detection", type: nil)
5642
+ let xcodebuildCommandArg = RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand, type: nil)
5616
5643
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
5617
5644
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
5618
5645
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
@@ -5660,6 +5687,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5660
5687
  analyzeBuildTimeArg,
5661
5688
  xcprettyUtfArg,
5662
5689
  skipProfileDetectionArg,
5690
+ xcodebuildCommandArg,
5663
5691
  clonedSourcePackagesPathArg,
5664
5692
  skipPackageDependenciesResolutionArg,
5665
5693
  disablePackageAutomaticUpdatesArg,
@@ -7090,6 +7118,7 @@ public func nexusUpload(file: String,
7090
7118
  - package: Path to package to notarize, e.g. .app bundle or disk image
7091
7119
  - useNotarytool: Whether to `xcrun notarytool` or `xcrun altool`
7092
7120
  - tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
7121
+ - skipStapling: Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives
7093
7122
  - bundleId: Bundle identifier to uniquely identify the package
7094
7123
  - username: Apple ID username
7095
7124
  - ascProvider: Provider short name for accounts associated with multiple providers
@@ -7101,6 +7130,7 @@ public func nexusUpload(file: String,
7101
7130
  public func notarize(package: String,
7102
7131
  useNotarytool: OptionalConfigValue<Bool> = .fastlaneDefault(true),
7103
7132
  tryEarlyStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7133
+ skipStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7104
7134
  bundleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7105
7135
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7106
7136
  ascProvider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -7112,6 +7142,7 @@ public func notarize(package: String,
7112
7142
  let packageArg = RubyCommand.Argument(name: "package", value: package, type: nil)
7113
7143
  let useNotarytoolArg = useNotarytool.asRubyArgument(name: "use_notarytool", type: nil)
7114
7144
  let tryEarlyStaplingArg = tryEarlyStapling.asRubyArgument(name: "try_early_stapling", type: nil)
7145
+ let skipStaplingArg = skipStapling.asRubyArgument(name: "skip_stapling", type: nil)
7115
7146
  let bundleIdArg = bundleId.asRubyArgument(name: "bundle_id", type: nil)
7116
7147
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
7117
7148
  let ascProviderArg = ascProvider.asRubyArgument(name: "asc_provider", type: nil)
@@ -7122,6 +7153,7 @@ public func notarize(package: String,
7122
7153
  let array: [RubyCommand.Argument?] = [packageArg,
7123
7154
  useNotarytoolArg,
7124
7155
  tryEarlyStaplingArg,
7156
+ skipStaplingArg,
7125
7157
  bundleIdArg,
7126
7158
  usernameArg,
7127
7159
  ascProviderArg,
@@ -7383,6 +7415,7 @@ public func optOutUsage() {
7383
7415
  Alias for the `get_push_certificate` action
7384
7416
 
7385
7417
  - parameters:
7418
+ - platform: Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos
7386
7419
  - development: Renew the development push certificate instead of the production one
7387
7420
  - websitePush: Create a Website Push certificate
7388
7421
  - generateP12: Generate a p12 file additionally to a PEM file
@@ -7410,7 +7443,8 @@ public func optOutUsage() {
7410
7443
  ```|
7411
7444
  >|
7412
7445
  */
7413
- public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7446
+ public func pem(platform: String = "ios",
7447
+ development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7414
7448
  websitePush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7415
7449
  generateP12: OptionalConfigValue<Bool> = .fastlaneDefault(true),
7416
7450
  activeDaysLimit: Int = 30,
@@ -7420,11 +7454,12 @@ public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false)
7420
7454
  username: String,
7421
7455
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7422
7456
  teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7423
- p12Password: String,
7457
+ p12Password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7424
7458
  pemName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7425
7459
  outputPath: String = ".",
7426
7460
  newProfile: ((String) -> Void)? = nil)
7427
7461
  {
7462
+ let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
7428
7463
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
7429
7464
  let websitePushArg = websitePush.asRubyArgument(name: "website_push", type: nil)
7430
7465
  let generateP12Arg = generateP12.asRubyArgument(name: "generate_p12", type: nil)
@@ -7435,11 +7470,12 @@ public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false)
7435
7470
  let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil)
7436
7471
  let teamIdArg = teamId.asRubyArgument(name: "team_id", type: nil)
7437
7472
  let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
7438
- let p12PasswordArg = RubyCommand.Argument(name: "p12_password", value: p12Password, type: nil)
7473
+ let p12PasswordArg = p12Password.asRubyArgument(name: "p12_password", type: nil)
7439
7474
  let pemNameArg = pemName.asRubyArgument(name: "pem_name", type: nil)
7440
7475
  let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
7441
7476
  let newProfileArg = RubyCommand.Argument(name: "new_profile", value: newProfile, type: .stringClosure)
7442
- let array: [RubyCommand.Argument?] = [developmentArg,
7477
+ let array: [RubyCommand.Argument?] = [platformArg,
7478
+ developmentArg,
7443
7479
  websitePushArg,
7444
7480
  generateP12Arg,
7445
7481
  activeDaysLimitArg,
@@ -9256,10 +9292,10 @@ public func scp(username: String,
9256
9292
  - endingLocale: **DEPRECATED!** Return the device to this locale after running tests
9257
9293
  - useAdbRoot: **DEPRECATED!** Restarts the adb daemon using `adb root` to allow access to screenshots directories on device. Use if getting 'Permission denied' errors
9258
9294
  - appApkPath: The path to the APK for the app under test
9259
- - testsApkPath: The path to the APK for the the tests bundle
9295
+ - testsApkPath: The path to the APK for the tests bundle
9260
9296
  - specificDevice: Use the device or emulator with the given serial number or qualifier
9261
9297
  - deviceType: Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear)
9262
- - exitOnTestFailure: Whether or not to exit Screengrab on test failure. Exiting on failure will not copy sceenshots to local machine nor open sceenshots summary
9298
+ - exitOnTestFailure: Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary
9263
9299
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
9264
9300
  - useTimestampSuffix: Add timestamp suffix to screenshot filename
9265
9301
  - adbHost: Configure the host used by adb to connect, allows running on remote devices farm
@@ -9430,6 +9466,7 @@ public func setChangelog(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDef
9430
9466
  - description: Description of this release
9431
9467
  - isDraft: Whether the release should be marked as draft
9432
9468
  - isPrerelease: Whether the release should be marked as prerelease
9469
+ - isGenerateReleaseNotes: Whether the name and body of this release should be generated automatically
9433
9470
  - uploadAssets: Path to assets to be uploaded with the release
9434
9471
 
9435
9472
  - returns: A hash containing all relevant information of this release
@@ -9449,6 +9486,7 @@ public func setChangelog(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDef
9449
9486
  description: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9450
9487
  isDraft: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9451
9488
  isPrerelease: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9489
+ isGenerateReleaseNotes: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9452
9490
  uploadAssets: OptionalConfigValue<[String]?> = .fastlaneDefault(nil)) -> [String: Any]
9453
9491
  {
9454
9492
  let repositoryNameArg = RubyCommand.Argument(name: "repository_name", value: repositoryName, type: nil)
@@ -9461,6 +9499,7 @@ public func setChangelog(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDef
9461
9499
  let descriptionArg = description.asRubyArgument(name: "description", type: nil)
9462
9500
  let isDraftArg = isDraft.asRubyArgument(name: "is_draft", type: nil)
9463
9501
  let isPrereleaseArg = isPrerelease.asRubyArgument(name: "is_prerelease", type: nil)
9502
+ let isGenerateReleaseNotesArg = isGenerateReleaseNotes.asRubyArgument(name: "is_generate_release_notes", type: nil)
9464
9503
  let uploadAssetsArg = uploadAssets.asRubyArgument(name: "upload_assets", type: nil)
9465
9504
  let array: [RubyCommand.Argument?] = [repositoryNameArg,
9466
9505
  serverUrlArg,
@@ -9472,6 +9511,7 @@ public func setChangelog(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDef
9472
9511
  descriptionArg,
9473
9512
  isDraftArg,
9474
9513
  isPrereleaseArg,
9514
+ isGenerateReleaseNotesArg,
9475
9515
  uploadAssetsArg]
9476
9516
  let args: [RubyCommand.Argument] = array
9477
9517
  .filter { $0?.value != nil }
@@ -13040,7 +13080,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13040
13080
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13041
13081
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13042
13082
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13043
- ideFoundationPath: String = "/Applications/Xcode-13.Release.Candidate.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13083
+ ideFoundationPath: String = "/Applications/Xcode-13.1.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13044
13084
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13045
13085
  {
13046
13086
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13242,4 +13282,4 @@ public let snapshotfile = Snapshotfile()
13242
13282
 
13243
13283
  // Please don't remove the lines below
13244
13284
  // They are used to detect outdated files
13245
- // FastlaneRunnerAPIVersion [0.9.137]
13285
+ // FastlaneRunnerAPIVersion [0.9.141]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1
@@ -131,6 +131,9 @@ public protocol GymfileProtocol: class {
131
131
  /// Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
132
132
  var skipProfileDetection: Bool { get }
133
133
 
134
+ /// Allows for override of the default `xcodebuild` command
135
+ var xcodebuildCommand: String { get }
136
+
134
137
  /// Sets a custom path for Swift Package Manager dependencies
135
138
  var clonedSourcePackagesPath: String? { get }
136
139
 
@@ -188,6 +191,7 @@ public extension GymfileProtocol {
188
191
  var analyzeBuildTime: Bool? { return nil }
189
192
  var xcprettyUtf: Bool? { return nil }
190
193
  var skipProfileDetection: Bool { return false }
194
+ var xcodebuildCommand: String { return "xcodebuild" }
191
195
  var clonedSourcePackagesPath: String? { return nil }
192
196
  var skipPackageDependenciesResolution: Bool { return false }
193
197
  var disablePackageAutomaticUpdates: Bool { return false }
@@ -196,4 +200,4 @@ public extension GymfileProtocol {
196
200
 
197
201
  // Please don't remove the lines below
198
202
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.87]
203
+ // FastlaneRunnerAPIVersion [0.9.91]
@@ -99,7 +99,7 @@ open class LaneFile: NSObject, LaneFileProtocol {
99
99
  #if !SWIFT_PACKAGE
100
100
  // When not in SPM environment, we load the Fastfile from its `className()`.
101
101
  loadFastfile()
102
- guard let fastfileInstance = self.fastfileInstance as? Fastfile else {
102
+ guard let fastfileInstance = fastfileInstance as? Fastfile else {
103
103
  let message = "Unable to instantiate class named: \(className())"
104
104
  log(message: message)
105
105
  fatalError(message)
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1
@@ -192,4 +192,4 @@ public extension MatchfileProtocol {
192
192
 
193
193
  // Please don't remove the lines below
194
194
  // They are used to detect outdated files
195
- // FastlaneRunnerAPIVersion [0.9.81]
195
+ // FastlaneRunnerAPIVersion [0.9.85]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.80]
55
+ // FastlaneRunnerAPIVersion [0.9.84]
@@ -132,7 +132,7 @@ extension Runner {
132
132
  }
133
133
 
134
134
  @objc func startSocketComs() {
135
- guard let socketClient = self.socketClient else {
135
+ guard let socketClient = socketClient else {
136
136
  return
137
137
  }
138
138
 
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1
@@ -296,4 +296,4 @@ public extension ScanfileProtocol {
296
296
 
297
297
  // Please don't remove the lines below
298
298
  // They are used to detect outdated files
299
- // FastlaneRunnerAPIVersion [0.9.92]
299
+ // FastlaneRunnerAPIVersion [0.9.96]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.195.0
20
+ // Generated with fastlane 2.198.1