fastlane 2.132.0 → 2.133.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 695d000a1213e2308cfe825c9bcc8208af5e9733
4
- data.tar.gz: d69ecd0ca465f574ca3d0a5fd059fa8cf8b5140b
2
+ SHA256:
3
+ metadata.gz: f60586154ca46a8972940838fd1c842c4ea3d15710660ae67f6a1daa6e549725
4
+ data.tar.gz: 796c700b97db4495e2f108eec428ccb03dd6b2112fa8df8dcca3650165a00484
5
5
  SHA512:
6
- metadata.gz: a56c8c367b041464f2d6c14d946f1da6778d26aee8986060e3b2aefaa8c46deb9b97ad152c63eb7265c4c996374c2521caab7f9b32571a2f2f5b58a48f7251ea
7
- data.tar.gz: 81236a7e159bae18edf8d624c4c7758263d6c09c613fdd3f7bc2e30d3c5ec5e707a496341caf2731eebd77fec4287971085886f72081eeb954b3010288fb33b0
6
+ metadata.gz: 73fb7ed813d160104e2481a6923797d673dc12109f60ad1c24b743a2dd0477460e70e614da2701c386ae5d0912a1964f4dee49a4db8c32a8a0a9ddba0a45cb29
7
+ data.tar.gz: e909f2a16fea9377e4fbf21466e38d64b5428b539db2751a1c28a83d3e6ae45aa27bce88960756c2d9056830c66660ccc3445317eeaa55156c58e699afd31e4d
data/README.md CHANGED
@@ -34,23 +34,29 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
+ <td id='olivier-halligon'>
38
+ <a href='https://github.com/AliSoftware'>
39
+ <img src='https://github.com/AliSoftware.png?size=140'>
40
+ </a>
41
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
42
+ </td>
37
43
  <td id='helmut-januschka'>
38
44
  <a href='https://github.com/hjanuschka'>
39
45
  <img src='https://github.com/hjanuschka.png?size=140'>
40
46
  </a>
41
47
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
42
48
  </td>
43
- <td id='manu-wallner'>
44
- <a href='https://github.com/milch'>
45
- <img src='https://github.com/milch.png?size=140'>
49
+ <td id='jérôme-lacoste'>
50
+ <a href='https://github.com/lacostej'>
51
+ <img src='https://github.com/lacostej.png?size=140'>
46
52
  </a>
47
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
48
54
  </td>
49
- <td id='aaron-brager'>
50
- <a href='https://github.com/getaaron'>
51
- <img src='https://github.com/getaaron.png?size=140'>
55
+ <td id='josh-holtz'>
56
+ <a href='https://github.com/joshdholtz'>
57
+ <img src='https://github.com/joshdholtz.png?size=140'>
52
58
  </a>
53
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
54
60
  </td>
55
61
  <td id='matthew-ellis'>
56
62
  <a href='https://github.com/matthewellis'>
@@ -58,63 +64,45 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
58
64
  </a>
59
65
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
60
66
  </td>
61
- <td id='olivier-halligon'>
62
- <a href='https://github.com/AliSoftware'>
63
- <img src='https://github.com/AliSoftware.png?size=140'>
64
- </a>
65
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
66
- </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='kohki-miki'>
70
- <a href='https://github.com/giginet'>
71
- <img src='https://github.com/giginet.png?size=140'>
69
+ <td id='maksym-grebenets'>
70
+ <a href='https://github.com/mgrebenets'>
71
+ <img src='https://github.com/mgrebenets.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
74
74
  </td>
75
- <td id='luka-mirosevic'>
76
- <a href='https://github.com/lmirosevic'>
77
- <img src='https://github.com/lmirosevic.png?size=140'>
75
+ <td id='jimmy-dee'>
76
+ <a href='https://github.com/jdee'>
77
+ <img src='https://github.com/jdee.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
79
+ <h4 align='center'>Jimmy Dee</h4>
80
80
  </td>
81
- <td id='josh-holtz'>
82
- <a href='https://github.com/joshdholtz'>
83
- <img src='https://github.com/joshdholtz.png?size=140'>
81
+ <td id='danielle-tomlinson'>
82
+ <a href='https://github.com/endocrimes'>
83
+ <img src='https://github.com/endocrimes.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
86
86
  </td>
87
- <td id='joshua-liebowitz'>
88
- <a href='https://github.com/taquitos'>
89
- <img src='https://github.com/taquitos.png?size=140'>
87
+ <td id='andrew-mcburney'>
88
+ <a href='https://github.com/armcburney'>
89
+ <img src='https://github.com/armcburney.png?size=140'>
90
90
  </a>
91
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
92
92
  </td>
93
- <td id='jan-piotrowski'>
94
- <a href='https://github.com/janpio'>
95
- <img src='https://github.com/janpio.png?size=140'>
93
+ <td id='luka-mirosevic'>
94
+ <a href='https://github.com/lmirosevic'>
95
+ <img src='https://github.com/lmirosevic.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='fumiya-nakamura'>
102
- <a href='https://github.com/nafu'>
103
- <img src='https://github.com/nafu.png?size=140'>
104
- </a>
105
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
106
- </td>
107
- <td id='jorge-revuelta-h'>
108
- <a href='https://github.com/minuscorp'>
109
- <img src='https://github.com/minuscorp.png?size=140'>
110
- </a>
111
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
112
- </td>
113
- <td id='jimmy-dee'>
114
- <a href='https://github.com/jdee'>
115
- <img src='https://github.com/jdee.png?size=140'>
101
+ <td id='joshua-liebowitz'>
102
+ <a href='https://github.com/taquitos'>
103
+ <img src='https://github.com/taquitos.png?size=140'>
116
104
  </a>
117
- <h4 align='center'>Jimmy Dee</h4>
105
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
118
106
  </td>
119
107
  <td id='stefan-natchev'>
120
108
  <a href='https://github.com/snatchev'>
@@ -122,43 +110,55 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
122
110
  </a>
123
111
  <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
124
112
  </td>
125
- <td id='danielle-tomlinson'>
126
- <a href='https://github.com/endocrimes'>
127
- <img src='https://github.com/endocrimes.png?size=140'>
113
+ <td id='kohki-miki'>
114
+ <a href='https://github.com/giginet'>
115
+ <img src='https://github.com/giginet.png?size=140'>
128
116
  </a>
129
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
118
+ </td>
119
+ <td id='manu-wallner'>
120
+ <a href='https://github.com/milch'>
121
+ <img src='https://github.com/milch.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
124
+ </td>
125
+ <td id='fumiya-nakamura'>
126
+ <a href='https://github.com/nafu'>
127
+ <img src='https://github.com/nafu.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
+ <td id='jan-piotrowski'>
134
+ <a href='https://github.com/janpio'>
135
+ <img src='https://github.com/janpio.png?size=140'>
136
+ </a>
137
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
138
+ </td>
133
139
  <td id='felix-krause'>
134
140
  <a href='https://github.com/KrauseFx'>
135
141
  <img src='https://github.com/KrauseFx.png?size=140'>
136
142
  </a>
137
143
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
138
144
  </td>
139
- <td id='iulian-onofrei'>
140
- <a href='https://github.com/revolter'>
141
- <img src='https://github.com/revolter.png?size=140'>
142
- </a>
143
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
144
- </td>
145
- <td id='jérôme-lacoste'>
146
- <a href='https://github.com/lacostej'>
147
- <img src='https://github.com/lacostej.png?size=140'>
145
+ <td id='jorge-revuelta-h'>
146
+ <a href='https://github.com/minuscorp'>
147
+ <img src='https://github.com/minuscorp.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
150
150
  </td>
151
- <td id='maksym-grebenets'>
152
- <a href='https://github.com/mgrebenets'>
153
- <img src='https://github.com/mgrebenets.png?size=140'>
151
+ <td id='aaron-brager'>
152
+ <a href='https://github.com/getaaron'>
153
+ <img src='https://github.com/getaaron.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
156
156
  </td>
157
- <td id='andrew-mcburney'>
158
- <a href='https://github.com/armcburney'>
159
- <img src='https://github.com/armcburney.png?size=140'>
157
+ <td id='iulian-onofrei'>
158
+ <a href='https://github.com/revolter'>
159
+ <img src='https://github.com/revolter.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  </table>
@@ -439,13 +439,17 @@ func parseInt(fromString: String, function: String = #function) -> Int {
439
439
  if self.tools_option_files.include?(action_name.to_s.downcase)
440
440
  tool_swift_function = ToolSwiftFunction.new(
441
441
  action_name: action_name,
442
+ action_description: action.description,
443
+ action_details: action.details,
442
444
  keys: keys,
443
445
  key_descriptions: key_descriptions,
444
446
  key_default_values: key_default_values,
445
447
  key_optionality_values: key_optionality_values,
446
448
  key_type_overrides: key_type_overrides,
447
449
  key_is_strings: key_is_strings,
448
- return_type: action_return_type
450
+ return_type: action_return_type,
451
+ return_value: action.return_value,
452
+ sample_return_value: action.sample_return_value
449
453
  )
450
454
  generated_protocol_file_path = generate_tool_protocol(tool_swift_function: tool_swift_function)
451
455
  self.generated_paths << generated_protocol_file_path unless generated_protocol_file_path.nil?
@@ -453,13 +457,17 @@ func parseInt(fromString: String, function: String = #function) -> Int {
453
457
  else
454
458
  return SwiftFunction.new(
455
459
  action_name: action_name,
460
+ action_description: action.description,
461
+ action_details: action.details,
456
462
  keys: keys,
457
463
  key_descriptions: key_descriptions,
458
464
  key_default_values: key_default_values,
459
465
  key_optionality_values: key_optionality_values,
460
466
  key_type_overrides: key_type_overrides,
461
467
  key_is_strings: key_is_strings,
462
- return_type: action_return_type
468
+ return_type: action_return_type,
469
+ return_value: action.return_value,
470
+ sample_return_value: action.sample_return_value
463
471
  )
464
472
  end
465
473
  end
@@ -1,7 +1,11 @@
1
1
  module Fastlane
2
2
  class SwiftFunction
3
3
  attr_accessor :function_name
4
+ attr_accessor :function_description
5
+ attr_accessor :function_details
4
6
  attr_accessor :return_type
7
+ attr_accessor :return_value
8
+ attr_accessor :sample_return_value
5
9
  attr_accessor :param_names
6
10
  attr_accessor :param_descriptions
7
11
  attr_accessor :param_default_values
@@ -11,14 +15,18 @@ module Fastlane
11
15
  attr_accessor :reserved_words
12
16
  attr_accessor :default_values_to_ignore
13
17
 
14
- def initialize(action_name: nil, keys: nil, key_descriptions: nil, key_default_values: nil, key_optionality_values: nil, key_type_overrides: nil, key_is_strings: nil, return_type: nil)
18
+ def initialize(action_name: nil, action_description: nil, action_details: nil, keys: nil, key_descriptions: nil, key_default_values: nil, key_optionality_values: nil, key_type_overrides: nil, key_is_strings: nil, return_type: nil, return_value: nil, sample_return_value: nil)
15
19
  @function_name = action_name
20
+ @function_description = action_description
21
+ @function_details = action_details
16
22
  @param_names = keys
17
23
  @param_descriptions = key_descriptions
18
24
  @param_default_values = key_default_values
19
25
  @param_optionality_values = key_optionality_values
20
26
  @param_is_strings = key_is_strings
21
27
  @return_type = return_type
28
+ @return_value = non_empty(string: return_value)
29
+ @sample_return_value = non_empty(string: sample_return_value)
22
30
  @param_type_overrides = key_type_overrides
23
31
 
24
32
  # rubocop:disable LineLength
@@ -34,6 +42,14 @@ module Fastlane
34
42
  return "`#{word}`"
35
43
  end
36
44
 
45
+ def non_empty(string: nil)
46
+ if string.nil? || string.to_s.empty?
47
+ return nil
48
+ else
49
+ return string
50
+ end
51
+ end
52
+
37
53
  def return_declaration
38
54
  expected_type = swift_type_for_return_type
39
55
  unless expected_type.to_s.length > 0
@@ -178,7 +194,54 @@ module Fastlane
178
194
  indent = ' ' * (discardable_result.length + function_name.length + function_keyword_definition.length + open_paren.length)
179
195
  params = self.parameters.join(",\n#{indent}")
180
196
 
181
- return "#{discardable_result}#{function_keyword_definition}#{function_name}#{open_paren}#{params}#{closed_paren}#{function_return_declaration} {\n#{self.implementation}\n}"
197
+ return "#{swift_documentation}#{discardable_result}#{function_keyword_definition}#{function_name}#{open_paren}#{params}#{closed_paren}#{function_return_declaration} {\n#{self.implementation}\n}\n"
198
+ end
199
+
200
+ def swift_documentation
201
+ has_parameters = @param_names && @param_names.length > 0
202
+ unless @function_description || @function_details || has_parameters
203
+ return ''
204
+ end
205
+
206
+ description = " #{fix_documentation_indentation(string: @function_description)}" if @function_description
207
+ details = " #{fix_documentation_indentation(string: @function_details)}" if @function_details
208
+ separator = ''
209
+ documentation_elements = [description, swift_parameter_documentation, swift_return_value_documentation, details].compact
210
+ # Adds newlines between each documentation element.
211
+ documentation = documentation_elements.flat_map { |element| [element, separator] }.tap(&:pop).join("\n")
212
+
213
+ return "/**\n#{documentation}\n*/\n"
214
+ end
215
+
216
+ def swift_parameter_documentation
217
+ unless @param_names && @param_names.length > 0
218
+ return nil
219
+ end
220
+
221
+ names_and_descriptions = @param_names.zip(@param_descriptions)
222
+
223
+ if @param_names.length == 1
224
+ detail_strings = names_and_descriptions.map { |name, description| " - parameter #{camel_case_lower(string: name)}: #{description}" }
225
+ return detail_strings.first
226
+ else
227
+ detail_strings = names_and_descriptions.map { |name, description| " - #{camel_case_lower(string: name)}: #{description}" }
228
+ return " - parameters:\n#{detail_strings.join("\n")}"
229
+ end
230
+ end
231
+
232
+ def swift_return_value_documentation
233
+ unless @return_value
234
+ return nil
235
+ end
236
+
237
+ sample = ". Example: #{@sample_return_value}" if @sample_return_value
238
+
239
+ return " - returns: #{return_value}#{sample}"
240
+ end
241
+
242
+ def fix_documentation_indentation(string: nil)
243
+ indent = ' '
244
+ string.gsub("\n", "\n#{indent}")
182
245
  end
183
246
 
184
247
  def build_argument_list
@@ -248,12 +311,18 @@ module Fastlane
248
311
  unless @param_names
249
312
  return []
250
313
  end
251
- swift_vars = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides).map do |param, default_value, optional, param_type_override|
314
+ swift_vars = @param_names.zip(param_default_values, param_optionality_values, param_type_overrides, param_descriptions).map do |param, default_value, optional, param_type_override, param_description|
252
315
  type = get_type(param: param, default_value: default_value, optional: optional, param_type_override: param_type_override)
253
316
 
254
317
  param = camel_case_lower(string: param)
255
318
  param = sanitize_reserved_word(word: param)
256
319
  static_var_for_parameter_name = param
320
+
321
+ if param_description
322
+ documentation = " /// #{param_description}\n"
323
+ end
324
+
325
+ "\n#{documentation}"\
257
326
  " var #{static_var_for_parameter_name}: #{type} { get }"
258
327
  end
259
328
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.132.0'.freeze
2
+ VERSION = '2.133.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.132.0
21
+ // Generated with fastlane 2.133.0
@@ -1,63 +1,183 @@
1
1
  protocol DeliverfileProtocol: class {
2
+
3
+ /// Your Apple ID Username
2
4
  var username: String { get }
5
+
6
+ /// The bundle identifier of your app
3
7
  var appIdentifier: String? { get }
8
+
9
+ /// The version that should be edited or created
4
10
  var appVersion: String? { get }
11
+
12
+ /// Path to your ipa file
5
13
  var ipa: String? { get }
14
+
15
+ /// Path to your pkg file
6
16
  var pkg: String? { get }
17
+
18
+ /// If set the given build number (already uploaded to iTC) will be used instead of the current built one
7
19
  var buildNumber: String? { get }
20
+
21
+ /// The platform to use (optional)
8
22
  var platform: String { get }
23
+
24
+ /// Modify live metadata, this option disables ipa upload and screenshot upload
9
25
  var editLive: Bool { get }
26
+
27
+ /// Force usage of live version rather than edit version
10
28
  var useLiveVersion: Bool { get }
29
+
30
+ /// Path to the folder containing the metadata files
11
31
  var metadataPath: String? { get }
32
+
33
+ /// Path to the folder containing the screenshots
12
34
  var screenshotsPath: String? { get }
35
+
36
+ /// Skip uploading an ipa or pkg to App Store Connect
13
37
  var skipBinaryUpload: Bool { get }
38
+
39
+ /// Don't upload the screenshots
14
40
  var skipScreenshots: Bool { get }
41
+
42
+ /// Don't upload the metadata (e.g. title, description). This will still upload screenshots
15
43
  var skipMetadata: Bool { get }
44
+
45
+ /// Don't update app version for submission
16
46
  var skipAppVersionUpdate: Bool { get }
47
+
48
+ /// Skip the HTML report file verification
17
49
  var force: Bool { get }
50
+
51
+ /// Clear all previously uploaded screenshots before uploading the new ones
18
52
  var overwriteScreenshots: Bool { get }
53
+
54
+ /// Submit the new version for Review after uploading everything
19
55
  var submitForReview: Bool { get }
56
+
57
+ /// Rejects the previously submitted build if it's in a state where it's possible
20
58
  var rejectIfPossible: Bool { get }
59
+
60
+ /// Should the app be automatically released once it's approved?
21
61
  var automaticRelease: Bool { get }
62
+
63
+ /// Date in milliseconds for automatically releasing on pending approval
22
64
  var autoReleaseDate: String? { get }
65
+
66
+ /// Enable the phased release feature of iTC
23
67
  var phasedRelease: Bool { get }
68
+
69
+ /// Reset the summary rating when you release a new version of the application
24
70
  var resetRatings: Bool { get }
71
+
72
+ /// The price tier of this application
25
73
  var priceTier: String? { get }
74
+
75
+ /// Path to the app rating's config
26
76
  var appRatingConfigPath: String? { get }
77
+
78
+ /// Extra information for the submission (e.g. compliance specifications, IDFA settings)
27
79
  var submissionInformation: String? { get }
80
+
81
+ /// The ID of your App Store Connect team if you're in multiple teams
28
82
  var teamId: String? { get }
83
+
84
+ /// The name of your App Store Connect team if you're in multiple teams
29
85
  var teamName: String? { get }
86
+
87
+ /// The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
30
88
  var devPortalTeamId: String? { get }
89
+
90
+ /// The name of your Developer Portal team if you're in multiple teams
31
91
  var devPortalTeamName: String? { get }
92
+
93
+ /// The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. 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
32
94
  var itcProvider: String? { get }
95
+
96
+ /// Run precheck before submitting to app review
33
97
  var runPrecheckBeforeSubmit: Bool { get }
98
+
99
+ /// The default precheck rule level unless otherwise configured
34
100
  var precheckDefaultRuleLevel: String { get }
101
+
102
+ /// An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow
35
103
  var individualMetadataItems: [String] { get }
104
+
105
+ /// Metadata: The path to the app icon
36
106
  var appIcon: String? { get }
107
+
108
+ /// Metadata: The path to the Apple Watch app icon
37
109
  var appleWatchAppIcon: String? { get }
110
+
111
+ /// Metadata: The copyright notice
38
112
  var copyright: String? { get }
113
+
114
+ /// Metadata: The english name of the primary category (e.g. `Business`, `Books`)
39
115
  var primaryCategory: String? { get }
116
+
117
+ /// Metadata: The english name of the secondary category (e.g. `Business`, `Books`)
40
118
  var secondaryCategory: String? { get }
119
+
120
+ /// Metadata: The english name of the primary first sub category (e.g. `Educational`, `Puzzle`)
41
121
  var primaryFirstSubCategory: String? { get }
122
+
123
+ /// Metadata: The english name of the primary second sub category (e.g. `Educational`, `Puzzle`)
42
124
  var primarySecondSubCategory: String? { get }
125
+
126
+ /// Metadata: The english name of the secondary first sub category (e.g. `Educational`, `Puzzle`)
43
127
  var secondaryFirstSubCategory: String? { get }
128
+
129
+ /// Metadata: The english name of the secondary second sub category (e.g. `Educational`, `Puzzle`)
44
130
  var secondarySecondSubCategory: String? { get }
131
+
132
+ /// Metadata: A hash containing the trade representative contact information
45
133
  var tradeRepresentativeContactInformation: [String : Any]? { get }
134
+
135
+ /// Metadata: A hash containing the review information
46
136
  var appReviewInformation: [String : Any]? { get }
137
+
138
+ /// Metadata: Path to the app review attachment file
47
139
  var appReviewAttachmentFile: String? { get }
140
+
141
+ /// Metadata: The localised app description
48
142
  var description: String? { get }
143
+
144
+ /// Metadata: The localised app name
49
145
  var name: String? { get }
146
+
147
+ /// Metadata: The localised app subtitle
50
148
  var subtitle: [String : Any]? { get }
149
+
150
+ /// Metadata: An array of localised keywords
51
151
  var keywords: [String : Any]? { get }
152
+
153
+ /// Metadata: An array of localised promotional texts
52
154
  var promotionalText: [String : Any]? { get }
155
+
156
+ /// Metadata: Localised release notes for this version
53
157
  var releaseNotes: String? { get }
158
+
159
+ /// Metadata: Localised privacy url
54
160
  var privacyUrl: String? { get }
161
+
162
+ /// Metadata: Localised Apple TV privacy policy text
55
163
  var appleTvPrivacyPolicy: String? { get }
164
+
165
+ /// Metadata: Localised support url
56
166
  var supportUrl: String? { get }
167
+
168
+ /// Metadata: Localised marketing url
57
169
  var marketingUrl: String? { get }
170
+
171
+ /// Metadata: List of languages to activate
58
172
  var languages: [String]? { get }
173
+
174
+ /// Ignore errors when invalid languages are found in metadata and screenshot directories
59
175
  var ignoreLanguageDirectoryValidation: Bool { get }
176
+
177
+ /// Should precheck check in-app purchases?
60
178
  var precheckIncludeInAppPurchases: Bool { get }
179
+
180
+ /// The (spaceship) app ID of the app you want to use/modify
61
181
  var app: String { get }
62
182
  }
63
183
 
@@ -126,4 +246,4 @@ extension DeliverfileProtocol {
126
246
 
127
247
  // Please don't remove the lines below
128
248
  // They are used to detect outdated files
129
- // FastlaneRunnerAPIVersion [0.9.8]
249
+ // FastlaneRunnerAPIVersion [0.9.18]