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
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