fastlane 2.165.0 → 2.170.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -76
  3. data/cert/lib/cert/options.rb +3 -3
  4. data/cert/lib/cert/runner.rb +1 -1
  5. data/deliver/lib/deliver/app_screenshot.rb +6 -2
  6. data/deliver/lib/deliver/loader.rb +136 -18
  7. data/deliver/lib/deliver/upload_metadata.rb +4 -10
  8. data/deliver/lib/deliver/upload_screenshots.rb +1 -64
  9. data/fastlane/lib/fastlane/actions/actions_helper.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/add_git_tag.rb +9 -2
  11. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +4 -0
  13. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  14. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
  15. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -0
  16. data/fastlane/lib/fastlane/actions/onesignal.rb +13 -3
  17. data/fastlane/lib/fastlane/actions/slather.rb +2 -2
  18. data/fastlane/lib/fastlane/actions/spm.rb +6 -0
  19. data/fastlane/lib/fastlane/actions/update_fastlane.rb +29 -8
  20. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +289 -0
  21. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +3 -3
  22. data/fastlane/lib/fastlane/actions/xcode_install.rb +8 -5
  23. data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
  24. data/fastlane/lib/fastlane/features.rb +1 -1
  25. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -1
  26. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -0
  27. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  28. data/fastlane/lib/fastlane/version.rb +1 -1
  29. data/fastlane/swift/Deliverfile.swift +1 -1
  30. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  31. data/fastlane/swift/Fastfile.swift +1 -1
  32. data/fastlane/swift/Fastlane.swift +97 -26
  33. data/fastlane/swift/Gymfile.swift +1 -1
  34. data/fastlane/swift/GymfileProtocol.swift +5 -1
  35. data/fastlane/swift/LaneFileProtocol.swift +2 -2
  36. data/fastlane/swift/MainProcess.swift +2 -0
  37. data/fastlane/swift/Matchfile.swift +1 -1
  38. data/fastlane/swift/MatchfileProtocol.swift +3 -3
  39. data/fastlane/swift/Precheckfile.swift +1 -1
  40. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  41. data/fastlane/swift/Runner.swift +1 -1
  42. data/fastlane/swift/Scanfile.swift +1 -1
  43. data/fastlane/swift/ScanfileProtocol.swift +9 -1
  44. data/fastlane/swift/Screengrabfile.swift +1 -1
  45. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  46. data/fastlane/swift/Snapshotfile.swift +1 -1
  47. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  48. data/fastlane/swift/SocketClient.swift +1 -1
  49. data/fastlane_core/lib/fastlane_core/cert_checker.rb +12 -7
  50. data/fastlane_core/lib/fastlane_core/helper.rb +10 -2
  51. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -3
  52. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +3 -1
  53. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +8 -0
  54. data/gym/lib/gym/code_signing_mapping.rb +1 -1
  55. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  56. data/gym/lib/gym/options.rb +7 -1
  57. data/match/lib/match/module.rb +1 -1
  58. data/match/lib/match/nuke.rb +9 -5
  59. data/match/lib/match/options.rb +1 -1
  60. data/match/lib/match/runner.rb +1 -1
  61. data/pilot/lib/pilot/build_manager.rb +9 -3
  62. data/scan/lib/scan/detect_values.rb +3 -1
  63. data/scan/lib/scan/module.rb +4 -0
  64. data/scan/lib/scan/options.rb +16 -1
  65. data/scan/lib/scan/runner.rb +2 -2
  66. data/scan/lib/scan/test_command_generator.rb +1 -0
  67. data/snapshot/lib/assets/SnapshotHelper.swift +5 -1
  68. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  69. data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -1
  70. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +1 -1
  71. data/spaceship/lib/spaceship/client.rb +14 -0
  72. data/spaceship/lib/spaceship/connect_api.rb +6 -0
  73. data/spaceship/lib/spaceship/connect_api/models/.app_data_usage_data_protection.rb.swp +0 -0
  74. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +3 -2
  75. data/spaceship/lib/spaceship/connect_api/models/app.rb +88 -54
  76. data/spaceship/lib/spaceship/connect_api/models/app_data_usage.rb +59 -0
  77. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb +65 -0
  78. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_data_protection.rb +27 -0
  79. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_grouping.rb +18 -0
  80. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_purposes.rb +37 -0
  81. data/spaceship/lib/spaceship/connect_api/models/app_data_usages_publish_state.rb +36 -0
  82. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +16 -10
  83. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +8 -4
  84. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +15 -11
  85. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +13 -9
  86. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +9 -7
  87. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +15 -11
  88. data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +7 -5
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +6 -4
  90. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +55 -36
  91. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +21 -14
  92. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +3 -2
  93. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +3 -2
  94. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +6 -4
  95. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +12 -2
  96. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +12 -8
  97. data/spaceship/lib/spaceship/connect_api/models/build.rb +24 -16
  98. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +3 -2
  99. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +9 -6
  100. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +6 -4
  101. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +12 -8
  102. data/spaceship/lib/spaceship/connect_api/models/device.rb +10 -4
  103. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +6 -4
  104. data/spaceship/lib/spaceship/connect_api/models/profile.rb +12 -8
  105. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +3 -2
  106. data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +9 -6
  107. data/spaceship/lib/spaceship/connect_api/models/territory.rb +3 -2
  108. data/spaceship/lib/spaceship/connect_api/models/user.rb +6 -4
  109. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +9 -6
  110. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
  111. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +103 -0
  112. data/spaceship/lib/spaceship/errors.rb +19 -0
  113. data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
  114. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  115. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +18 -6
  116. data/supply/lib/supply.rb +1 -1
  117. data/supply/lib/supply/options.rb +1 -1
  118. data/supply/lib/supply/uploader.rb +3 -2
  119. metadata +26 -18
@@ -9,9 +9,9 @@ module Fastlane
9
9
 
10
10
  begin
11
11
  config.load_configuration_file("Deliverfile")
12
- config[:screenshots_path] = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
13
- config[:ipa] = Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
14
- config[:pkg] = Actions.lane_context[SharedValues::PKG_OUTPUT_PATH] if Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
12
+ config[:screenshots_path] ||= Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
13
+ config[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
14
+ config[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH] if Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
15
15
  config[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
16
16
 
17
17
  return config if Helper.test?
@@ -17,7 +17,7 @@ module Fastlane
17
17
  if installer.installed?(params[:version])
18
18
  UI.success("Xcode #{params[:version]} is already installed ✨")
19
19
  else
20
- installer.install_version(params[:version], true, true, true, true)
20
+ installer.install_version(params[:version], true, true, true, true, nil, true, nil, params[:download_retry_attempts])
21
21
  end
22
22
 
23
23
  xcode = installer.installed_versions.find { |x| x.version == params[:version] }
@@ -49,9 +49,7 @@ module Fastlane
49
49
  [
50
50
  FastlaneCore::ConfigItem.new(key: :version,
51
51
  env_name: "FL_XCODE_VERSION",
52
- description: "The version number of the version of Xcode to install",
53
- verify_block: proc do |value|
54
- end),
52
+ description: "The version number of the version of Xcode to install"),
55
53
  FastlaneCore::ConfigItem.new(key: :username,
56
54
  short_option: "-u",
57
55
  env_name: "XCODE_INSTALL_USER",
@@ -65,7 +63,12 @@ module Fastlane
65
63
  optional: true,
66
64
  code_gen_sensitive: true,
67
65
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
68
- default_value_dynamic: true)
66
+ default_value_dynamic: true),
67
+ FastlaneCore::ConfigItem.new(key: :download_retry_attempts,
68
+ env_name: "XCODE_INSTALL_DOWNLOAD_RETRY_ATTEMPTS",
69
+ description: "Number of times the download will be retried in case of failure",
70
+ type: Integer,
71
+ default_value: 3)
69
72
  ]
70
73
  end
71
74
 
@@ -123,9 +123,9 @@ module Fastlane
123
123
  end
124
124
 
125
125
  # Since loading dotenv should respect additional environments passed using
126
- # --env, we must extrat the arguments out of ARGV and process them before
126
+ # --env, we must extract the arguments out of ARGV and process them before
127
127
  # calling into commander. This is required since the ENV must be configured
128
- # before running any other commands in order to correclty respect variables
128
+ # before running any other commands in order to correctly respect variables
129
129
  # like FASTLANE_HIDE_CHANGELOG and FASTLANE_DISABLE_COLORS
130
130
  def load_dot_env
131
131
  env_cl_param = lambda do
@@ -1,4 +1,4 @@
1
- # Use this file as the place to register Feature switches for the fastlan_core project
1
+ # Use this file as the place to register Feature switches for the fastlane_core project
2
2
 
3
3
  # FastlaneCore::Feature.register(env_var: 'YOUR_FEATURE_SWITCH_ENV_VAR',
4
4
  # description: 'Describe what this feature switch controls')
@@ -41,6 +41,7 @@ Require/MissingRequireStatement:
41
41
  - "**/spec/**/*.rb"
42
42
  - "**/spec_helper.rb"
43
43
  - spaceship/lib/spaceship/babosa_fix.rb
44
+ - fastlane_core/lib/fastlane_core/ui/disable_colors.rb
44
45
  - "**/Fastfile"
45
46
  - "**/*.gemspec"
46
47
  - rakelib/**/*
@@ -121,7 +122,7 @@ Layout/SpaceAroundOperators:
121
122
  Exclude:
122
123
  - "**/spec/actions_specs/xcodebuild_spec.rb"
123
124
  AllCops:
124
- TargetRubyVersion: 2.0
125
+ TargetRubyVersion: 2.4
125
126
  Include:
126
127
  - "*/lib/assets/*Template"
127
128
  - "*/lib/assets/*TemplateAndroid"
@@ -79,6 +79,7 @@ module Fastlane
79
79
  available_external_actions = Fastlane.external_actions || []
80
80
  available_actions = []
81
81
  ActionsList.all_actions do |action|
82
+ next unless action.respond_to?(:action_name)
82
83
  available_actions << action.action_name unless available_external_actions.include?(action)
83
84
  end
84
85
 
@@ -108,6 +109,7 @@ module Fastlane
108
109
  # Excludes all actions that aren't pluign actions (including external actions)
109
110
  available_actions = []
110
111
  ActionsList.all_actions do |action|
112
+ next unless action.respond_to?(:action_name)
111
113
  available_actions << action.action_name unless available_plugins.include?(action)
112
114
  end
113
115
 
@@ -151,6 +153,7 @@ module Fastlane
151
153
 
152
154
  tool_details = []
153
155
  ActionsList.all_actions do |action|
156
+ next unless action.respond_to?(:action_name)
154
157
  next if self.actions_not_supported.include?(action.action_name)
155
158
 
156
159
  swift_function = process_action(action: action)
@@ -136,7 +136,7 @@ module Fastlane
136
136
  type = "[String]"
137
137
  elsif default_value.kind_of?(Hash)
138
138
  type = "[String : Any]"
139
- # Altough we can have a default value of Integer type, if param_type_override overridden that value, respect it.
139
+ # Although we can have a default value of Integer type, if param_type_override overridden that value, respect it.
140
140
  elsif default_value.kind_of?(Integer)
141
141
  if type == "Double" || type == "Float"
142
142
  begin
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.165.0'.freeze
2
+ VERSION = '2.170.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
@@ -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.165.0
20
+ // Generated with fastlane 2.170.0
@@ -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.48]
259
+ // FastlaneRunnerAPIVersion [0.9.53]
@@ -5,7 +5,7 @@
5
5
 
6
6
  import Foundation
7
7
 
8
- open class Fastfile: LaneFile {
8
+ open class Fastfile: LaneFile {
9
9
  override public init() {
10
10
  super.init()
11
11
  }
@@ -76,7 +76,7 @@ public func addGitTag(tag: String? = nil,
76
76
  grouping: String = "builds",
77
77
  prefix: String = "",
78
78
  postfix: String = "",
79
- buildNumber: Any,
79
+ buildNumber: Any? = nil,
80
80
  message: String? = nil,
81
81
  commit: String? = nil,
82
82
  force: Bool = false,
@@ -981,6 +981,7 @@ public func buildAndroidApp(task: String? = nil,
981
981
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
982
982
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
983
983
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
984
+ - useSystemScm: Lets xcodebuild use system's scm configuration
984
985
 
985
986
  - returns: The absolute path to the generated ipa file
986
987
 
@@ -1029,7 +1030,8 @@ public func buildApp(workspace: String? = nil,
1029
1030
  analyzeBuildTime: Bool? = nil,
1030
1031
  xcprettyUtf: Bool? = nil,
1031
1032
  skipProfileDetection: Bool = false,
1032
- clonedSourcePackagesPath: String? = nil)
1033
+ clonedSourcePackagesPath: String? = nil,
1034
+ useSystemScm: Bool = false)
1033
1035
  {
1034
1036
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1035
1037
  RubyCommand.Argument(name: "project", value: project),
@@ -1074,7 +1076,8 @@ public func buildApp(workspace: String? = nil,
1074
1076
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1075
1077
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1076
1078
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1077
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1079
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1080
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1078
1081
  _ = runner.executeCommand(command)
1079
1082
  }
1080
1083
 
@@ -1123,6 +1126,7 @@ public func buildApp(workspace: String? = nil,
1123
1126
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1124
1127
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1125
1128
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1129
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1126
1130
 
1127
1131
  - returns: The absolute path to the generated ipa file
1128
1132
 
@@ -1168,7 +1172,8 @@ public func buildIosApp(workspace: String? = nil,
1168
1172
  analyzeBuildTime: Bool? = nil,
1169
1173
  xcprettyUtf: Bool? = nil,
1170
1174
  skipProfileDetection: Bool = false,
1171
- clonedSourcePackagesPath: String? = nil)
1175
+ clonedSourcePackagesPath: String? = nil,
1176
+ useSystemScm: Bool = false)
1172
1177
  {
1173
1178
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1174
1179
  RubyCommand.Argument(name: "project", value: project),
@@ -1210,7 +1215,8 @@ public func buildIosApp(workspace: String? = nil,
1210
1215
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1211
1216
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1212
1217
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1213
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1218
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1219
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1214
1220
  _ = runner.executeCommand(command)
1215
1221
  }
1216
1222
 
@@ -1260,6 +1266,7 @@ public func buildIosApp(workspace: String? = nil,
1260
1266
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1261
1267
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1262
1268
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1269
+ - useSystemScm: Lets xcodebuild use system's scm configuration
1263
1270
 
1264
1271
  - returns: The absolute path to the generated ipa file
1265
1272
 
@@ -1306,7 +1313,8 @@ public func buildMacApp(workspace: String? = nil,
1306
1313
  analyzeBuildTime: Bool? = nil,
1307
1314
  xcprettyUtf: Bool? = nil,
1308
1315
  skipProfileDetection: Bool = false,
1309
- clonedSourcePackagesPath: String? = nil)
1316
+ clonedSourcePackagesPath: String? = nil,
1317
+ useSystemScm: Bool = false)
1310
1318
  {
1311
1319
  let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1312
1320
  RubyCommand.Argument(name: "project", value: project),
@@ -1349,7 +1357,8 @@ public func buildMacApp(workspace: String? = nil,
1349
1357
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1350
1358
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1351
1359
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1352
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1360
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
1361
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
1353
1362
  _ = runner.executeCommand(command)
1354
1363
  }
1355
1364
 
@@ -1861,9 +1870,9 @@ public func carthage(command: String = "bootstrap",
1861
1870
  - filename: The filename of certificate to store
1862
1871
  - outputPath: The path to a directory in which all certificates and private keys should be stored
1863
1872
  - keychainPath: Path to a custom keychain
1864
- - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
1873
+ - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
1865
1874
  - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
1866
- - platform: Set the provisioning profile's platform (ios, macos)
1875
+ - platform: Set the provisioning profile's platform (ios, macos, tvos)
1867
1876
 
1868
1877
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
1869
1878
  Use this action to download the latest code signing identity.
@@ -3349,9 +3358,9 @@ public func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
3349
3358
  - filename: The filename of certificate to store
3350
3359
  - outputPath: The path to a directory in which all certificates and private keys should be stored
3351
3360
  - keychainPath: Path to a custom keychain
3352
- - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
3361
+ - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
3353
3362
  - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
3354
- - platform: Set the provisioning profile's platform (ios, macos)
3363
+ - platform: Set the provisioning profile's platform (ios, macos, tvos)
3355
3364
 
3356
3365
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
3357
3366
  Use this action to download the latest code signing identity.
@@ -3992,6 +4001,7 @@ public func gradle(task: String? = nil,
3992
4001
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
3993
4002
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
3994
4003
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
4004
+ - useSystemScm: Lets xcodebuild use system's scm configuration
3995
4005
 
3996
4006
  - returns: The absolute path to the generated ipa file
3997
4007
 
@@ -4040,7 +4050,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4040
4050
  analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
4041
4051
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
4042
4052
  skipProfileDetection: Bool = gymfile.skipProfileDetection,
4043
- clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath)
4053
+ clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath,
4054
+ useSystemScm: Bool = gymfile.useSystemScm)
4044
4055
  {
4045
4056
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
4046
4057
  RubyCommand.Argument(name: "project", value: project),
@@ -4085,7 +4096,8 @@ public func gym(workspace: Any? = gymfile.workspace,
4085
4096
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
4086
4097
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
4087
4098
  RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
4088
- RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
4099
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
4100
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm)])
4089
4101
  _ = runner.executeCommand(command)
4090
4102
  }
4091
4103
 
@@ -4743,7 +4755,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4743
4755
  Alias for the `sync_code_signing` action
4744
4756
 
4745
4757
  - parameters:
4746
- - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
4758
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
4747
4759
  - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
4748
4760
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
4749
4761
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
@@ -4773,7 +4785,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4773
4785
  - s3Bucket: Name of the S3 bucket
4774
4786
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
4775
4787
  - keychainName: Keychain the items should be imported to
4776
- - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
4788
+ - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
4777
4789
  - force: Renew the provisioning profiles every time you run match
4778
4790
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
4779
4791
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
@@ -5147,6 +5159,7 @@ public func oclint(oclintPath: String = "oclint",
5147
5159
  - apnsP12: APNS P12 File (in .p12 format)
5148
5160
  - apnsP12Password: APNS P12 password
5149
5161
  - apnsEnv: APNS environment
5162
+ - organizationId: OneSignal Organization ID
5150
5163
 
5151
5164
  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.
5152
5165
  */
@@ -5157,7 +5170,8 @@ public func onesignal(appId: String? = nil,
5157
5170
  androidGcmSenderId: String? = nil,
5158
5171
  apnsP12: String? = nil,
5159
5172
  apnsP12Password: String? = nil,
5160
- apnsEnv: String = "production")
5173
+ apnsEnv: String = "production",
5174
+ organizationId: String? = nil)
5161
5175
  {
5162
5176
  let command = RubyCommand(commandID: "", methodName: "onesignal", className: nil, args: [RubyCommand.Argument(name: "app_id", value: appId),
5163
5177
  RubyCommand.Argument(name: "auth_token", value: authToken),
@@ -5166,7 +5180,8 @@ public func onesignal(appId: String? = nil,
5166
5180
  RubyCommand.Argument(name: "android_gcm_sender_id", value: androidGcmSenderId),
5167
5181
  RubyCommand.Argument(name: "apns_p12", value: apnsP12),
5168
5182
  RubyCommand.Argument(name: "apns_p12_password", value: apnsP12Password),
5169
- RubyCommand.Argument(name: "apns_env", value: apnsEnv)])
5183
+ RubyCommand.Argument(name: "apns_env", value: apnsEnv),
5184
+ RubyCommand.Argument(name: "organization_id", value: organizationId)])
5170
5185
  _ = runner.executeCommand(command)
5171
5186
  }
5172
5187
 
@@ -6077,9 +6092,11 @@ public func rubyVersion() {
6077
6092
  - skipSlack: Don't publish to slack, even when an URL is given
6078
6093
  - slackOnlyOnFailure: Only post on Slack if the tests fail
6079
6094
  - destination: Use only if you're a pro, use the other options instead
6095
+ - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
6080
6096
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6081
6097
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6082
6098
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6099
+ - useSystemScm: Lets xcodebuild use system's scm configuration
6083
6100
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6084
6101
 
6085
6102
  More information: https://docs.fastlane.tools/actions/scan/
@@ -6143,9 +6160,11 @@ public func runTests(workspace: String? = nil,
6143
6160
  skipSlack: Bool = false,
6144
6161
  slackOnlyOnFailure: Bool = false,
6145
6162
  destination: Any? = nil,
6163
+ catalystPlatform: String? = nil,
6146
6164
  customReportFileName: String? = nil,
6147
6165
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
6148
6166
  clonedSourcePackagesPath: String? = nil,
6167
+ useSystemScm: Bool = false,
6149
6168
  failBuild: Bool = true)
6150
6169
  {
6151
6170
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -6207,9 +6226,11 @@ public func runTests(workspace: String? = nil,
6207
6226
  RubyCommand.Argument(name: "skip_slack", value: skipSlack),
6208
6227
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
6209
6228
  RubyCommand.Argument(name: "destination", value: destination),
6229
+ RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
6210
6230
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6211
6231
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6212
6232
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6233
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6213
6234
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6214
6235
  _ = runner.executeCommand(command)
6215
6236
  }
@@ -6353,9 +6374,11 @@ public func say(text: Any,
6353
6374
  - skipSlack: Don't publish to slack, even when an URL is given
6354
6375
  - slackOnlyOnFailure: Only post on Slack if the tests fail
6355
6376
  - destination: Use only if you're a pro, use the other options instead
6377
+ - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
6356
6378
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
6357
6379
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
6358
6380
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6381
+ - useSystemScm: Lets xcodebuild use system's scm configuration
6359
6382
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
6360
6383
 
6361
6384
  More information: https://docs.fastlane.tools/actions/scan/
@@ -6419,9 +6442,11 @@ public func scan(workspace: Any? = scanfile.workspace,
6419
6442
  skipSlack: Bool = scanfile.skipSlack,
6420
6443
  slackOnlyOnFailure: Bool = scanfile.slackOnlyOnFailure,
6421
6444
  destination: Any? = scanfile.destination,
6445
+ catalystPlatform: Any? = scanfile.catalystPlatform,
6422
6446
  customReportFileName: Any? = scanfile.customReportFileName,
6423
6447
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6424
6448
  clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
6449
+ useSystemScm: Bool = scanfile.useSystemScm,
6425
6450
  failBuild: Bool = scanfile.failBuild)
6426
6451
  {
6427
6452
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -6483,9 +6508,11 @@ public func scan(workspace: Any? = scanfile.workspace,
6483
6508
  RubyCommand.Argument(name: "skip_slack", value: skipSlack),
6484
6509
  RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
6485
6510
  RubyCommand.Argument(name: "destination", value: destination),
6511
+ RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
6486
6512
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
6487
6513
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6488
6514
  RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
6515
+ RubyCommand.Argument(name: "use_system_scm", value: useSystemScm),
6489
6516
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
6490
6517
  _ = runner.executeCommand(command)
6491
6518
  }
@@ -7119,7 +7146,7 @@ public func slather(buildDirectory: String? = nil,
7119
7146
  ignore: [String]? = nil,
7120
7147
  verbose: Bool? = nil,
7121
7148
  useBundleExec: Bool = false,
7122
- binaryBasename: Bool = false,
7149
+ binaryBasename: [String]? = nil,
7123
7150
  binaryFile: [String]? = nil,
7124
7151
  arch: String? = nil,
7125
7152
  sourceFiles: Bool = false,
@@ -7439,6 +7466,7 @@ public func splunkmint(dsym: String? = nil,
7439
7466
 
7440
7467
  - parameters:
7441
7468
  - command: The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init)
7469
+ - enableCodeCoverage: Enables code coverage for the generated Xcode project when using the generate-xcodeproj command
7442
7470
  - buildPath: Specify build/cache directory [default: ./.build]
7443
7471
  - packagePath: Change working directory before any other operation
7444
7472
  - xcconfig: Use xcconfig file to override swift package generate-xcodeproj defaults
@@ -7449,6 +7477,7 @@ public func splunkmint(dsym: String? = nil,
7449
7477
  - verbose: Increase verbosity of informational output
7450
7478
  */
7451
7479
  public func spm(command: String = "build",
7480
+ enableCodeCoverage: Any? = nil,
7452
7481
  buildPath: String? = nil,
7453
7482
  packagePath: String? = nil,
7454
7483
  xcconfig: String? = nil,
@@ -7459,6 +7488,7 @@ public func spm(command: String = "build",
7459
7488
  verbose: Bool = false)
7460
7489
  {
7461
7490
  let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
7491
+ RubyCommand.Argument(name: "enable_code_coverage", value: enableCodeCoverage),
7462
7492
  RubyCommand.Argument(name: "build_path", value: buildPath),
7463
7493
  RubyCommand.Argument(name: "package_path", value: packagePath),
7464
7494
  RubyCommand.Argument(name: "xcconfig", value: xcconfig),
@@ -7508,7 +7538,7 @@ public func ssh(username: String,
7508
7538
  - versionCode: Version code (used when updating rollout or promoting specific versions)
7509
7539
  - releaseStatus: Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress
7510
7540
  - track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
7511
- - rollout: The percentage of the user fraction when uploading to the rollout track
7541
+ - rollout: The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout)
7512
7542
  - metadataPath: Path to the directory containing the metadata files
7513
7543
  - key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
7514
7544
  - issuer: **DEPRECATED!** Use `--json_key` instead - The issuer of the p12 file (email address of the service account)
@@ -7673,7 +7703,7 @@ public func swiftlint(mode: Any = "lint",
7673
7703
  Easily sync your certificates and profiles across your team (via _match_)
7674
7704
 
7675
7705
  - parameters:
7676
- - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
7706
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
7677
7707
  - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
7678
7708
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
7679
7709
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
@@ -7703,7 +7733,7 @@ public func swiftlint(mode: Any = "lint",
7703
7733
  - s3Bucket: Name of the S3 bucket
7704
7734
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
7705
7735
  - keychainName: Keychain the items should be imported to
7706
- - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
7736
+ - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
7707
7737
  - force: Renew the provisioning profiles every time you run match
7708
7738
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
7709
7739
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
@@ -8400,6 +8430,44 @@ public func updateUrlSchemes(path: String,
8400
8430
  _ = runner.executeCommand(command)
8401
8431
  }
8402
8432
 
8433
+ /**
8434
+ Upload App Privacy Details for an app in App Store Connect
8435
+
8436
+ - parameters:
8437
+ - username: Your Apple ID Username for App Store Connect
8438
+ - appIdentifier: The bundle identifier of your app
8439
+ - teamId: The ID of your App Store Connect team if you're in multiple teams
8440
+ - teamName: The name of your App Store Connect team if you're in multiple teams
8441
+ - jsonPath: Path to the app usage data JSON
8442
+ - outputJsonPath: Path to the app usage data JSON file generated by interactive questions
8443
+ - skipJsonFileSaving: Whether to skip the saving of the JSON file
8444
+ - skipUpload: Whether to skip the upload and only create the JSON file with interactive questions
8445
+ - skipPublish: Whether to skip the publishing
8446
+
8447
+ Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details
8448
+ */
8449
+ public func uploadAppPrivacyDetailsToAppStore(username: String,
8450
+ appIdentifier: String,
8451
+ teamId: Any? = nil,
8452
+ teamName: String? = nil,
8453
+ jsonPath: String? = nil,
8454
+ outputJsonPath: String = "./fastlane/app_privacy_details.json",
8455
+ skipJsonFileSaving: Bool = false,
8456
+ skipUpload: Bool = false,
8457
+ skipPublish: Bool = false)
8458
+ {
8459
+ let command = RubyCommand(commandID: "", methodName: "upload_app_privacy_details_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8460
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8461
+ RubyCommand.Argument(name: "team_id", value: teamId),
8462
+ RubyCommand.Argument(name: "team_name", value: teamName),
8463
+ RubyCommand.Argument(name: "json_path", value: jsonPath),
8464
+ RubyCommand.Argument(name: "output_json_path", value: outputJsonPath),
8465
+ RubyCommand.Argument(name: "skip_json_file_saving", value: skipJsonFileSaving),
8466
+ RubyCommand.Argument(name: "skip_upload", value: skipUpload),
8467
+ RubyCommand.Argument(name: "skip_publish", value: skipPublish)])
8468
+ _ = runner.executeCommand(command)
8469
+ }
8470
+
8403
8471
  /**
8404
8472
  Upload dSYM symbolication files to Crashlytics
8405
8473
 
@@ -8683,7 +8751,7 @@ public func uploadToAppStore(apiKeyPath: String? = nil,
8683
8751
  - versionCode: Version code (used when updating rollout or promoting specific versions)
8684
8752
  - releaseStatus: Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress
8685
8753
  - track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
8686
- - rollout: The percentage of the user fraction when uploading to the rollout track
8754
+ - rollout: The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout)
8687
8755
  - metadataPath: Path to the directory containing the metadata files
8688
8756
  - key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
8689
8757
  - issuer: **DEPRECATED!** Use `--json_key` instead - The issuer of the p12 file (email address of the service account)
@@ -9116,6 +9184,7 @@ public func xcexport() {
9116
9184
  - version: The version number of the version of Xcode to install
9117
9185
  - username: Your Apple ID Username
9118
9186
  - teamId: The ID of your team if you're in multiple teams
9187
+ - downloadRetryAttempts: Number of times the download will be retried in case of failure
9119
9188
 
9120
9189
  - returns: The path to the newly installed Xcode version
9121
9190
 
@@ -9123,11 +9192,13 @@ public func xcexport() {
9123
9192
  */
9124
9193
  @discardableResult public func xcodeInstall(version: String,
9125
9194
  username: String,
9126
- teamId: String? = nil) -> String
9195
+ teamId: String? = nil,
9196
+ downloadRetryAttempts: Int = 3) -> String
9127
9197
  {
9128
9198
  let command = RubyCommand(commandID: "", methodName: "xcode_install", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
9129
9199
  RubyCommand.Argument(name: "username", value: username),
9130
- RubyCommand.Argument(name: "team_id", value: teamId)])
9200
+ RubyCommand.Argument(name: "team_id", value: teamId),
9201
+ RubyCommand.Argument(name: "download_retry_attempts", value: downloadRetryAttempts)])
9131
9202
  return runner.executeCommand(command)
9132
9203
  }
9133
9204
 
@@ -9253,7 +9324,7 @@ public func xcov(workspace: String? = nil,
9253
9324
  coverallsServiceJobId: String? = nil,
9254
9325
  coverallsRepoToken: String? = nil,
9255
9326
  xcconfig: String? = nil,
9256
- ideFoundationPath: String = "/Applications/Xcode-12.0.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9327
+ ideFoundationPath: String = "/Applications/Xcode-12.2.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9257
9328
  legacySupport: Bool = false)
9258
9329
  {
9259
9330
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9399,4 +9470,4 @@ public let snapshotfile = Snapshotfile()
9399
9470
 
9400
9471
  // Please don't remove the lines below
9401
9472
  // They are used to detect outdated files
9402
- // FastlaneRunnerAPIVersion [0.9.101]
9473
+ // FastlaneRunnerAPIVersion [0.9.106]