fastlane 2.102.0 → 2.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d91692ae9b538be8c778211d301175472ee11ac1
4
- data.tar.gz: 0abd168e6c72123dace0c10dd681ef8bc303a8cf
3
+ metadata.gz: b932a9ce438514f3d57762af837cf38e5bd3b410
4
+ data.tar.gz: d6d5f15199df4ca20b4159560e9757eb3fd1dc1e
5
5
  SHA512:
6
- metadata.gz: de17c43a5234fda93caf06a0568b840ff13eba6d0b9a4edc6ad46e9ac64d579767dee7b53ff09eb5d229b672761e936ab592283a5b73412ad93eadf6e3f4bfa3
7
- data.tar.gz: be5ae50297529093037da1e7ecf14fab30f0e2675cfe2174d86ce520d4e3dd3e94416af11193a3f9249ad06fab7fa4e66d0ab85104867f560be9aa979f45d70a
6
+ metadata.gz: 0dd5f8fc33c037bb5be139150fd60d01d8719857da103110239d287a703cb7d5565707fc4a49db1cb9f0d0bc529980665a0cd5deb006c6ec084dff9dbc24857e
7
+ data.tar.gz: 5f0e550a2c006b3b45de3661c2e3885f16da4aadce0207f7f1aa0e3f2b6df7c784724bcbc2931ac79e52521cc859cff3e52d102ad065139abe74886e227a449f
data/README.md CHANGED
@@ -32,81 +32,81 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
32
32
 
33
33
  <table id='team'>
34
34
  <tr>
35
- <td id='kohki-miki'>
36
- <a href='https://github.com/giginet'>
37
- <img src='https://github.com/giginet.png?size=140'>
35
+ <td id='fumiya-nakamura'>
36
+ <a href='https://github.com/nafu'>
37
+ <img src='https://github.com/nafu.png?size=140'>
38
38
  </a>
39
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
39
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
40
40
  </td>
41
- <td id='maksym-grebenets'>
42
- <a href='https://github.com/mgrebenets'>
43
- <img src='https://github.com/mgrebenets.png?size=140'>
41
+ <td id='manu-wallner'>
42
+ <a href='https://github.com/milch'>
43
+ <img src='https://github.com/milch.png?size=140'>
44
44
  </a>
45
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
45
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
46
46
  </td>
47
- <td id='iulian-onofrei'>
48
- <a href='https://github.com/revolter'>
49
- <img src='https://github.com/revolter.png?size=140'>
47
+ <td id='matthew-ellis'>
48
+ <a href='https://github.com/matthewellis'>
49
+ <img src='https://github.com/matthewellis.png?size=140'>
50
50
  </a>
51
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
51
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
52
52
  </td>
53
- <td id='jérôme-lacoste'>
54
- <a href='https://github.com/lacostej'>
55
- <img src='https://github.com/lacostej.png?size=140'>
53
+ <td id='olivier-halligon'>
54
+ <a href='https://github.com/AliSoftware'>
55
+ <img src='https://github.com/AliSoftware.png?size=140'>
56
56
  </a>
57
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
57
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
58
58
  </td>
59
- <td id='joshua-liebowitz'>
60
- <a href='https://github.com/taquitos'>
61
- <img src='https://github.com/taquitos.png?size=140'>
59
+ <td id='danielle-tomlinson'>
60
+ <a href='https://github.com/DanToml'>
61
+ <img src='https://github.com/DanToml.png?size=140'>
62
62
  </a>
63
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
63
+ <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
64
64
  </td>
65
65
  </tr>
66
66
  <tr>
67
+ <td id='jorge-revuelta-h'>
68
+ <a href='https://github.com/minuscorp'>
69
+ <img src='https://github.com/minuscorp.png?size=140'>
70
+ </a>
71
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
72
+ </td>
67
73
  <td id='jimmy-dee'>
68
74
  <a href='https://github.com/jdee'>
69
75
  <img src='https://github.com/jdee.png?size=140'>
70
76
  </a>
71
77
  <h4 align='center'>Jimmy Dee</h4>
72
78
  </td>
73
- <td id='manu-wallner'>
74
- <a href='https://github.com/milch'>
75
- <img src='https://github.com/milch.png?size=140'>
76
- </a>
77
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
78
- </td>
79
- <td id='andrew-mcburney'>
80
- <a href='https://github.com/AndrewMcBurney'>
81
- <img src='https://github.com/AndrewMcBurney.png?size=140'>
79
+ <td id='helmut-januschka'>
80
+ <a href='https://github.com/hjanuschka'>
81
+ <img src='https://github.com/hjanuschka.png?size=140'>
82
82
  </a>
83
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
83
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
84
84
  </td>
85
- <td id='aaron-brager'>
86
- <a href='https://github.com/getaaron'>
87
- <img src='https://github.com/getaaron.png?size=140'>
85
+ <td id='jan-piotrowski'>
86
+ <a href='https://github.com/janpio'>
87
+ <img src='https://github.com/janpio.png?size=140'>
88
88
  </a>
89
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
89
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
90
90
  </td>
91
- <td id='stefan-natchev'>
92
- <a href='https://github.com/snatchev'>
93
- <img src='https://github.com/snatchev.png?size=140'>
91
+ <td id='joshua-liebowitz'>
92
+ <a href='https://github.com/taquitos'>
93
+ <img src='https://github.com/taquitos.png?size=140'>
94
94
  </a>
95
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
95
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
96
96
  </td>
97
97
  </tr>
98
98
  <tr>
99
- <td id='olivier-halligon'>
100
- <a href='https://github.com/AliSoftware'>
101
- <img src='https://github.com/AliSoftware.png?size=140'>
99
+ <td id='andrew-mcburney'>
100
+ <a href='https://github.com/AndrewMcBurney'>
101
+ <img src='https://github.com/AndrewMcBurney.png?size=140'>
102
102
  </a>
103
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
103
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
104
104
  </td>
105
- <td id='helmut-januschka'>
106
- <a href='https://github.com/hjanuschka'>
107
- <img src='https://github.com/hjanuschka.png?size=140'>
105
+ <td id='iulian-onofrei'>
106
+ <a href='https://github.com/revolter'>
107
+ <img src='https://github.com/revolter.png?size=140'>
108
108
  </a>
109
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
109
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
110
110
  </td>
111
111
  <td id='felix-krause'>
112
112
  <a href='https://github.com/KrauseFx'>
@@ -114,49 +114,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
114
114
  </a>
115
115
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
116
116
  </td>
117
- <td id='danielle-tomlinson'>
118
- <a href='https://github.com/DanToml'>
119
- <img src='https://github.com/DanToml.png?size=140'>
120
- </a>
121
- <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
122
- </td>
123
- <td id='jan-piotrowski'>
124
- <a href='https://github.com/janpio'>
125
- <img src='https://github.com/janpio.png?size=140'>
117
+ <td id='luka-mirosevic'>
118
+ <a href='https://github.com/lmirosevic'>
119
+ <img src='https://github.com/lmirosevic.png?size=140'>
126
120
  </a>
127
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
121
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
128
122
  </td>
129
- </tr>
130
- <tr>
131
123
  <td id='josh-holtz'>
132
124
  <a href='https://github.com/joshdholtz'>
133
125
  <img src='https://github.com/joshdholtz.png?size=140'>
134
126
  </a>
135
127
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
136
128
  </td>
137
- <td id='jorge-revuelta-h'>
138
- <a href='https://github.com/minuscorp'>
139
- <img src='https://github.com/minuscorp.png?size=140'>
129
+ </tr>
130
+ <tr>
131
+ <td id='maksym-grebenets'>
132
+ <a href='https://github.com/mgrebenets'>
133
+ <img src='https://github.com/mgrebenets.png?size=140'>
140
134
  </a>
141
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
135
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
142
136
  </td>
143
- <td id='matthew-ellis'>
144
- <a href='https://github.com/matthewellis'>
145
- <img src='https://github.com/matthewellis.png?size=140'>
137
+ <td id='aaron-brager'>
138
+ <a href='https://github.com/getaaron'>
139
+ <img src='https://github.com/getaaron.png?size=140'>
146
140
  </a>
147
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
141
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
148
142
  </td>
149
- <td id='luka-mirosevic'>
150
- <a href='https://github.com/lmirosevic'>
151
- <img src='https://github.com/lmirosevic.png?size=140'>
143
+ <td id='stefan-natchev'>
144
+ <a href='https://github.com/snatchev'>
145
+ <img src='https://github.com/snatchev.png?size=140'>
152
146
  </a>
153
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
147
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
154
148
  </td>
155
- <td id='fumiya-nakamura'>
156
- <a href='https://github.com/nafu'>
157
- <img src='https://github.com/nafu.png?size=140'>
149
+ <td id='jérôme-lacoste'>
150
+ <a href='https://github.com/lacostej'>
151
+ <img src='https://github.com/lacostej.png?size=140'>
158
152
  </a>
159
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
153
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
154
+ </td>
155
+ <td id='kohki-miki'>
156
+ <a href='https://github.com/giginet'>
157
+ <img src='https://github.com/giginet.png?size=140'>
158
+ </a>
159
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
160
160
  </td>
161
161
  </tr>
162
162
  </table>
@@ -70,7 +70,7 @@ module CredentialsManager
70
70
  end
71
71
 
72
72
  if force || agree("Do you want to re-enter your password? (y/n)", true)
73
- puts("Removing Keychain entry for user '#{user}'...".yellow)
73
+ puts("Removing Keychain entry for user '#{user}'...".yellow) if mac?
74
74
  remove_from_keychain
75
75
  ask_for_login
76
76
  return true
@@ -111,12 +111,12 @@ module CredentialsManager
111
111
  if ENV["FASTLANE_HIDE_LOGIN_INFORMATION"].to_s.length == 0
112
112
  puts("-------------------------------------------------------------------------------------".green)
113
113
  puts("Please provide your Apple Developer Program account credentials".green)
114
- puts("The login information you enter will be stored in your macOS Keychain".green)
114
+ puts("The login information you enter will be stored in your macOS Keychain".green) if mac?
115
115
  if default_prefix?
116
116
  # We don't want to show this message, if we ask for the application specific password
117
117
  # which has a different prefix
118
118
  puts("You can also pass the password using the `FASTLANE_PASSWORD` environment variable".green)
119
- puts("See more information about it on GitHub: https://github.com/fastlane/fastlane/tree/master/credentials_manager".green)
119
+ puts("See more information about it on GitHub: https://github.com/fastlane/fastlane/tree/master/credentials_manager".green) if mac?
120
120
  end
121
121
  puts("-------------------------------------------------------------------------------------".green)
122
122
  end
@@ -138,7 +138,7 @@ module CredentialsManager
138
138
  end
139
139
 
140
140
  return true if ENV["FASTLANE_DONT_STORE_PASSWORD"]
141
- return true if (/darwin/ =~ RUBY_PLATFORM).nil? # mac?, since we don't have access to the helper here
141
+ return true unless mac?
142
142
 
143
143
  # Now we store this information in the keychain
144
144
  if add_to_keychain
@@ -148,5 +148,10 @@ module CredentialsManager
148
148
  return false
149
149
  end
150
150
  end
151
+
152
+ # Helper.mac? - but we don't have access to the helper here
153
+ def mac?
154
+ (/darwin/ =~ RUBY_PLATFORM) != nil
155
+ end
151
156
  end
152
157
  end
@@ -1,3 +1,13 @@
1
1
  // The Deliverfile allows you to store various App Store Connect metadata
2
2
  // For more information, check out the docs
3
3
  // https://docs.fastlane.tools/actions/deliver/
4
+
5
+ // In general, you can use the options available
6
+ // fastlane deliver --help
7
+
8
+ // Remove the // in front of the line to enable the option
9
+
10
+ class Deliverfile: DeliverfileProtocol {
11
+ //var username: String { return "" }
12
+ //var appIdentifier: String? { return "" }
13
+ }
@@ -144,13 +144,13 @@
144
144
  <% if @options[:app_icon] %>
145
145
  <div class="app-icon">
146
146
  Large App Icon:<br>
147
- <img src="<%= @options[:app_icon] %>">
147
+ <img src="<%= render_relative_path(@export_path, @options[:app_icon]) %>">
148
148
  </div>
149
149
  <% end %>
150
150
  <% if @options[:apple_watch_app_icon] %>
151
151
  <div class="watch-icon">
152
152
  Watch App Icon:<br>
153
- <img src="<%= @options[:apple_watch_app_icon] %>">
153
+ <img src="<%= render_relative_path(@export_path, @options[:apple_watch_app_icon]) %>">
154
154
  </div>
155
155
  <% end %>
156
156
  </div>
@@ -237,7 +237,7 @@
237
237
  <div class="app-screenshot-row">
238
238
 
239
239
  <% screenshots.each_with_index do |screenshot, index| %>
240
- <a href="<%= URI.escape(screenshot.path) %>" target="_blank"><img class="app-screenshot" src="<%= URI.escape(screenshot.path) %>" title="Screenshot #<%=index%> for <%=language%>"></a>
240
+ <a href="<%= URI.escape(screenshot.path) %>" target="_blank"><img class="app-screenshot" src="<%= render_relative_path(@export_path, URI.escape(screenshot.path)) %>" title="Screenshot #<%=index%> for <%=language%>"></a>
241
241
  <% end %>
242
242
  </div>
243
243
  <% end %>
@@ -31,11 +31,20 @@ module Deliver
31
31
  end
32
32
  end
33
33
 
34
+ # Returns a path relative to FastlaneFolder.path
35
+ # This is needed as the Preview.html file is located inside FastlaneFolder.path
36
+ def render_relative_path(export_path, path)
37
+ export_path = Pathname.new(export_path)
38
+ path = Pathname.new(path).relative_path_from(export_path)
39
+ return path.to_path
40
+ end
41
+
34
42
  # Renders all data available to quickly see if everything was correctly generated.
35
43
  # @param export_path (String) The path to a folder where the resulting HTML file should be stored.
36
44
  def render(options, screenshots, export_path = nil)
37
45
  @screenshots = screenshots || []
38
46
  @options = options
47
+ @export_path = export_path
39
48
 
40
49
  @app_name = (options[:name]['en-US'] || options[:name].values.first) if options[:name]
41
50
  @app_name ||= options[:app].name
@@ -27,18 +27,13 @@ module Deliver
27
27
  code_gen_sensitive: true,
28
28
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier),
29
29
  default_value_dynamic: true),
30
- FastlaneCore::ConfigItem.new(key: :app,
31
- short_option: "-p",
32
- env_name: "DELIVER_APP_ID",
33
- description: "The app ID of the app you want to use/modify",
34
- is_string: false), # don't add any verification here, as it's used to store a spaceship ref
35
- FastlaneCore::ConfigItem.new(key: :edit_live,
36
- short_option: "-o",
37
- optional: true,
38
- default_value: false,
39
- env_name: "DELIVER_EDIT_LIVE",
40
- description: "Modify live metadata, this option disables ipa upload and screenshot upload",
41
- is_string: false),
30
+ # version
31
+ FastlaneCore::ConfigItem.new(key: :app_version,
32
+ short_option: '-z',
33
+ description: "The version that should be edited or created",
34
+ optional: true),
35
+
36
+ # binary / build
42
37
  FastlaneCore::ConfigItem.new(key: :ipa,
43
38
  short_option: "-i",
44
39
  optional: true,
@@ -71,6 +66,14 @@ module Deliver
71
66
  conflict_block: proc do |value|
72
67
  UI.user_error!("You can't use 'pkg' and '#{value.key}' options in one run.")
73
68
  end),
69
+ FastlaneCore::ConfigItem.new(key: :build_number,
70
+ short_option: "-n",
71
+ description: "If set the given build number (already uploaded to iTC) will be used instead of the current built one",
72
+ optional: true,
73
+ conflicting_options: [:ipa, :pkg],
74
+ conflict_block: proc do |value|
75
+ UI.user_error!("You can't use 'build_number' and '#{value.key}' options in one run.")
76
+ end),
74
77
  FastlaneCore::ConfigItem.new(key: :platform,
75
78
  short_option: "-j",
76
79
  env_name: "DELIVER_PLATFORM",
@@ -80,6 +83,21 @@ module Deliver
80
83
  verify_block: proc do |value|
81
84
  UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
82
85
  end),
86
+
87
+ # live version
88
+ FastlaneCore::ConfigItem.new(key: :edit_live,
89
+ short_option: "-o",
90
+ optional: true,
91
+ default_value: false,
92
+ env_name: "DELIVER_EDIT_LIVE",
93
+ description: "Modify live metadata, this option disables ipa upload and screenshot upload",
94
+ is_string: false),
95
+ FastlaneCore::ConfigItem.new(key: :use_live_version,
96
+ description: "Force usage of live version rather than edit version",
97
+ is_string: false,
98
+ default_value: false),
99
+
100
+ # paths
83
101
  FastlaneCore::ConfigItem.new(key: :metadata_path,
84
102
  short_option: '-m',
85
103
  description: "Path to the folder containing the metadata files",
@@ -88,22 +106,16 @@ module Deliver
88
106
  short_option: '-w',
89
107
  description: "Path to the folder containing the screenshots",
90
108
  optional: true),
109
+
110
+ # skip
91
111
  FastlaneCore::ConfigItem.new(key: :skip_binary_upload,
92
112
  description: "Skip uploading an ipa or pkg to App Store Connect",
93
113
  is_string: false,
94
114
  default_value: false),
95
- FastlaneCore::ConfigItem.new(key: :use_live_version,
96
- description: "Force usage of live version rather than edit version",
97
- is_string: false,
98
- default_value: false),
99
115
  FastlaneCore::ConfigItem.new(key: :skip_screenshots,
100
116
  description: "Don't upload the screenshots",
101
117
  is_string: false,
102
118
  default_value: false),
103
- FastlaneCore::ConfigItem.new(key: :app_version,
104
- short_option: '-z',
105
- description: "The version that should be edited or created",
106
- optional: true),
107
119
  FastlaneCore::ConfigItem.new(key: :skip_metadata,
108
120
  description: "Don't upload the metadata (e.g. title, description). This will still upload screenshots",
109
121
  is_string: false,
@@ -112,11 +124,18 @@ module Deliver
112
124
  description: "Don't update app version for submission",
113
125
  is_string: false,
114
126
  default_value: false),
127
+
128
+ # how to operate
115
129
  FastlaneCore::ConfigItem.new(key: :force,
116
130
  short_option: "-f",
117
131
  description: "Skip the HTML report file verification",
118
132
  is_string: false,
119
133
  default_value: false),
134
+ FastlaneCore::ConfigItem.new(key: :overwrite_screenshots,
135
+ env_name: "DELIVER_OVERWRITE_SCREENSHOTS",
136
+ description: "Clear all previously uploaded screenshots before uploading the new ones",
137
+ is_string: false,
138
+ default_value: false),
120
139
  FastlaneCore::ConfigItem.new(key: :submit_for_review,
121
140
  env_name: "DELIVER_SUBMIT_FOR_REVIEW",
122
141
  description: "Submit the new version for Review after uploading everything",
@@ -127,6 +146,8 @@ module Deliver
127
146
  description: "Rejects the previously submitted build if it's in a state where it's possible",
128
147
  is_string: false,
129
148
  default_value: false),
149
+
150
+ # release
130
151
  FastlaneCore::ConfigItem.new(key: :automatic_release,
131
152
  description: "Should the app be automatically released once it's approved?",
132
153
  is_string: false,
@@ -145,19 +166,13 @@ module Deliver
145
166
  optional: true,
146
167
  is_string: false,
147
168
  default_value: false),
169
+
170
+ # other app configuration
148
171
  FastlaneCore::ConfigItem.new(key: :price_tier,
149
172
  short_option: "-r",
150
173
  description: "The price tier of this application",
151
174
  is_string: false,
152
175
  optional: true),
153
- FastlaneCore::ConfigItem.new(key: :build_number,
154
- short_option: "-n",
155
- description: "If set the given build number (already uploaded to iTC) will be used instead of the current built one",
156
- optional: true,
157
- conflicting_options: [:ipa, :pkg],
158
- conflict_block: proc do |value|
159
- UI.user_error!("You can't use 'build_number' and '#{value.key}' options in one run.")
160
- end),
161
176
  FastlaneCore::ConfigItem.new(key: :app_rating_config_path,
162
177
  short_option: "-g",
163
178
  description: "Path to the app rating's config",
@@ -172,6 +187,8 @@ module Deliver
172
187
  description: "Extra information for the submission (e.g. third party content)",
173
188
  is_string: false,
174
189
  optional: true),
190
+
191
+ # affiliation
175
192
  FastlaneCore::ConfigItem.new(key: :team_id,
176
193
  short_option: "-k",
177
194
  env_name: "DELIVER_TEAM_ID",
@@ -224,11 +241,8 @@ module Deliver
224
241
  description: "The provider short name to be used with the iTMSTransporter to identify your team. To get provider short name run `pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column",
225
242
  optional: true),
226
243
  # rubocop:enable Metrics/LineLength
227
- FastlaneCore::ConfigItem.new(key: :overwrite_screenshots,
228
- env_name: "DELIVER_OVERWRITE_SCREENSHOTS",
229
- description: "Clear all previously uploaded screenshots before uploading the new ones",
230
- is_string: false,
231
- default_value: false),
244
+
245
+ # precheck
232
246
  FastlaneCore::ConfigItem.new(key: :run_precheck_before_submit,
233
247
  short_option: "-x",
234
248
  env_name: "DELIVER_RUN_PRECHECK_BEFORE_SUBMIT",
@@ -238,7 +252,7 @@ module Deliver
238
252
  FastlaneCore::ConfigItem.new(key: :precheck_default_rule_level,
239
253
  short_option: "-d",
240
254
  env_name: "DELIVER_PRECHECK_DEFAULT_RULE_LEVEL",
241
- description: "The default rule level unless otherwise configured",
255
+ description: "The default precheck rule level unless otherwise configured",
242
256
  is_string: false,
243
257
  default_value: :warn),
244
258
 
@@ -370,7 +384,14 @@ module Deliver
370
384
  description: "Should precheck check in-app purchases?",
371
385
  is_string: false,
372
386
  optional: true,
373
- default_value: true)
387
+ default_value: true),
388
+
389
+ # internal
390
+ FastlaneCore::ConfigItem.new(key: :app,
391
+ short_option: "-p",
392
+ env_name: "DELIVER_APP_ID",
393
+ description: "The (spaceship) app ID of the app you want to use/modify",
394
+ is_string: false) # don't add any verification here, as it's used to store a spaceship ref
374
395
  ]
375
396
  end
376
397
  end