fastlane 2.55.0.beta.20170831010002 → 2.55.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
2
  SHA1:
3
- metadata.gz: fbd1f07885621ab5d9da93acfaf2b7026ea1c39a
4
- data.tar.gz: 5d954d4b3ff216291b0aa56bdfcb7c8c6248351a
3
+ metadata.gz: 7ee0726c4a05f996359a22ede4695e4b03e740b6
4
+ data.tar.gz: c9a9eb305d25a3f8f836d5501b8be6e15cffaf0a
5
5
  SHA512:
6
- metadata.gz: ce9a253250d1f57940480cd5c8f6cb8f481ef4bf6d090b32f87913ef88cb1466e608ad57e155444bd59c8bd1b777a39639f63896856cb3594a10db5394c4d834
7
- data.tar.gz: 93cc5eaa182601e867dd9c5ece6d044d84b79af321d317acdc711ba4257e56a131bf42a2bcd1d365edd1f90262b5ab4befeeb3ceecb98566f672b1c2bbfe795d
6
+ metadata.gz: 79b675f9fdac9463fa618f392a37cc984f7a0a909a7929dd01bb0951125f0c9f212e229d858de595bbe44066e60b4ae4bfaeecaa8a2e1c7e6ebefe0e9b1e1864
7
+ data.tar.gz: 2ad17630e781b8540b9145c985b7ef1fc561f109dab660948d2ad4c90f9a061a1a159c6e8b9aea5830154afc31b62cca794da576947572cdb6754a091d2f3d10
Binary file
@@ -0,0 +1,57 @@
1
+ # <%= @action.action_name %>
2
+
3
+ <% action = @action %>
4
+ <%= action.description %>
5
+
6
+ <%= "> #{action.deprecated_notes.gsub("\n\n", "\n")}" unless action.deprecated_notes.to_s.empty? %>
7
+
8
+ <% if @custom_content %>
9
+ <%= @custom_content %>
10
+ <hr />
11
+ <% else %>
12
+ <%= "> #{action.details.gsub("\n\n", "\n")}" unless action.details.to_s.empty? %>
13
+ <% end %>
14
+
15
+ <%= action.action_name %> |
16
+ -----|----
17
+ Supported platforms | <%= [:ios, :android, :mac].find_all { |a| action.is_supported?(a) }.join(", ") %>
18
+ Author | @<%= Array(action.author || action.authors).join(", @") %>
19
+ <%- unless action.return_value.to_s.empty? -%>
20
+ Returns | <%= action.return_value %>
21
+ <%- end -%>
22
+
23
+ <% if (action.example_code || []).count > 0 %>
24
+
25
+ **<%= action.example_code.count %> Example<%= (action.example_code.count > 1) ? "s" : "" %>**
26
+ <% action.example_code.each do |current_sample| %>
27
+ ```ruby
28
+ <%= current_sample.gsub(" ", "") %>
29
+ ```
30
+ <% end %><%# End of action.example_code... %>
31
+ <% end %><%# End of if %>
32
+
33
+ <% if action.available_options && action.available_options.first.kind_of?(FastlaneCore::ConfigItem) %>
34
+
35
+ **Parameters**
36
+
37
+ Key | Description
38
+ ----|------------
39
+ <%- (action.available_options || []).each do |config_item| -%>
40
+ <%- next unless config_item.kind_of?(FastlaneCore::ConfigItem) -%>
41
+ <%- next if config_item.description.to_s.length == 0 -%>
42
+ `<%= config_item.key %>` | <%= config_item.description %>
43
+ <%- end %>
44
+
45
+ <% end %><%# End of action.available_options... %>
46
+
47
+ <hr />
48
+ To show the documentation in your terminal, run
49
+ ```no-highlight
50
+ fastlane action <%= action.action_name %>
51
+ ```
52
+
53
+ <a href="https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/<%= action.action_name %>.rb" target="_blank">View source code</a>
54
+
55
+ <hr />
56
+
57
+ <a href="/actions"><b>Back to actions</b></a>
@@ -25,51 +25,11 @@ For _fastlane_ plugins, check out the [available plugins](https://docs.fastlane.
25
25
  <%- @categories.each do |category, actions| %>
26
26
  # <%= category %>
27
27
 
28
+ Action | Description
29
+ ---|---
28
30
  <%- actions.sort.to_h.each do |_number_of_launches, action| -%>
29
-
30
- ### <%= action.action_name %>
31
-
32
- <%= action.description %>
33
-
34
- <%= "> #{action.deprecated_notes.gsub("\n\n", "\n")}" unless action.deprecated_notes.to_s.empty? %>
35
-
36
- <%= "> #{action.details.gsub("\n\n", "\n")}" unless action.details.to_s.empty? %>
37
-
38
- <%= action.action_name %> |
39
- -----|----
40
- Supported platforms | <%= [:ios, :android, :mac].find_all { |a| action.is_supported?(a) }.join(", ") %>
41
- Author | @<%= Array(action.author || action.authors).join(", @") %>
42
- <%- unless action.return_value.to_s.empty? -%>
43
- Returns | <%= action.return_value %>
44
- <%- end -%>
45
-
46
- <% if (action.example_code || []).count > 0 %>
47
-
48
- <details>
49
- <summary><%= action.example_code.count %> Example<%= (action.example_code.count > 1) ? "s" : "" %></summary>
50
- <% action.example_code.each do |current_sample| %>
51
- ```ruby
52
- <%= current_sample.gsub(" ", "") %>
53
- ```
54
- <% end %><%# End of action.example_code... %>
55
- <% end %><%# End of if %>
56
- </details>
57
-
58
- <% if action.available_options && action.available_options.first.kind_of?(FastlaneCore::ConfigItem) %>
59
- <details>
60
- <summary>Parameters</summary>
61
-
62
- Key | Description
63
- ----|------------
64
- <%- (action.available_options || []).each do |config_item| -%>
65
- <%- next unless config_item.kind_of?(FastlaneCore::ConfigItem) -%>
66
- <%- next if config_item.description.to_s.length == 0 -%>
67
- `<%= config_item.key %>` | <%= config_item.description %>
68
- <%- end %>
69
- </details>
70
-
71
- <% end %><%# End of action.available_options... %>
72
-
73
- <%- end %><%# End of actions.sort... %>
31
+ <%- link = "/actions/#{action.action_name}" -%>
32
+ <a href="<%= link %>"><%= action.action_name %></a> | <%= action.description %>
33
+ <%- end %><%# End of actions.sort... %>
74
34
 
75
35
  <%- end %><%# End of categories.each %>
Binary file
@@ -0,0 +1,84 @@
1
+ <p align="center">
2
+ <img src="/img/actions/cert.png" width="250">
3
+ </p>
4
+
5
+ -------
6
+ <p align="center">
7
+ <a href="#why">Why?</a> &bull;
8
+ <a href="#usage">Usage</a> &bull;
9
+ <a href="#how-does-it-work">How does it work?</a> &bull;
10
+ <a href="#tips">Tips</a>
11
+ </p>
12
+
13
+ -------
14
+
15
+ <h5 align="center"><code>cert</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
16
+
17
+ ![/img/actions/cert.gif](/img/actions/cert.gif)
18
+
19
+ In the gif we used `cert && sigh`, which will first create an iOS code signing certificate and then a provisioning profile for your app if _cert_ succeeded.
20
+
21
+ ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
22
+
23
+ # Usage
24
+
25
+ **Note**: It is recommended to use [match](/actions/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
26
+
27
+ ```
28
+ fastlane cert
29
+ ```
30
+
31
+ This will check if any of the available signing certificates is installed on your local machine.
32
+
33
+ Only if a new certificate needs to be created, _cert_ will
34
+
35
+ - Create a new private key
36
+ - Create a new signing request
37
+ - Generate, downloads and installs the certificate
38
+ - Import all the generated files into your Keychain
39
+
40
+ _cert_ will never revoke your existing certificates. If you can't create any more certificates, _cert_ will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one.
41
+
42
+
43
+ You can pass your Apple ID:
44
+
45
+ ```no-highlight
46
+ fastlane cert -u cert@krausefx.com
47
+ ```
48
+
49
+ For a list of available commands run
50
+
51
+ ```no-highlight
52
+ fastlane cert --help
53
+ ```
54
+
55
+ Keep in mind, there is no way for _cert_ to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.
56
+
57
+ ## Environment Variables
58
+
59
+ Run `fastlane action cert` to get a list of all available environment variables.
60
+
61
+ ## Use with [_sigh_](https://github.com/fastlane/fastlane/tree/master/sigh)
62
+
63
+ _cert_ becomes really interesting when used in [_fastlane_](https://github.com/fastlane/fastlane/tree/master/fastlane) in combination with [_sigh_](https://github.com/fastlane/fastlane/tree/master/sigh).
64
+
65
+ Update your `Fastfile` to contain the following code:
66
+
67
+ ```ruby
68
+ lane :beta do
69
+ cert
70
+ sigh(force: true)
71
+ end
72
+ ```
73
+
74
+ `force: true` will make sure to re-generate the provisioning profile on each run.
75
+ This will result in _sigh_ always using the correct signing certificate, which is installed on the local machine.
76
+
77
+
78
+ ## How is my password stored?
79
+ _cert_ uses the [password manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_. Take a look the [CredentialsManager README](https://github.com/fastlane/fastlane/blob/master/credentials_manager/README.md) for more information.
80
+
81
+ # Tips
82
+
83
+ ## Use the 'Provisioning Quicklook plugin'
84
+ Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning) to easily preview provisioning profile files and certificates.
@@ -0,0 +1,674 @@
1
+ <p align="center">
2
+ <img src="/img/actions/deliver.png" width="250">
3
+ </p>
4
+
5
+ _deliver_ uploads screenshots, metadata and binaries to iTunes Connect. Use _deliver_ to submit your app for App Store review.
6
+
7
+ -------
8
+
9
+ <p align="center">
10
+ <a href="#features">Features</a> &bull;
11
+ <a href="#quick-start">Quick Start</a> &bull;
12
+ <a href="#usage">Usage</a> &bull;
13
+ <a href="#tips">Tips</a>
14
+ </p>
15
+
16
+ -------
17
+
18
+ <h5 align="center"><code>deliver</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
19
+
20
+ # Features
21
+ - Upload hundreds of localised screenshots completely automatically
22
+ - Upload a new ipa/pkg file to iTunes Connect without Xcode from any Mac
23
+ - Maintain your app metadata locally and push changes back to iTunes Connect
24
+ - Easily implement a real Continuous Deployment process using [fastlane](https://fastlane.tools)
25
+ - Store the configuration in git to easily deploy from **any** Mac, including your Continuous Integration server
26
+ - Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC
27
+ - Automatically uses [precheck](/actions/precheck) to ensure your app has the highest chances of passing app review the first time
28
+
29
+ To upload builds to TestFlight check out [pilot](/actions/pilot).
30
+
31
+ ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
32
+
33
+ # Quick Start
34
+
35
+ The guide will create all the necessary files for you, using the existing app metadata from iTunes Connect.
36
+
37
+ - ```cd [your_project_folder]```
38
+ - ```fastlane deliver init```
39
+ - Enter your iTunes Connect credentials
40
+ - Enter your app identifier
41
+ - Enjoy a good drink, while the computer does all the work for you
42
+
43
+ From now on, you can run `fastlane deliver` to deploy a new update, or just upload new app metadata and screenshots.
44
+
45
+ # Usage
46
+
47
+ Check out your local `./fastlane/metadata` and `./fastlane/screenshots` folders (if you don't use [fastlane](https://fastlane.tools) it's `./metadata` instead)
48
+
49
+ ![/img/actions/deliver_metadata.png](/img/actions/deliver_metadata.png)
50
+
51
+ You'll see your metadata from iTunes Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to iTunes Connect.
52
+
53
+ Run `fastlane deliver` to upload the app metadata from your local machine
54
+
55
+ ```no-highlight
56
+ fastlane deliver
57
+ ```
58
+
59
+ Provide the path to an `ipa` file to upload and submit your app for review:
60
+
61
+ ```no-highlight
62
+ fastlane deliver --ipa "App.ipa" --submit_for_review
63
+ ```
64
+
65
+ or you can specify path to `pkg` file for macOS apps:
66
+
67
+ ```no-highlight
68
+ fastlane deliver --pkg "MacApp.pkg"
69
+ ```
70
+
71
+ If you use [fastlane](https://fastlane.tools) you don't have to manually specify the path to your `ipa`/`pkg` file.
72
+
73
+ This is just a small sub-set of what you can do with _deliver_, check out the full documentation in [#more-options](#more-options)
74
+
75
+ Download existing screenshots from iTunes Connect
76
+
77
+ ```no-highlight
78
+ fastlane deliver download_screenshots
79
+ ```
80
+
81
+ Download existing metadata from iTunes Connect
82
+
83
+ ```no-highlight
84
+ fastlane deliver download_metadata
85
+ ```
86
+
87
+ To get a list of available options run
88
+
89
+ ```no-highlight
90
+ fastlane action deliver
91
+ ```
92
+
93
+ Select a previously uploaded build and submit it for review.
94
+
95
+ ```no-highlight
96
+ fastlane deliver submit_build --build_number 830
97
+ ```
98
+
99
+ ### Use in a `Fastfile`
100
+
101
+ ```ruby
102
+ deliver
103
+ ```
104
+
105
+ ```ruby
106
+ deliver(
107
+ submit_for_review: true,
108
+ force: true,
109
+ metadata_path: "./metadata"
110
+ )
111
+ ```
112
+
113
+ ## More options
114
+
115
+ <details>
116
+ <summary>View all available options and its valid values</summary>
117
+
118
+ ## Available options
119
+
120
+ All the options below can easily be added to your `Deliverfile`. The great thing: if you use _fastlane_ you can use all these options from your `Fastfile` too, for example:
121
+
122
+ ```ruby
123
+ deliver(
124
+ submit_for_review: true,
125
+ metadata_path: "../folder"
126
+ )
127
+ ```
128
+
129
+ ##### app_identifier
130
+ The bundle identifier (e.g. "com.krausefx.app")
131
+
132
+ ##### username
133
+ Your Apple ID email address
134
+
135
+ ##### ipa
136
+ A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use `fastlane deliver --submit_for_review` or add `submit_for_review true` to your `Deliverfile`
137
+
138
+ ```ruby-skip-tests
139
+ ipa "App.ipa"
140
+ ```
141
+
142
+ if you use [fastlane](https://fastlane.tools) the ipa file will automatically be detected.
143
+
144
+ ##### pkg
145
+ A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files.
146
+ ```ruby-skip-tests
147
+ pkg "MacApp.pkg"
148
+ ```
149
+
150
+ ##### app_version
151
+
152
+ Optional, as it is usually automatically detected. Specify the version that should be created / edited on iTunes Connect:
153
+
154
+ ```ruby-skip-tests
155
+ app_version "2.0"
156
+ ```
157
+
158
+ ##### skip_app_version_update
159
+
160
+ In the case if _deliver_ uploads your application to iTunes Connect it will automatically update "Prepare for submission" app version (which could be found on iTunes Connect->My Apps->App Store page)
161
+
162
+ The option allows uploading your app without updating "Prepare for submission" version.
163
+
164
+ This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review.
165
+
166
+ The default value is false.
167
+
168
+ ```ruby-skip-tests
169
+ skip_app_version_update true
170
+ ```
171
+
172
+ ##### submit_for_review
173
+
174
+ Add this to your `Deliverfile` to automatically submit the app for review after uploading metadata/binary. This will select the latest build.
175
+
176
+ ```ruby-skip-tests
177
+ submit_for_review true
178
+ ```
179
+
180
+ ##### screenshots_path
181
+ A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes  Watch Support.
182
+
183
+ ![/img/actions/deliver_screenshots.png](/img/actions/deliver_screenshots.png)
184
+
185
+ ##### metadata_path
186
+ Path to the metadata you want to use. The folder has to be structured like this
187
+
188
+ ![/img/actions/deliver_metadata.png](/img/actions/deliver_metadata.png)
189
+
190
+ If you run `deliver init` this will automatically be created for you.
191
+
192
+ ##### force
193
+
194
+ ```ruby-skip-tests
195
+ force true
196
+ ```
197
+ If set to `true`, no HTML report will be generated before the actual upload. You can also pass `--force` when calling _deliver_.
198
+
199
+
200
+ ##### price_tier
201
+ Pass the price tier as number. This will be active from the current day.
202
+ ```ruby-skip-tests
203
+ price_tier 0
204
+ ```
205
+ ##### trade_representative_contact_information
206
+ Trade Representative Contact information for Korean App Store. Available options: `first_name`, `last_name`, `address_line1`, `address_line2`, `address_line3`, `city_name`, `state`, `country`, `postal_code`, `phone_number`, `email_address`, `is_displayed_on_app_store`.
207
+
208
+
209
+ ```ruby-skip-tests
210
+ trade_representative_contact_information(
211
+ first_name: "Felix",
212
+ last_name: "Krause",
213
+ address_line1: "1 Infinite Loop",
214
+ address_line2: "",
215
+ address_line3: null,
216
+ city_name: "Cupertino",
217
+ state: "California",
218
+ country: "United States",
219
+ postal_code: "95014",
220
+ phone_number: "+43 123123123",
221
+ email_address: "github@krausefx.com",
222
+ )
223
+ ```
224
+
225
+ You can also provide these values by creating files in a `metadata/trade_representative_contact_information/` directory. The file names must match the pattern `<key>.txt` (e.g. `first_name.txt`, `address_line1.txt` etc.). The contents of each file will be used as the value for the matching key. Values provided in the `Deliverfile` or `Fastfile` will be take priority over values from these files.
226
+
227
+ `is_displayed_on_app_store` is the option on iTunes Connect described as: `Display Trade Representative Contact Information on the Korean App Store`
228
+
229
+ ##### app_review_information
230
+ Contact information for the app review team. Available options: `first_name`, `last_name`, `phone_number`, `email_address`, `demo_user`, `demo_password`, `notes`.
231
+
232
+
233
+ ```ruby-skip-tests
234
+ app_review_information(
235
+ first_name: "Felix",
236
+ last_name: "Krause",
237
+ phone_number: "+43 123123123",
238
+ email_address: "github@krausefx.com",
239
+ demo_user: "demoUser",
240
+ demo_password: "demoPass",
241
+ notes: "such notes, very text"
242
+ )
243
+ ```
244
+
245
+ You can also provide these values by creating files in a `metadata/review_information/` directory. The file names must match the pattern `<key>.txt` (e.g. `first_name.txt`, `notes.txt` etc.). The contents of each file will be used as the value for the matching key. Values provided in the `Deliverfile` or `Fastfile` will be take priority over values from these files.
246
+
247
+ ##### submission_information
248
+ Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. [A list of available options](https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/tunes/app_submission.rb#L18-L69).
249
+
250
+ ```ruby-skip-tests
251
+ submission_information({
252
+ add_id_info_serves_ads: true,
253
+ ...
254
+ })
255
+ ```
256
+
257
+ ##### automatic_release
258
+ Should the app be released to all users once Apple approves it? If set to `false`, you'll have to manually release the update once it got approved.
259
+
260
+ ```ruby-skip-tests
261
+ automatic_release true
262
+ # or
263
+ automatic_release false
264
+ ```
265
+
266
+ ##### phased_release
267
+
268
+ Enable or disable the phased releases feature of iTunes Connect. If set to `true`, the update will be released over a 7 day period. Default behavior is to leave whatever you defined on iTunes Connect.
269
+
270
+ ```ruby-skip-tests
271
+ phased_release true
272
+ # or
273
+ phased_release false
274
+ ```
275
+
276
+ ##### app_rating_config_path
277
+ You can set the app age ratings using _deliver_. You'll have to create and store a `JSON` configuration file. Copy the [template](https://github.com/fastlane/fastlane/blob/master/deliver/assets/example_rating_config.json) to your project folder and pass the path to the `JSON` file using the `app_rating_config_path` option.
278
+
279
+ The keys/values on the top allow values from 0-2, and the items on the bottom allow only 0 or 1. More information in [#reference](#reference).
280
+
281
+
282
+ ## Metadata
283
+
284
+ All options below are useful if you want to specify certain app metadata in your `Deliverfile` or `Fastfile`
285
+
286
+ ### Localised
287
+
288
+ Localised values should be set like this
289
+
290
+ ```ruby-skip-tests
291
+ description({
292
+ 'en-US' => "English Description here",
293
+ 'de-DE' => "Deutsche Beschreibung hier"
294
+ })
295
+ ```
296
+
297
+ ##### name
298
+ The title/name of the app
299
+
300
+ ##### subtitle
301
+
302
+ Localised subtitle of the app
303
+
304
+ ```ruby-skip-tests
305
+ subtitle(
306
+ "en-US" => "Awesome English subtitle here",
307
+ "de-DE" => "Jetzt mit deutschen Untertiteln!"
308
+ )
309
+ ```
310
+
311
+ ##### description
312
+ The description of the app
313
+
314
+ ##### release_notes
315
+ The release_notes (What's new / Changelog) of the latest version
316
+
317
+ ##### support_url, marketing_url, privacy_url
318
+ These URLs are shown in the AppStore
319
+
320
+ ##### keywords
321
+
322
+ Keywords separated using a comma.
323
+
324
+ ```ruby-skip-tests
325
+ keywords(
326
+ "en-US" => "Keyword1, Keyword2"
327
+ )
328
+ ```
329
+
330
+ ##### promotional_text
331
+
332
+ Localised promotional text
333
+
334
+ ```ruby-skip-tests
335
+ promotional_text(
336
+ "en-US" => "Hey, you should totally buy our app, it's the best",
337
+ "de-DE" => "App kaufen bitte"
338
+ )
339
+ ```
340
+
341
+ ##### app_icon
342
+ A path to a new app icon, which must be exactly 1024x1024px
343
+ ```ruby-skip-tests
344
+ app_icon './AppIcon.png'
345
+ ```
346
+
347
+ ##### apple_watch_app_icon
348
+ A path to a new app icon for the  Watch, which must be exactly 1024x1024px
349
+ ```ruby-skip-tests
350
+ apple_watch_app_icon './AppleWatchAppIcon.png'
351
+ ```
352
+
353
+ ##### platform
354
+
355
+ The platform of your application (a.e. ios, osx).
356
+
357
+ This option is optional. The default value is "ios" and deliver should be able to figure out the platform from your binary.
358
+
359
+ However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly.
360
+
361
+ The available options:
362
+
363
+ - 'ios'
364
+ - 'appletvos'
365
+ - 'osx'
366
+
367
+
368
+ ### Non-Localised
369
+
370
+ ##### copyright
371
+ The up to date copyright information.
372
+ ```ruby-skip-tests
373
+ copyright "#{Time.now.year} Felix Krause"
374
+ ```
375
+
376
+ ##### primary_category
377
+ The english name of the category you want to set (e.g. `Business`, `Books`)
378
+
379
+ See [#reference](#reference) for a list of available categories
380
+
381
+ ##### secondary_category
382
+ The english name of the secondary category you want to set
383
+
384
+ ##### primary_first_sub_category
385
+ The english name of the primary first sub category you want to set
386
+
387
+ ##### primary_second_sub_category
388
+ The english name of the primary second sub category you want to set
389
+
390
+ ##### secondary_first_sub_category
391
+ The english name of the secondary first sub category you want to set
392
+
393
+ ##### secondary_second_sub_category
394
+ The english name of the secondary second sub category you want to set
395
+ </details>
396
+
397
+ # Credentials
398
+
399
+ A detailed description about how your credentials are handled is available in a [credentials_manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager).
400
+
401
+ ### How does this thing even work? Is magic involved? 🎩
402
+
403
+ Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on [CredentialsManager](https://github.com/fastlane/fastlane/tree/master/credentials_manager))
404
+
405
+ Before actually uploading anything to iTunes, _deliver_ will generate a HTML summary of the collected data.
406
+
407
+ _deliver_ uses the following techniques under the hood:
408
+
409
+ - The iTMSTransporter tool is used to upload the binary to iTunes Connect. iTMSTransporter is a command line tool provided by Apple.
410
+ - For all metadata related actions _deliver_ uses [spaceship](https://github.com/fastlane/fastlane/tree/master/spaceship)
411
+
412
+ # Tips
413
+
414
+ ## Available language codes
415
+ ```
416
+ no, en-US, en-CA, fi, ru, zh-Hans, nl-NL, zh-Hant, en-AU, id, de-DE, sv, ko, ms, pt-BR, el, es-ES, it, fr-CA, es-MX, pt-PT, vi, th, ja, fr-FR, da, tr, en-GB
417
+ ```
418
+
419
+ ## Reference
420
+
421
+ <details>
422
+ <summary>View all available categories, languages, etc.</summary>
423
+
424
+ ### Available Categories
425
+
426
+ You can always prefix the category using `MZGenre.` (e.g. `MZGenre.Book`). _deliver_ supports both notations.
427
+
428
+ - `Book`
429
+ - `Business`
430
+ - `Apps.Catalogs`
431
+ - `Education`
432
+ - `Entertainment`
433
+ - `Finance`
434
+ - `Apps.Food_Drink`
435
+ - `Games`
436
+ - `Healthcare_Fitness`
437
+ - `Lifestyle`
438
+ - `Medical`
439
+ - `Music`
440
+ - `Navigation`
441
+ - `News`
442
+ - `Apps.Newsstand`
443
+ - `Photography`
444
+ - `Productivity`
445
+ - `Reference`
446
+ - `Apps.Shopping`
447
+ - `SocialNetworking`
448
+ - `Sports`
449
+ - `Stickers`
450
+ - `Travel`
451
+ - `Utilities`
452
+ - `Weather`
453
+
454
+ ### Available Game Subcategories
455
+
456
+ - `MZGenre.Action`
457
+ - `MZGenre.Adventure`
458
+ - `MZGenre.Arcade`
459
+ - `MZGenre.Board`
460
+ - `MZGenre.Card`
461
+ - `MZGenre.Casino`
462
+ - `MZGenre.Dice`
463
+ - `MZGenre.Educational`
464
+ - `MZGenre.Family`
465
+ - `MZGenre.Music`
466
+ - `MZGenre.Puzzle`
467
+ - `MZGenre.Racing`
468
+ - `MZGenre.RolePlaying`
469
+ - `MZGenre.Simulation`
470
+ - `MZGenre.Sports`
471
+ - `MZGenre.Strategy`
472
+ - `MZGenre.Trivia`
473
+ - `MZGenre.Word`
474
+
475
+ ### Available Magazines & Newspapers Subcategories
476
+
477
+ - `MZGenre.Apps.Arts_Photography`
478
+ - `MZGenre.Apps.Automotive`
479
+ - `MZGenre.Apps.Brides_Weddings`
480
+ - `MZGenre.Apps.Business_Investing`
481
+ - `MZGenre.Apps.Childrens_Magazines`
482
+ - `MZGenre.Apps.Computers_Internet`
483
+ - `MZGenre.Apps.Cooking_Food_Drink`
484
+ - `MZGenre.Apps.Crafts_Hobbies`
485
+ - `MZGenre.Apps.Electronics_Audio`
486
+ - `MZGenre.Apps.Entertainment`
487
+ - `MZGenre.Apps.Fashion_Style`
488
+ - `MZGenre.Apps.Health_Mind_Body`
489
+ - `MZGenre.Apps.History`
490
+ - `MZGenre.Apps.Home_Garden`
491
+ - `MZGenre.Apps.Literary_Magazines_Journals`
492
+ - `MZGenre.Apps.Mens_Interest`
493
+ - `MZGenre.Apps.Movies_Music`
494
+ - `MZGenre.Apps.News_Politics`
495
+ - `MZGenre.Apps.Outdoors_Nature`
496
+ - `MZGenre.Apps.Parenting_Family`
497
+ - `MZGenre.Apps.Pets`
498
+ - `MZGenre.Apps.Professional_Trade`
499
+ - `MZGenre.Apps.Regional_News`
500
+ - `MZGenre.Apps.Science`
501
+ - `MZGenre.Apps.Sports_Leisure`
502
+ - `MZGenre.Apps.Teens`
503
+ - `MZGenre.Apps.Travel_Regional`
504
+ - `MZGenre.Apps.Womens_Interest`
505
+
506
+ ### Available Stickers Subcategories
507
+
508
+ - `MZGenre.Apps.Stickers.Animals`
509
+ - `MZGenre.Apps.Stickers.Art`
510
+ - `MZGenre.Apps.Stickers.BirthdaysAndCelebrations`
511
+ - `MZGenre.Apps.Stickers.Celebrities`
512
+ - `MZGenre.Apps.Stickers.Characters`
513
+ - `MZGenre.Apps.Stickers.FoodAndDrink`
514
+ - `MZGenre.Apps.Stickers.Emotions`
515
+ - `MZGenre.Apps.Stickers.Fashion`
516
+ - `MZGenre.Apps.Stickers.Games`
517
+ - `MZGenre.Apps.Stickers.KidsAndFamily`
518
+ - `MZGenre.Apps.Stickers.MoviesAndTV`
519
+ - `MZGenre.Apps.Stickers.Music`
520
+ - `MZGenre.Apps.Stickers.People`
521
+ - `MZGenre.Apps.Stickers.Places`
522
+ - `MZGenre.Apps.Stickers.Sports`
523
+
524
+ ### Available Languages
525
+
526
+ - `da`
527
+ - `de-DE`
528
+ - `el`
529
+ - `en-AU`
530
+ - `en-CA`
531
+ - `en-GB`
532
+ - `en-US`
533
+ - `es-ES`
534
+ - `es-MX`
535
+ - `fi`
536
+ - `fr-CA`
537
+ - `fr-FR`
538
+ - `id`
539
+ - `it`
540
+ - `ja`
541
+ - `ko`
542
+ - `ms`
543
+ - `nl-NL`
544
+ - `no`
545
+ - `pt-BR`
546
+ - `pt-PT`
547
+ - `ru`
548
+ - `sv`
549
+ - `th`
550
+ - `tr`
551
+ - `vi`
552
+ - `zh-Hans`
553
+ - `zh-Hant`
554
+
555
+ ### Available age rating groups
556
+
557
+ #### Non Boolean
558
+
559
+ **Values**
560
+
561
+ - 0: None
562
+ - 1: Infrequent/Mild
563
+ - 2: Frequent/Intense
564
+
565
+ **Keys**
566
+
567
+ - `CARTOON_FANTASY_VIOLENCE`
568
+ - `REALISTIC_VIOLENCE`
569
+ - `PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE`
570
+ - `PROFANITY_CRUDE_HUMOR`
571
+ - `MATURE_SUGGESTIVE`
572
+ - `HORROR`
573
+ - `MEDICAL_TREATMENT_INFO`
574
+ - `ALCOHOL_TOBACCO_DRUGS`
575
+ - `GAMBLING`
576
+ - `SEXUAL_CONTENT_NUDITY`
577
+ - `GRAPHIC_SEXUAL_CONTENT_NUDITY`
578
+
579
+ #### Boolean
580
+
581
+ **Keys**
582
+
583
+ - `UNRESTRICTED_WEB_ACCESS`
584
+ - `GAMBLING_CONTESTS`
585
+ </details>
586
+
587
+ <br />
588
+
589
+ ## Default values
590
+
591
+ Deliver has a special `default` language code which allows you to provide values that are not localised, and which will be used as defaults when you don’t provide a specific localised value.
592
+
593
+ In order to use `default`, you will need to tell _deliver_ which languages your app uses. You can do this in either of two ways:
594
+ 1. Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE)
595
+ 2. Add the following to your `Deliverfile` `languages(['en-US','de-DE'])`
596
+
597
+ You can use this either in json within your `Deliverfile` and/or as folders in your metadata folder. _deliver_ will take the union of both language sets from the `Deliverfile` and from the metadata folder and create on single set of languages which will be enabled.
598
+
599
+ Imagine that you have localised data for the following language codes: ```en-US, de-DE, el, it```
600
+
601
+ You can set the following in your `Deliverfile`
602
+
603
+ ```ruby-skip-tests
604
+ release_notes({
605
+ 'default' => "Shiny and new",
606
+ 'de-DE' => "glaenzend und neu"
607
+ })
608
+ ```
609
+
610
+ Deliver will use "Shiny and new" for en-US, el and it.
611
+
612
+ It will use "glaenzend und neu" for de-DE.
613
+
614
+ You can do the same with folders
615
+
616
+ ```
617
+ default
618
+ keywords.txt
619
+ marketing_url.txt
620
+ name.txt
621
+ privacy_url.txt
622
+ support_url.txt
623
+ release_notes.txt
624
+ en-US
625
+ description.txt
626
+ de-DE
627
+ description.txt
628
+ el
629
+ description.txt
630
+ it
631
+ description.txt
632
+ ```
633
+
634
+ In this case, default values for keywords, urls, name and release notes are used in all localisations, but each language has a fully localised description
635
+
636
+
637
+
638
+ ## Automatically create screenshots
639
+
640
+ If you want to integrate _deliver_ with [snapshot](https://github.com/fastlane/fastlane/tree/master/snapshot), check out [fastlane](https://fastlane.tools)!
641
+
642
+ ## Jenkins integration
643
+ Detailed instructions about how to set up _deliver_ and _fastlane_ in `Jenkins` can be found in the [fastlane README](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Jenkins.md).
644
+
645
+ ## Firewall Issues
646
+
647
+ _deliver_ uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using
648
+
649
+ ```
650
+ DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" fastlane deliver
651
+ ```
652
+
653
+ ## HTTP Proxy
654
+ iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the `DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV"`, you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode:
655
+
656
+ ```bash
657
+ TOOLS_PATH=$( xcode-select -p )
658
+ REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties'
659
+ echo "$TOOLS_PATH/$REL_PATH"
660
+ ```
661
+
662
+ Add necessary proxy configuration values to the net.properties according to [Java Proxy Configuration](http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html).
663
+
664
+ As an alternative to editing the properties files, proxy configuration can be specified on the command line directly:
665
+
666
+ ```bash
667
+ DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080"
668
+ ```
669
+
670
+ ## Limit
671
+ iTunes Connect has a limit of 150 binary uploads per day.
672
+
673
+ ## Editing the `Deliverfile`
674
+ Change syntax highlighting to *Ruby*.
@@ -0,0 +1,240 @@
1
+ <p align="center">
2
+ <img src="/img/actions/gym.png" width="250">
3
+ </p>
4
+
5
+ -------
6
+
7
+ <p align="center">
8
+ <a href="#whats-gym">Features</a> &bull;
9
+ <a href="#usage">Usage</a> &bull;
10
+ <a href="#tips">Tips</a>
11
+ </p>
12
+
13
+ -------
14
+
15
+ <h5 align="center"><code>gym</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
16
+
17
+ # What's gym?
18
+
19
+ _gym_ builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed `ipa` or `app` file :muscle:
20
+
21
+ _gym_ is a replacement for [shenzhen](https://github.com/nomad/shenzhen).
22
+
23
+ ### Before _gym_
24
+
25
+ ```
26
+ xcodebuild clean archive -archivePath build/MyApp \
27
+ -scheme MyApp
28
+ xcodebuild -exportArchive \
29
+ -exportFormat ipa \
30
+ -archivePath "build/MyApp.xcarchive" \
31
+ -exportPath "build/MyApp.ipa" \
32
+ -exportProvisioningProfile "ProvisioningProfileName"
33
+ ```
34
+
35
+ ### With _gym_
36
+
37
+ ```
38
+ fastlane gym
39
+ ```
40
+
41
+ ### Why _gym_?
42
+
43
+ _gym_ uses the latest APIs to build and sign your application which results in much faster build times.
44
+
45
+ | | Gym Features |
46
+ |----------|----------------|
47
+ :rocket: | _gym_ builds 30% faster than other build tools like [shenzhen](https://github.com/nomad/shenzhen)
48
+ :checkered_flag: | Beautiful inline build output
49
+ :book: | Helps you resolve common build errors like code signing issues
50
+ :mountain_cableway: | Sensible defaults: Automatically detect the project, its schemes and more
51
+ :link: | Works perfectly with [fastlane](https://fastlane.tools) and other tools
52
+ :package: | Automatically generates an `ipa` and a compressed `dSYM` file
53
+ :bullettrain_side: | Don't remember any complicated build commands, just _gym_
54
+ :wrench: | Easy and dynamic configuration using parameters and environment variables
55
+ :floppy_disk: | Store common build settings in a `Gymfile`
56
+ :outbox_tray: | All archives are stored and accessible in the Xcode Organizer
57
+ :computer: | Supports both iOS and Mac applications
58
+
59
+ ![/img/actions/gymScreenshot.png](/img/actions/gymScreenshot.png)
60
+
61
+ -----
62
+
63
+ ![/img/actions/gym.gif](/img/actions/gym.gif)
64
+
65
+ # Usage
66
+
67
+ ```no-highlight
68
+ fastlane gym
69
+ ```
70
+
71
+ That's all you need to build your application. If you want more control, here are some available parameters:
72
+
73
+ ```no-highlight
74
+ fastlane gym --workspace "Example.xcworkspace" --scheme "AppName" --clean
75
+ ```
76
+
77
+ If you need to use a different Xcode installation, use `xcode-select` or define `DEVELOPER_DIR`:
78
+
79
+ ```no-highlight
80
+ DEVELOPER_DIR="/Applications/Xcode6.2.app" fastlane gym
81
+ ```
82
+
83
+ For a list of all available parameters use
84
+
85
+ ```
86
+ fastlane action gym
87
+ ```
88
+
89
+ If you run into any issues, use the `verbose` mode to get more information
90
+
91
+ ```no-highlight
92
+ fastlane gym --verbose
93
+ ```
94
+
95
+ Set the right export method if you're not uploading to App Store or TestFlight:
96
+
97
+ ```no-highlight
98
+ fastlane gym --export_method ad-hoc
99
+ ```
100
+
101
+ To pass boolean parameters make sure to use _gym_ like this:
102
+
103
+ ```no-highlight
104
+ fastlane gym --include_bitcode true --include_symbols false
105
+ ```
106
+
107
+ To access the raw `xcodebuild` output open `~/Library/Logs/gym`
108
+
109
+ # Gymfile
110
+
111
+ Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called `Gymfile`.
112
+
113
+ Run `fastlane gym init` to create a new configuration file. Example:
114
+
115
+ ```ruby-skip-tests
116
+ scheme "Example"
117
+
118
+ sdk "iphoneos9.0"
119
+
120
+ clean true
121
+
122
+ output_directory "./build" # store the ipa in this folder
123
+ output_name "MyApp" # the name of the ipa file
124
+ ```
125
+
126
+ ## Export options
127
+
128
+ Since Xcode 7, _gym_ is using new Xcode API which allows us to specify export options using `plist` file. By default _gym_ creates this file for you and you are able to modify some parameters by using `export_method`, `export_team_id`, `include_symbols` or `include_bitcode`. If you want to have more options, like creating manifest file for app thinning, you can provide your own `plist` file:
129
+
130
+ ```ruby-skip-tests
131
+ export_options "./ExportOptions.plist"
132
+ ```
133
+
134
+ or you can provide hash of values directly in the `Gymfile`:
135
+
136
+ ```ruby-skip-tests
137
+ export_options(
138
+ method: "ad-hoc",
139
+ manifest: {
140
+ appURL: "https://example.com/My App.ipa",
141
+ },
142
+ thinning: "<thin-for-all-variants>"
143
+ )
144
+ ```
145
+
146
+ Optional: If _gym_ can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles:
147
+
148
+ ```ruby-skip-tests
149
+ export_options(
150
+ method: "app-store",
151
+ provisioningProfiles: {
152
+ "com.example.bundleid" => "Provisioning Profile Name",
153
+ "com.example.bundleid2" => "Provisioning Profile Name 2"
154
+ }
155
+ )
156
+ ```
157
+
158
+ **Note**: If you use [fastlane](https://fastlane.tools) with [match](https://fastlane.tools/match) you don't need to provide those values manually.
159
+
160
+ For the list of available options run `xcodebuild -help`.
161
+
162
+ ## Setup code signing
163
+
164
+ - [More information on how to get started with codesigning](https://docs.fastlane.tools/codesigning/getting-started/)
165
+ - [Docs on how to set up your Xcode project](https://docs.fastlane.tools/codesigning/xcode-project/)
166
+
167
+ ## Automating the whole process
168
+
169
+ _gym_ works great together with [fastlane](https://fastlane.tools), which connects all deployment tools into one streamlined workflow.
170
+
171
+ Using _fastlane_ you can define a configuration like
172
+
173
+ ```ruby
174
+ lane :beta do
175
+ scan
176
+ gym(scheme: "MyApp")
177
+ crashlytics
178
+ end
179
+
180
+ # error block is executed when a error occurs
181
+ error do |lane, exception|
182
+ slack(
183
+ # message with short human friendly message
184
+ message: exception.to_s,
185
+ success: false,
186
+ # Output containing extended log output
187
+ payload: { "Output" => exception.error_info.to_s }
188
+ )
189
+ end
190
+ ```
191
+
192
+ When _gym_ raises an error the `error_info` property will contain the process output
193
+ in case you want to display the error in 3rd party tools such as Slack.
194
+
195
+ You can then easily switch between the beta provider (e.g. `testflight`, `hockey`, `s3` and more).
196
+
197
+ For more information visit the [fastlane GitHub page](https://github.com/fastlane/fastlane/tree/master/fastlane).
198
+
199
+ # How does it work?
200
+
201
+ _gym_ uses the latest APIs to build and sign your application. The 2 main components are
202
+
203
+ - `xcodebuild`
204
+ - [xcpretty](https://github.com/supermarin/xcpretty)
205
+
206
+ When you run _gym_ without the `--silent` mode it will print out every command it executes.
207
+
208
+ To build the archive _gym_ uses the following command:
209
+
210
+ ```
211
+ set -o pipefail && \
212
+ xcodebuild -scheme 'Example' \
213
+ -project './Example.xcodeproj' \
214
+ -configuration 'Release' \
215
+ -destination 'generic/platform=iOS' \
216
+ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \
217
+ archive | xcpretty
218
+ ```
219
+
220
+ After building the archive it is being checked by _gym_. If it's valid, it gets packaged up and signed into an `ipa` file.
221
+
222
+ _gym_ automatically chooses a different packaging method depending on the version of Xcode you're using.
223
+
224
+ ### Xcode 7 and above
225
+
226
+ ```
227
+ /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \
228
+ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \
229
+ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \
230
+ -exportPath '/tmp/1442852529'
231
+ ```
232
+
233
+ _gym_ makes use of the new Xcode 7 API which allows us to specify the export options using a `plist` file. You can find more information about the available options by running `xcodebuild --help`.
234
+
235
+ Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary.
236
+
237
+ Note: the [xcbuild-safe.sh script](https://github.com/fastlane/fastlane/tree/master/gym/lib//img/actions/wrap_xcodebuild/xcbuild-safe.sh) wraps around xcodebuild to workaround some incompatibilities.
238
+
239
+ ## Use the 'Provisioning Quicklook plugin'
240
+ Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning).
@@ -43,14 +43,54 @@ module Fastlane
43
43
  @_launches ||= JSON.parse(File.read(File.join(Fastlane::ROOT, "assets/action_ranking.json"))) # root because we're in a temporary directory here
44
44
  end
45
45
 
46
- def generate!(target_path: "docs/Actions.md")
47
- template = File.join(Fastlane::ROOT, "lib/assets/Actions.md.erb")
46
+ def generate!(target_path: nil)
47
+ require 'yaml'
48
+ FileUtils.mkdir_p(target_path)
49
+ docs_dir = File.join(target_path, "docs")
50
+ custom_action_docs = "lib/fastlane/actions/docs/"
48
51
 
52
+ # Generate actions.md
53
+ template = File.join(Fastlane::ROOT, "lib/assets/Actions.md.erb")
49
54
  result = ERB.new(File.read(template), 0, '-').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
50
- UI.verbose(result)
55
+ File.write(File.join(docs_dir, "actions.md"), result)
56
+
57
+ # Generate actions sub pages (e.g. actions/slather.md, actions/scan.md)
58
+ all_actions_ref_yml = []
59
+ FileUtils.mkdir_p(File.join(docs_dir, "actions"))
60
+ ActionsList.all_actions do |action|
61
+ # check if there is a custom detail view in markdown available in the fastlane code base
62
+ custom_file_location = File.join(Fastlane::ROOT, custom_action_docs, "#{action.action_name}.md")
63
+ @custom_content = nil # important, as we're in a loop and using @ variables
64
+ if File.exist?(custom_file_location)
65
+ UI.verbose("Using custom md file for action #{action.action_name}")
66
+ @custom_content = File.read(custom_file_location)
67
+ end
68
+
69
+ template = File.join(Fastlane::ROOT, "lib/assets/ActionDetails.md.erb")
70
+ @action = action # to provide a reference in the .html.erb template
71
+ result = ERB.new(File.read(template), 0, '-').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
72
+
73
+ file_name = File.join("actions", "#{action.action_name}.md")
74
+ File.write(File.join(docs_dir, file_name), result)
75
+
76
+ all_actions_ref_yml << { action.action_name => file_name }
77
+ end
78
+
79
+ # Modify the mkdocs.yml to list all the actions
80
+ mkdocs_yml_path = File.join(target_path, "mkdocs.yml")
81
+ raise "Could not find mkdocs.yml in #{target_path}, make sure to point to the fastlane/docs repo" unless File.exist?(mkdocs_yml_path)
82
+ mkdocs_yml = YAML.load_file(mkdocs_yml_path)
83
+ hidden_actions_array = mkdocs_yml["pages"].find { |p| !p["_Actions"].nil? }
84
+ hidden_actions_array["_Actions"] = all_actions_ref_yml
85
+ File.write(mkdocs_yml_path, mkdocs_yml.to_yaml)
86
+
87
+ # Copy over the assets from the `actions/docs/assets` directory
88
+ Dir[File.join(custom_action_docs, "assets", "*")].each do |current_asset_path|
89
+ UI.message("Copying asset #{current_asset_path}")
90
+ FileUtils.cp(current_asset_path, File.join(docs_dir, "img", "actions", File.basename(current_asset_path)))
91
+ end
51
92
 
52
- File.write(target_path, result)
53
- UI.success(target_path)
93
+ UI.success("Generated new docs on path #{target_path}")
54
94
  end
55
95
 
56
96
  private
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.55.0.beta.20170831010002'.freeze
2
+ VERSION = '2.55.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
  end
@@ -152,7 +152,7 @@ module Snapshot
152
152
  hash[name] = ["No tests were executed"]
153
153
  else
154
154
  tests = Array(summary.data.first[:tests])
155
- hash[name] = tests.map { |test| test[:failures].map { |failure| failure[:failure_message] } }.flatten
155
+ hash[name] = tests.map { |test| Array(test[:failures]).map { |failure| failure[:failure_message] } }.flatten
156
156
  end
157
157
  end
158
158
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.55.0.beta.20170831010002
4
+ version: 2.55.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -828,6 +828,8 @@ files:
828
828
  - deliver/lib/deliver/upload_price_tier.rb
829
829
  - deliver/lib/deliver/upload_screenshots.rb
830
830
  - fastlane/README.md
831
+ - fastlane/lib/.DS_Store
832
+ - fastlane/lib/assets/ActionDetails.md.erb
831
833
  - fastlane/lib/assets/Actions.md.erb
832
834
  - fastlane/lib/assets/AppfileTemplate
833
835
  - fastlane/lib/assets/AppfileTemplateAndroid
@@ -844,8 +846,10 @@ files:
844
846
  - fastlane/lib/assets/s3_plist_template.erb
845
847
  - fastlane/lib/assets/s3_version_template.erb
846
848
  - fastlane/lib/fastlane.rb
849
+ - fastlane/lib/fastlane/.DS_Store
847
850
  - fastlane/lib/fastlane/action.rb
848
851
  - fastlane/lib/fastlane/action_collector.rb
852
+ - fastlane/lib/fastlane/actions/.DS_Store
849
853
  - fastlane/lib/fastlane/actions/README.md
850
854
  - fastlane/lib/fastlane/actions/actions_helper.rb
851
855
  - fastlane/lib/fastlane/actions/adb.rb
@@ -890,6 +894,19 @@ files:
890
894
  - fastlane/lib/fastlane/actions/deliver.rb
891
895
  - fastlane/lib/fastlane/actions/deploygate.rb
892
896
  - fastlane/lib/fastlane/actions/device_grid/README.md
897
+ - fastlane/lib/fastlane/actions/docs/.DS_Store
898
+ - fastlane/lib/fastlane/actions/docs/assets/.DS_Store
899
+ - fastlane/lib/fastlane/actions/docs/assets/cert.gif
900
+ - fastlane/lib/fastlane/actions/docs/assets/cert.png
901
+ - fastlane/lib/fastlane/actions/docs/assets/deliver.png
902
+ - fastlane/lib/fastlane/actions/docs/assets/deliver_metadata.png
903
+ - fastlane/lib/fastlane/actions/docs/assets/deliver_screenshots.png
904
+ - fastlane/lib/fastlane/actions/docs/assets/gym.gif
905
+ - fastlane/lib/fastlane/actions/docs/assets/gym.png
906
+ - fastlane/lib/fastlane/actions/docs/assets/gymScreenshot.png
907
+ - fastlane/lib/fastlane/actions/docs/cert.md
908
+ - fastlane/lib/fastlane/actions/docs/deliver.md
909
+ - fastlane/lib/fastlane/actions/docs/gym.md
893
910
  - fastlane/lib/fastlane/actions/dotgpg_environment.rb
894
911
  - fastlane/lib/fastlane/actions/download.rb
895
912
  - fastlane/lib/fastlane/actions/download_dsyms.rb
@@ -1430,24 +1447,24 @@ metadata:
1430
1447
  post_install_message:
1431
1448
  rdoc_options: []
1432
1449
  require_paths:
1433
- - spaceship/lib
1434
- - scan/lib
1435
- - sigh/lib
1436
- - snapshot/lib
1437
- - screengrab/lib
1438
- - fastlane/lib
1439
1450
  - cert/lib
1440
- - pem/lib
1441
- - gym/lib
1442
- - produce/lib
1451
+ - credentials_manager/lib
1443
1452
  - deliver/lib
1444
- - supply/lib
1445
- - match/lib
1453
+ - fastlane/lib
1454
+ - fastlane_core/lib
1446
1455
  - frameit/lib
1447
- - credentials_manager/lib
1456
+ - gym/lib
1457
+ - match/lib
1458
+ - pem/lib
1448
1459
  - pilot/lib
1449
1460
  - precheck/lib
1450
- - fastlane_core/lib
1461
+ - produce/lib
1462
+ - scan/lib
1463
+ - screengrab/lib
1464
+ - sigh/lib
1465
+ - snapshot/lib
1466
+ - spaceship/lib
1467
+ - supply/lib
1451
1468
  required_ruby_version: !ruby/object:Gem::Requirement
1452
1469
  requirements:
1453
1470
  - - ">="
@@ -1455,14 +1472,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
1455
1472
  version: 2.0.0
1456
1473
  required_rubygems_version: !ruby/object:Gem::Requirement
1457
1474
  requirements:
1458
- - - ">"
1475
+ - - ">="
1459
1476
  - !ruby/object:Gem::Version
1460
- version: 1.3.1
1477
+ version: '0'
1461
1478
  requirements: []
1462
1479
  rubyforge_project:
1463
- rubygems_version: 2.4.5.1
1480
+ rubygems_version: 2.6.8
1464
1481
  signing_key:
1465
1482
  specification_version: 4
1466
1483
  summary: The easiest way to automate beta deployments and releases for your iOS and
1467
1484
  Android apps
1468
1485
  test_files: []
1486
+ has_rdoc: