fastlane 2.102.0 → 2.103.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -74
  3. data/credentials_manager/lib/credentials_manager/account_manager.rb +9 -4
  4. data/deliver/lib/assets/DeliverfileDefault.swift +10 -0
  5. data/deliver/lib/assets/summary.html.erb +3 -3
  6. data/deliver/lib/deliver/html_generator.rb +9 -0
  7. data/deliver/lib/deliver/options.rb +56 -35
  8. data/deliver/lib/deliver/setup.rb +1 -2
  9. data/deliver/lib/deliver/submit_for_review.rb +2 -2
  10. data/deliver/lib/deliver/upload_metadata.rb +1 -1
  11. data/fastlane/lib/fastlane/action.rb +1 -0
  12. data/fastlane/lib/fastlane/actions/actions_helper.rb +11 -1
  13. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +11 -3
  15. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +15 -1
  18. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +21 -0
  19. data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/gradle.rb +4 -0
  21. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  23. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +2 -0
  24. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  25. data/fastlane/lib/fastlane/setup/setup_ios.rb +7 -5
  26. data/fastlane/lib/fastlane/version.rb +1 -1
  27. data/fastlane/swift/Deliverfile.swift +1 -1
  28. data/fastlane/swift/DeliverfileProtocol.swift +13 -13
  29. data/fastlane/swift/Fastlane.swift +45 -43
  30. data/fastlane/swift/Gymfile.swift +1 -1
  31. data/fastlane/swift/Matchfile.swift +1 -1
  32. data/fastlane/swift/Precheckfile.swift +1 -1
  33. data/fastlane/swift/Scanfile.swift +1 -1
  34. data/fastlane/swift/Screengrabfile.swift +1 -1
  35. data/fastlane/swift/Snapshotfile.swift +1 -1
  36. data/fastlane_core/lib/fastlane_core/command_executor.rb +9 -14
  37. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +12 -3
  38. data/fastlane_core/lib/fastlane_core/helper.rb +22 -10
  39. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +1 -1
  40. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +22 -15
  41. data/pilot/lib/pilot/build_manager.rb +1 -1
  42. data/pilot/lib/pilot/tester_importer.rb +2 -2
  43. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +3 -3
  44. data/produce/lib/produce/cloud_container.rb +82 -0
  45. data/produce/lib/produce/commands_generator.rb +34 -0
  46. data/produce/lib/produce/itunes_connect.rb +1 -1
  47. data/snapshot/lib/snapshot/commands_generator.rb +0 -2
  48. data/snapshot/lib/snapshot/reports_generator.rb +8 -3
  49. data/snapshot/lib/snapshot/runner.rb +9 -0
  50. data/spaceship/README.md +2 -2
  51. data/spaceship/lib/spaceship/client.rb +6 -2
  52. data/spaceship/lib/spaceship/errors.rb +3 -0
  53. data/spaceship/lib/spaceship/portal/app.rb +22 -1
  54. data/spaceship/lib/spaceship/portal/cloud_container.rb +74 -0
  55. data/spaceship/lib/spaceship/portal/portal.rb +1 -0
  56. data/spaceship/lib/spaceship/portal/portal_client.rb +45 -4
  57. data/spaceship/lib/spaceship/portal/spaceship.rb +9 -0
  58. data/spaceship/lib/spaceship/test_flight/client.rb +1 -1
  59. data/spaceship/lib/spaceship/tunes/app_ratings.rb +2 -2
  60. data/spaceship/lib/spaceship/tunes/app_submission.rb +9 -3
  61. data/spaceship/lib/spaceship/tunes/app_version.rb +1 -1
  62. data/spaceship/lib/spaceship/tunes/application.rb +4 -4
  63. data/spaceship/lib/spaceship/tunes/tunes_client.rb +13 -2
  64. data/supply/lib/supply/client.rb +0 -1
  65. metadata +22 -20
@@ -126,8 +126,7 @@ module Deliver
126
126
  end
127
127
  end
128
128
 
129
- def download_screenshots(deliver_path, options)
130
- path = File.join(deliver_path, 'screenshots')
129
+ def download_screenshots(path, options)
131
130
  FileUtils.mkdir_p(path)
132
131
  Deliver::DownloadScreenshots.run(options, path)
133
132
  end
@@ -7,7 +7,7 @@ module Deliver
7
7
  select_build(options)
8
8
 
9
9
  UI.message("Submitting the app for review...")
10
- submission = app.create_submission
10
+ submission = app.create_submission(platform: options[:platform])
11
11
 
12
12
  # Set app submission information
13
13
  # Default Values
@@ -31,7 +31,7 @@ module Deliver
31
31
 
32
32
  def select_build(options)
33
33
  app = options[:app]
34
- v = app.edit_version
34
+ v = app.edit_version(platform: options[:platform])
35
35
 
36
36
  if options[:build_number] && options[:build_number] != "latest"
37
37
  UI.message("Selecting existing build-number: #{options[:build_number]}")
@@ -226,7 +226,7 @@ module Deliver
226
226
  # Collect all languages we need
227
227
  # We only care about languages from user provided values
228
228
  # as the other languages are on iTC already anyway
229
- v = options[:app].edit_version
229
+ v = options[:app].edit_version(platform: options[:platform])
230
230
  UI.user_error!("Could not find a version to edit for app '#{options[:app].name}', the app metadata is read-only currently") unless v
231
231
 
232
232
  enabled_languages = options[:languages] || []
@@ -15,6 +15,7 @@ module Fastlane
15
15
  :production,
16
16
  :source_control,
17
17
  :notifications,
18
+ :app_store_connect,
18
19
  :misc,
19
20
  :deprecated # This should be the last item
20
21
  ]
@@ -106,7 +106,17 @@ module Fastlane
106
106
  UI.user_error!("You need to pass a valid path") unless File.exist?(path)
107
107
 
108
108
  Dir[File.expand_path('*.rb', path)].each do |file|
109
- require file
109
+ begin
110
+ require file
111
+ rescue SyntaxError => ex
112
+ content = File.read(file, encoding: "utf-8")
113
+ ex.to_s.lines
114
+ .collect { |error| error.match(/#{file}:(\d+):(.*)/) }
115
+ .reject(&:nil?)
116
+ .each { |error| UI.content_error(content, error[1]) }
117
+ UI.user_error!("Syntax error in #{File.basename(file)}")
118
+ next
119
+ end
110
120
 
111
121
  file_name = File.basename(file).gsub('.rb', '')
112
122
 
@@ -182,7 +182,7 @@ module Fastlane
182
182
  end
183
183
 
184
184
  def self.category
185
- :misc
185
+ :app_store_connect
186
186
  end
187
187
 
188
188
  def self.is_supported?(platform)
@@ -45,9 +45,11 @@ module Fastlane
45
45
  changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
46
46
  Actions.lane_context[SharedValues::FL_CHANGELOG] = changelog
47
47
 
48
- puts("")
49
- puts(changelog)
50
- puts("")
48
+ if params[:quiet] == false
49
+ puts("")
50
+ puts(changelog)
51
+ puts("")
52
+ end
51
53
 
52
54
  changelog
53
55
  end
@@ -128,6 +130,12 @@ module Fastlane
128
130
  optional: true,
129
131
  default_value: true,
130
132
  is_string: false),
133
+ FastlaneCore::ConfigItem.new(key: :quiet,
134
+ env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_TAG_QUIET',
135
+ description: 'Whether or not to disbale changelog output',
136
+ optional: true,
137
+ default_value: false,
138
+ is_string: false),
131
139
  FastlaneCore::ConfigItem.new(key: :include_merges,
132
140
  deprecated: "Use `:merge_commit_filtering` instead",
133
141
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_INCLUDE_MERGES',
@@ -46,7 +46,7 @@ module Fastlane
46
46
  end
47
47
 
48
48
  def self.category
49
- :misc
49
+ :app_store_connect
50
50
  end
51
51
  end
52
52
  end
@@ -68,7 +68,7 @@ module Fastlane
68
68
  end
69
69
 
70
70
  def self.category
71
- :misc
71
+ :app_store_connect
72
72
  end
73
73
  end
74
74
  end
@@ -55,7 +55,21 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
55
55
 
56
56
  # Generating Screenshots with Screengrab
57
57
  - Then, before running `fastlane screengrab` you'll need a debug and test apk
58
- - You can create your APKs with `./gradlew assembleDebug assembleAndroidTest`
58
+ - You can create your APKs manually with `./gradlew assembleDebug assembleAndroidTest`
59
+ - You can also create a lane and use `build_android_app`:
60
+ ```ruby
61
+ desc "Build debug and test APK for screenshots"
62
+ lane :build_for_screengrab do
63
+ build_android_app(
64
+ task: 'assemble',
65
+ build_type: 'Debug'
66
+ )
67
+ build_android_app(
68
+ task: 'assemble',
69
+ build_type: 'AndroidTest'
70
+ )
71
+ end
72
+ ```
59
73
  - Once complete run `fastlane screengrab` in your app project directory to generate screenshots
60
74
  - You will be prompted to provide any required parameters which are not in your **Screengrabfile** or provided as command line arguments
61
75
  - Your screenshots will be saved to `fastlane/metadata/android` in the directory where you ran _screengrab_
@@ -22,6 +22,8 @@ _produce_ creates new iOS apps on both the Apple Developer Portal and App Store
22
22
  - **Modify** Application Services on the Apple Developer Portal
23
23
  - **Create** App Groups on the Apple Developer Portal
24
24
  - **Associate** apps with App Groups on the Apple Developer Portal
25
+ - **Create** iCloud Containers on the Apple Developer Portal
26
+ - **Associate** apps with iCloud Containers on the Apple Developer Portal
25
27
  - **Create** Merchant Identifiers on the Apple Developer Portal
26
28
  - **Associate** apps with Merchant Identifiers on the Apple Developer Portal
27
29
  - Support for **multiple Apple accounts**, storing your credentials securely in the Keychain
@@ -48,6 +50,7 @@ Commands: (* default)
48
50
  disable_services Disable specific Application Services for a specific app on the Apple Developer Portal
49
51
  enable_services Enable specific Application Services for a specific app on the Apple Developer Portal
50
52
  group Ensure that a specific App Group exists
53
+ cloud_container Ensure that a specific iCloud Container exists
51
54
  help Display global or [command] help documentation
52
55
  merchant Ensure that a specific Merchant exists
53
56
 
@@ -101,6 +104,24 @@ If you want to associate an app with an App Group:
101
104
  fastlane produce associate_group -a com.krausefx.app group.krausefx
102
105
  ```
103
106
 
107
+ If you want to create a new iCloud Container:
108
+
109
+ ```no-highlight
110
+ fastlane produce cloud_container -ci iCloud.com.krausefx.app -n "Example iCloud Container"
111
+ ```
112
+
113
+ If you want to associate an app with an iCloud Container:
114
+
115
+ ```no-highlight
116
+ fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app
117
+ ```
118
+
119
+ If you want to associate an app with multiple iCloud Containers:
120
+
121
+ ```no-highlight
122
+ fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2
123
+ ```
124
+
104
125
  # Parameters
105
126
 
106
127
  Get a list of all available options using
@@ -232,7 +232,7 @@ module Fastlane
232
232
  end
233
233
 
234
234
  def self.category
235
- :misc
235
+ :app_store_connect
236
236
  end
237
237
  end
238
238
  end
@@ -231,6 +231,10 @@ module Fastlane
231
231
  # ...
232
232
 
233
233
  flags: "--exitcode --xml file.xml"
234
+ )',
235
+ '# Delete the build directory and generated APKs
236
+ gradle(
237
+ task: "clean"
234
238
  )'
235
239
  ]
236
240
  end
@@ -133,7 +133,7 @@ module Fastlane
133
133
  end
134
134
 
135
135
  def self.category
136
- :misc
136
+ :app_store_connect
137
137
  end
138
138
  end
139
139
  end
@@ -165,7 +165,7 @@ module Fastlane
165
165
  end
166
166
 
167
167
  def self.category
168
- :beta
168
+ :app_store_connect
169
169
  end
170
170
  end
171
171
  end
@@ -216,6 +216,8 @@ module Fastlane
216
216
  "Beta"
217
217
  when :production
218
218
  "Releasing your app"
219
+ when :app_store_connect
220
+ "App Store Connect"
219
221
  when :deprecated
220
222
  "Deprecated"
221
223
  else
@@ -129,6 +129,7 @@ AllCops:
129
129
  - "**/lib/assets/custom_action_template.rb"
130
130
  - "./vendor/**/*"
131
131
  - "**/lib/assets/DefaultFastfileTemplate"
132
+ - "**/spec/fixtures/broken_files/broken_file.rb"
132
133
  Style/FileName:
133
134
  Exclude:
134
135
  - "**/Dangerfile"
@@ -470,14 +470,16 @@ module Fastlane
470
470
  produce_options[:skip_devcenter] = true
471
471
  end
472
472
 
473
- Produce.config = FastlaneCore::Configuration.create(
474
- Produce::Options.available_options,
475
- produce_options
476
- )
477
-
478
473
  # The retrying system allows people to correct invalid inputs
479
474
  # e.g. the app's name is already taken
480
475
  loop do
476
+ # Creating config in the loop so user will be reprompted
477
+ # for app name if app name is taken or too long
478
+ Produce.config = FastlaneCore::Configuration.create(
479
+ Produce::Options.available_options,
480
+ produce_options
481
+ )
482
+
481
483
  begin
482
484
  Produce::Manager.start_producing
483
485
  UI.success("✅ Successfully created app")
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.102.0'.freeze
2
+ VERSION = '2.103.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
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.102.0
21
+ // Generated with fastlane 2.103.0
@@ -1,27 +1,27 @@
1
1
  protocol DeliverfileProtocol: class {
2
2
  var username: String { get }
3
3
  var appIdentifier: String? { get }
4
- var app: String { get }
5
- var editLive: Bool { get }
4
+ var appVersion: String? { get }
6
5
  var ipa: String? { get }
7
6
  var pkg: String? { get }
7
+ var buildNumber: String? { get }
8
8
  var platform: String { get }
9
+ var editLive: Bool { get }
10
+ var useLiveVersion: Bool { get }
9
11
  var metadataPath: String? { get }
10
12
  var screenshotsPath: String? { get }
11
13
  var skipBinaryUpload: Bool { get }
12
- var useLiveVersion: Bool { get }
13
14
  var skipScreenshots: Bool { get }
14
- var appVersion: String? { get }
15
15
  var skipMetadata: Bool { get }
16
16
  var skipAppVersionUpdate: Bool { get }
17
17
  var force: Bool { get }
18
+ var overwriteScreenshots: Bool { get }
18
19
  var submitForReview: Bool { get }
19
20
  var rejectIfPossible: Bool { get }
20
21
  var automaticRelease: Bool { get }
21
22
  var autoReleaseDate: String? { get }
22
23
  var phasedRelease: Bool { get }
23
24
  var priceTier: String? { get }
24
- var buildNumber: String? { get }
25
25
  var appRatingConfigPath: String? { get }
26
26
  var submissionInformation: String? { get }
27
27
  var teamId: String? { get }
@@ -29,7 +29,6 @@ protocol DeliverfileProtocol: class {
29
29
  var devPortalTeamId: String? { get }
30
30
  var devPortalTeamName: String? { get }
31
31
  var itcProvider: String? { get }
32
- var overwriteScreenshots: Bool { get }
33
32
  var runPrecheckBeforeSubmit: Bool { get }
34
33
  var precheckDefaultRuleLevel: String { get }
35
34
  var appIcon: String? { get }
@@ -55,32 +54,33 @@ protocol DeliverfileProtocol: class {
55
54
  var languages: [String]? { get }
56
55
  var ignoreLanguageDirectoryValidation: Bool { get }
57
56
  var precheckIncludeInAppPurchases: Bool { get }
57
+ var app: String { get }
58
58
  }
59
59
 
60
60
  extension DeliverfileProtocol {
61
61
  var username: String { return "" }
62
62
  var appIdentifier: String? { return nil }
63
- var app: String { return "" }
64
- var editLive: Bool { return false }
63
+ var appVersion: String? { return nil }
65
64
  var ipa: String? { return nil }
66
65
  var pkg: String? { return nil }
66
+ var buildNumber: String? { return nil }
67
67
  var platform: String { return "ios" }
68
+ var editLive: Bool { return false }
69
+ var useLiveVersion: Bool { return false }
68
70
  var metadataPath: String? { return nil }
69
71
  var screenshotsPath: String? { return nil }
70
72
  var skipBinaryUpload: Bool { return false }
71
- var useLiveVersion: Bool { return false }
72
73
  var skipScreenshots: Bool { return false }
73
- var appVersion: String? { return nil }
74
74
  var skipMetadata: Bool { return false }
75
75
  var skipAppVersionUpdate: Bool { return false }
76
76
  var force: Bool { return false }
77
+ var overwriteScreenshots: Bool { return false }
77
78
  var submitForReview: Bool { return false }
78
79
  var rejectIfPossible: Bool { return false }
79
80
  var automaticRelease: Bool { return false }
80
81
  var autoReleaseDate: String? { return nil }
81
82
  var phasedRelease: Bool { return false }
82
83
  var priceTier: String? { return nil }
83
- var buildNumber: String? { return nil }
84
84
  var appRatingConfigPath: String? { return nil }
85
85
  var submissionInformation: String? { return nil }
86
86
  var teamId: String? { return nil }
@@ -88,7 +88,6 @@ extension DeliverfileProtocol {
88
88
  var devPortalTeamId: String? { return nil }
89
89
  var devPortalTeamName: String? { return nil }
90
90
  var itcProvider: String? { return nil }
91
- var overwriteScreenshots: Bool { return false }
92
91
  var runPrecheckBeforeSubmit: Bool { return true }
93
92
  var precheckDefaultRuleLevel: String { return "warn" }
94
93
  var appIcon: String? { return nil }
@@ -114,8 +113,9 @@ extension DeliverfileProtocol {
114
113
  var languages: [String]? { return nil }
115
114
  var ignoreLanguageDirectoryValidation: Bool { return false }
116
115
  var precheckIncludeInAppPurchases: Bool { return true }
116
+ var app: String { return "" }
117
117
  }
118
118
 
119
119
  // Please don't remove the lines below
120
120
  // They are used to detect outdated files
121
- // FastlaneRunnerAPIVersion [0.9.3]
121
+ // FastlaneRunnerAPIVersion [0.9.4]
@@ -223,27 +223,27 @@ func appledoc(input: String,
223
223
  }
224
224
  func appstore(username: String,
225
225
  appIdentifier: String? = nil,
226
- app: String,
227
- editLive: Bool = false,
226
+ appVersion: String? = nil,
228
227
  ipa: String? = nil,
229
228
  pkg: String? = nil,
229
+ buildNumber: String? = nil,
230
230
  platform: String = "ios",
231
+ editLive: Bool = false,
232
+ useLiveVersion: Bool = false,
231
233
  metadataPath: String? = nil,
232
234
  screenshotsPath: String? = nil,
233
235
  skipBinaryUpload: Bool = false,
234
- useLiveVersion: Bool = false,
235
236
  skipScreenshots: Bool = false,
236
- appVersion: String? = nil,
237
237
  skipMetadata: Bool = false,
238
238
  skipAppVersionUpdate: Bool = false,
239
239
  force: Bool = false,
240
+ overwriteScreenshots: Bool = false,
240
241
  submitForReview: Bool = false,
241
242
  rejectIfPossible: Bool = false,
242
243
  automaticRelease: Bool = false,
243
244
  autoReleaseDate: String? = nil,
244
245
  phasedRelease: Bool = false,
245
246
  priceTier: String? = nil,
246
- buildNumber: String? = nil,
247
247
  appRatingConfigPath: String? = nil,
248
248
  submissionInformation: String? = nil,
249
249
  teamId: String? = nil,
@@ -251,7 +251,6 @@ func appstore(username: String,
251
251
  devPortalTeamId: String? = nil,
252
252
  devPortalTeamName: String? = nil,
253
253
  itcProvider: String? = nil,
254
- overwriteScreenshots: Bool = false,
255
254
  runPrecheckBeforeSubmit: Bool = true,
256
255
  precheckDefaultRuleLevel: String = "warn",
257
256
  appIcon: String? = nil,
@@ -276,30 +275,31 @@ func appstore(username: String,
276
275
  marketingUrl: String? = nil,
277
276
  languages: [String]? = nil,
278
277
  ignoreLanguageDirectoryValidation: Bool = false,
279
- precheckIncludeInAppPurchases: Bool = true) {
278
+ precheckIncludeInAppPurchases: Bool = true,
279
+ app: String) {
280
280
  let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
281
281
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
282
- RubyCommand.Argument(name: "app", value: app),
283
- RubyCommand.Argument(name: "edit_live", value: editLive),
282
+ RubyCommand.Argument(name: "app_version", value: appVersion),
284
283
  RubyCommand.Argument(name: "ipa", value: ipa),
285
284
  RubyCommand.Argument(name: "pkg", value: pkg),
285
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
286
286
  RubyCommand.Argument(name: "platform", value: platform),
287
+ RubyCommand.Argument(name: "edit_live", value: editLive),
288
+ RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
287
289
  RubyCommand.Argument(name: "metadata_path", value: metadataPath),
288
290
  RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
289
291
  RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
290
- RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
291
292
  RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
292
- RubyCommand.Argument(name: "app_version", value: appVersion),
293
293
  RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
294
294
  RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
295
295
  RubyCommand.Argument(name: "force", value: force),
296
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
296
297
  RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
297
298
  RubyCommand.Argument(name: "reject_if_possible", value: rejectIfPossible),
298
299
  RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
299
300
  RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
300
301
  RubyCommand.Argument(name: "phased_release", value: phasedRelease),
301
302
  RubyCommand.Argument(name: "price_tier", value: priceTier),
302
- RubyCommand.Argument(name: "build_number", value: buildNumber),
303
303
  RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
304
304
  RubyCommand.Argument(name: "submission_information", value: submissionInformation),
305
305
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -307,7 +307,6 @@ func appstore(username: String,
307
307
  RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
308
308
  RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
309
309
  RubyCommand.Argument(name: "itc_provider", value: itcProvider),
310
- RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
311
310
  RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
312
311
  RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
313
312
  RubyCommand.Argument(name: "app_icon", value: appIcon),
@@ -332,7 +331,8 @@ func appstore(username: String,
332
331
  RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
333
332
  RubyCommand.Argument(name: "languages", value: languages),
334
333
  RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
335
- RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
334
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases),
335
+ RubyCommand.Argument(name: "app", value: app)])
336
336
  _ = runner.executeCommand(command)
337
337
  }
338
338
  func apteligent(dsym: String? = nil,
@@ -901,6 +901,7 @@ func cert(development: Bool = false,
901
901
  ancestryPath: Bool = false,
902
902
  tagMatchPattern: String? = nil,
903
903
  matchLightweightTag: Bool = true,
904
+ quiet: Bool = false,
904
905
  includeMerges: Bool? = nil,
905
906
  mergeCommitFiltering: String = "include_merges") -> String {
906
907
  let command = RubyCommand(commandID: "", methodName: "changelog_from_git_commits", className: nil, args: [RubyCommand.Argument(name: "between", value: between),
@@ -911,6 +912,7 @@ func cert(development: Bool = false,
911
912
  RubyCommand.Argument(name: "ancestry_path", value: ancestryPath),
912
913
  RubyCommand.Argument(name: "tag_match_pattern", value: tagMatchPattern),
913
914
  RubyCommand.Argument(name: "match_lightweight_tag", value: matchLightweightTag),
915
+ RubyCommand.Argument(name: "quiet", value: quiet),
914
916
  RubyCommand.Argument(name: "include_merges", value: includeMerges),
915
917
  RubyCommand.Argument(name: "merge_commit_filtering", value: mergeCommitFiltering)])
916
918
  return runner.executeCommand(command)
@@ -1189,27 +1191,27 @@ func deleteKeychain(name: String? = nil,
1189
1191
  }
1190
1192
  func deliver(username: String = deliverfile.username,
1191
1193
  appIdentifier: String? = deliverfile.appIdentifier,
1192
- app: String = deliverfile.app,
1193
- editLive: Bool = deliverfile.editLive,
1194
+ appVersion: String? = deliverfile.appVersion,
1194
1195
  ipa: String? = deliverfile.ipa,
1195
1196
  pkg: String? = deliverfile.pkg,
1197
+ buildNumber: String? = deliverfile.buildNumber,
1196
1198
  platform: String = deliverfile.platform,
1199
+ editLive: Bool = deliverfile.editLive,
1200
+ useLiveVersion: Bool = deliverfile.useLiveVersion,
1197
1201
  metadataPath: String? = deliverfile.metadataPath,
1198
1202
  screenshotsPath: String? = deliverfile.screenshotsPath,
1199
1203
  skipBinaryUpload: Bool = deliverfile.skipBinaryUpload,
1200
- useLiveVersion: Bool = deliverfile.useLiveVersion,
1201
1204
  skipScreenshots: Bool = deliverfile.skipScreenshots,
1202
- appVersion: String? = deliverfile.appVersion,
1203
1205
  skipMetadata: Bool = deliverfile.skipMetadata,
1204
1206
  skipAppVersionUpdate: Bool = deliverfile.skipAppVersionUpdate,
1205
1207
  force: Bool = deliverfile.force,
1208
+ overwriteScreenshots: Bool = deliverfile.overwriteScreenshots,
1206
1209
  submitForReview: Bool = deliverfile.submitForReview,
1207
1210
  rejectIfPossible: Bool = deliverfile.rejectIfPossible,
1208
1211
  automaticRelease: Bool = deliverfile.automaticRelease,
1209
1212
  autoReleaseDate: String? = deliverfile.autoReleaseDate,
1210
1213
  phasedRelease: Bool = deliverfile.phasedRelease,
1211
1214
  priceTier: String? = deliverfile.priceTier,
1212
- buildNumber: String? = deliverfile.buildNumber,
1213
1215
  appRatingConfigPath: String? = deliverfile.appRatingConfigPath,
1214
1216
  submissionInformation: String? = deliverfile.submissionInformation,
1215
1217
  teamId: String? = deliverfile.teamId,
@@ -1217,7 +1219,6 @@ func deliver(username: String = deliverfile.username,
1217
1219
  devPortalTeamId: String? = deliverfile.devPortalTeamId,
1218
1220
  devPortalTeamName: String? = deliverfile.devPortalTeamName,
1219
1221
  itcProvider: String? = deliverfile.itcProvider,
1220
- overwriteScreenshots: Bool = deliverfile.overwriteScreenshots,
1221
1222
  runPrecheckBeforeSubmit: Bool = deliverfile.runPrecheckBeforeSubmit,
1222
1223
  precheckDefaultRuleLevel: String = deliverfile.precheckDefaultRuleLevel,
1223
1224
  appIcon: String? = deliverfile.appIcon,
@@ -1242,30 +1243,31 @@ func deliver(username: String = deliverfile.username,
1242
1243
  marketingUrl: String? = deliverfile.marketingUrl,
1243
1244
  languages: [String]? = deliverfile.languages,
1244
1245
  ignoreLanguageDirectoryValidation: Bool = deliverfile.ignoreLanguageDirectoryValidation,
1245
- precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases) {
1246
+ precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases,
1247
+ app: String = deliverfile.app) {
1246
1248
  let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
1247
1249
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1248
- RubyCommand.Argument(name: "app", value: app),
1249
- RubyCommand.Argument(name: "edit_live", value: editLive),
1250
+ RubyCommand.Argument(name: "app_version", value: appVersion),
1250
1251
  RubyCommand.Argument(name: "ipa", value: ipa),
1251
1252
  RubyCommand.Argument(name: "pkg", value: pkg),
1253
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
1252
1254
  RubyCommand.Argument(name: "platform", value: platform),
1255
+ RubyCommand.Argument(name: "edit_live", value: editLive),
1256
+ RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
1253
1257
  RubyCommand.Argument(name: "metadata_path", value: metadataPath),
1254
1258
  RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
1255
1259
  RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
1256
- RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
1257
1260
  RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
1258
- RubyCommand.Argument(name: "app_version", value: appVersion),
1259
1261
  RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
1260
1262
  RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
1261
1263
  RubyCommand.Argument(name: "force", value: force),
1264
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
1262
1265
  RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
1263
1266
  RubyCommand.Argument(name: "reject_if_possible", value: rejectIfPossible),
1264
1267
  RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
1265
1268
  RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
1266
1269
  RubyCommand.Argument(name: "phased_release", value: phasedRelease),
1267
1270
  RubyCommand.Argument(name: "price_tier", value: priceTier),
1268
- RubyCommand.Argument(name: "build_number", value: buildNumber),
1269
1271
  RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
1270
1272
  RubyCommand.Argument(name: "submission_information", value: submissionInformation),
1271
1273
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -1273,7 +1275,6 @@ func deliver(username: String = deliverfile.username,
1273
1275
  RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
1274
1276
  RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
1275
1277
  RubyCommand.Argument(name: "itc_provider", value: itcProvider),
1276
- RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
1277
1278
  RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
1278
1279
  RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
1279
1280
  RubyCommand.Argument(name: "app_icon", value: appIcon),
@@ -1298,7 +1299,8 @@ func deliver(username: String = deliverfile.username,
1298
1299
  RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
1299
1300
  RubyCommand.Argument(name: "languages", value: languages),
1300
1301
  RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
1301
- RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
1302
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases),
1303
+ RubyCommand.Argument(name: "app", value: app)])
1302
1304
  _ = runner.executeCommand(command)
1303
1305
  }
1304
1306
  func deploygate(apiToken: String,
@@ -3631,27 +3633,27 @@ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
3631
3633
  }
3632
3634
  func uploadToAppStore(username: String,
3633
3635
  appIdentifier: String? = nil,
3634
- app: String,
3635
- editLive: Bool = false,
3636
+ appVersion: String? = nil,
3636
3637
  ipa: String? = nil,
3637
3638
  pkg: String? = nil,
3639
+ buildNumber: String? = nil,
3638
3640
  platform: String = "ios",
3641
+ editLive: Bool = false,
3642
+ useLiveVersion: Bool = false,
3639
3643
  metadataPath: String? = nil,
3640
3644
  screenshotsPath: String? = nil,
3641
3645
  skipBinaryUpload: Bool = false,
3642
- useLiveVersion: Bool = false,
3643
3646
  skipScreenshots: Bool = false,
3644
- appVersion: String? = nil,
3645
3647
  skipMetadata: Bool = false,
3646
3648
  skipAppVersionUpdate: Bool = false,
3647
3649
  force: Bool = false,
3650
+ overwriteScreenshots: Bool = false,
3648
3651
  submitForReview: Bool = false,
3649
3652
  rejectIfPossible: Bool = false,
3650
3653
  automaticRelease: Bool = false,
3651
3654
  autoReleaseDate: String? = nil,
3652
3655
  phasedRelease: Bool = false,
3653
3656
  priceTier: String? = nil,
3654
- buildNumber: String? = nil,
3655
3657
  appRatingConfigPath: String? = nil,
3656
3658
  submissionInformation: String? = nil,
3657
3659
  teamId: String? = nil,
@@ -3659,7 +3661,6 @@ func uploadToAppStore(username: String,
3659
3661
  devPortalTeamId: String? = nil,
3660
3662
  devPortalTeamName: String? = nil,
3661
3663
  itcProvider: String? = nil,
3662
- overwriteScreenshots: Bool = false,
3663
3664
  runPrecheckBeforeSubmit: Bool = true,
3664
3665
  precheckDefaultRuleLevel: String = "warn",
3665
3666
  appIcon: String? = nil,
@@ -3684,30 +3685,31 @@ func uploadToAppStore(username: String,
3684
3685
  marketingUrl: String? = nil,
3685
3686
  languages: [String]? = nil,
3686
3687
  ignoreLanguageDirectoryValidation: Bool = false,
3687
- precheckIncludeInAppPurchases: Bool = true) {
3688
+ precheckIncludeInAppPurchases: Bool = true,
3689
+ app: String) {
3688
3690
  let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
3689
3691
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3690
- RubyCommand.Argument(name: "app", value: app),
3691
- RubyCommand.Argument(name: "edit_live", value: editLive),
3692
+ RubyCommand.Argument(name: "app_version", value: appVersion),
3692
3693
  RubyCommand.Argument(name: "ipa", value: ipa),
3693
3694
  RubyCommand.Argument(name: "pkg", value: pkg),
3695
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
3694
3696
  RubyCommand.Argument(name: "platform", value: platform),
3697
+ RubyCommand.Argument(name: "edit_live", value: editLive),
3698
+ RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
3695
3699
  RubyCommand.Argument(name: "metadata_path", value: metadataPath),
3696
3700
  RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
3697
3701
  RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
3698
- RubyCommand.Argument(name: "use_live_version", value: useLiveVersion),
3699
3702
  RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
3700
- RubyCommand.Argument(name: "app_version", value: appVersion),
3701
3703
  RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
3702
3704
  RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
3703
3705
  RubyCommand.Argument(name: "force", value: force),
3706
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
3704
3707
  RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
3705
3708
  RubyCommand.Argument(name: "reject_if_possible", value: rejectIfPossible),
3706
3709
  RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
3707
3710
  RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
3708
3711
  RubyCommand.Argument(name: "phased_release", value: phasedRelease),
3709
3712
  RubyCommand.Argument(name: "price_tier", value: priceTier),
3710
- RubyCommand.Argument(name: "build_number", value: buildNumber),
3711
3713
  RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
3712
3714
  RubyCommand.Argument(name: "submission_information", value: submissionInformation),
3713
3715
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -3715,7 +3717,6 @@ func uploadToAppStore(username: String,
3715
3717
  RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
3716
3718
  RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
3717
3719
  RubyCommand.Argument(name: "itc_provider", value: itcProvider),
3718
- RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
3719
3720
  RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
3720
3721
  RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
3721
3722
  RubyCommand.Argument(name: "app_icon", value: appIcon),
@@ -3740,7 +3741,8 @@ func uploadToAppStore(username: String,
3740
3741
  RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
3741
3742
  RubyCommand.Argument(name: "languages", value: languages),
3742
3743
  RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
3743
- RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
3744
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases),
3745
+ RubyCommand.Argument(name: "app", value: app)])
3744
3746
  _ = runner.executeCommand(command)
3745
3747
  }
3746
3748
  func uploadToPlayStore(packageName: String,
@@ -4071,4 +4073,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
4071
4073
  let snapshotfile: Snapshotfile = Snapshotfile()
4072
4074
  // Please don't remove the lines below
4073
4075
  // They are used to detect outdated files
4074
- // FastlaneRunnerAPIVersion [0.9.26]
4076
+ // FastlaneRunnerAPIVersion [0.9.27]