fastlane 2.185.1 → 2.189.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/fastlane/lib/fastlane/actions/appledoc.rb +45 -45
  4. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +1 -2
  5. data/fastlane/lib/fastlane/actions/create_keychain.rb +5 -2
  6. data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
  7. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  8. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +25 -26
  9. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +2 -2
  10. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +171 -67
  11. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/download_dsyms.rb +3 -4
  13. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
  15. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
  16. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
  17. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
  18. data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
  19. data/fastlane/lib/fastlane/actions/erb.rb +2 -5
  20. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
  22. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +29 -34
  23. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
  25. data/fastlane/lib/fastlane/actions/git_commit.rb +2 -6
  26. data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
  27. data/fastlane/lib/fastlane/actions/github_api.rb +2 -5
  28. data/fastlane/lib/fastlane/actions/gradle.rb +12 -20
  29. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/hipchat.rb +4 -5
  32. data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
  33. data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
  34. data/fastlane/lib/fastlane/actions/import_from_git.rb +2 -4
  35. data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -2
  36. data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
  37. data/fastlane/lib/fastlane/actions/installr.rb +22 -25
  38. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  39. data/fastlane/lib/fastlane/actions/jazzy.rb +8 -14
  40. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +3 -4
  41. data/fastlane/lib/fastlane/actions/lcov.rb +0 -4
  42. data/fastlane/lib/fastlane/actions/mailgun.rb +21 -27
  43. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +1 -1
  44. data/fastlane/lib/fastlane/actions/modify_services.rb +59 -24
  45. data/fastlane/lib/fastlane/actions/nexus_upload.rb +2 -2
  46. data/fastlane/lib/fastlane/actions/notarize.rb +1 -4
  47. data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
  48. data/fastlane/lib/fastlane/actions/oclint.rb +15 -14
  49. data/fastlane/lib/fastlane/actions/pod_push.rb +0 -2
  50. data/fastlane/lib/fastlane/actions/podio_item.rb +0 -7
  51. data/fastlane/lib/fastlane/actions/prompt.rb +3 -4
  52. data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
  53. data/fastlane/lib/fastlane/actions/puts.rb +1 -2
  54. data/fastlane/lib/fastlane/actions/register_devices.rb +0 -1
  55. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +5 -8
  56. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +0 -2
  57. data/fastlane/lib/fastlane/actions/resign.rb +2 -9
  58. data/fastlane/lib/fastlane/actions/rsync.rb +3 -6
  59. data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
  60. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  61. data/fastlane/lib/fastlane/actions/say.rb +2 -3
  62. data/fastlane/lib/fastlane/actions/scp.rb +4 -10
  63. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
  64. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  65. data/fastlane/lib/fastlane/actions/set_github_release.rb +2 -8
  66. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +1 -1
  67. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -4
  68. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -2
  69. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  70. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +7 -12
  71. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  72. data/fastlane/lib/fastlane/actions/sh.rb +2 -4
  73. data/fastlane/lib/fastlane/actions/slack.rb +6 -8
  74. data/fastlane/lib/fastlane/actions/slather.rb +3 -19
  75. data/fastlane/lib/fastlane/actions/sonar.rb +12 -19
  76. data/fastlane/lib/fastlane/actions/sourcedocs.rb +62 -98
  77. data/fastlane/lib/fastlane/actions/splunkmint.rb +2 -2
  78. data/fastlane/lib/fastlane/actions/spm.rb +3 -3
  79. data/fastlane/lib/fastlane/actions/ssh.rb +5 -10
  80. data/fastlane/lib/fastlane/actions/testfairy.rb +0 -1
  81. data/fastlane/lib/fastlane/actions/tryouts.rb +2 -3
  82. data/fastlane/lib/fastlane/actions/twitter.rb +0 -5
  83. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +3 -3
  84. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -4
  85. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +8 -15
  86. data/fastlane/lib/fastlane/actions/update_fastlane.rb +2 -2
  87. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -4
  88. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  89. data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +1 -4
  90. data/fastlane/lib/fastlane/actions/update_plist.rb +1 -1
  91. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -2
  92. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +0 -1
  93. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +15 -26
  94. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +1 -2
  95. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +3 -10
  96. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +40 -44
  97. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +1 -2
  98. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
  99. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  100. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +1 -1
  101. data/fastlane/lib/fastlane/helper/git_helper.rb +17 -5
  102. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +1 -1
  103. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
  104. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  105. data/fastlane/lib/fastlane/version.rb +1 -1
  106. data/fastlane/swift/Deliverfile.swift +1 -1
  107. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  108. data/fastlane/swift/Fastlane.swift +158 -125
  109. data/fastlane/swift/Gymfile.swift +1 -1
  110. data/fastlane/swift/GymfileProtocol.swift +1 -1
  111. data/fastlane/swift/Matchfile.swift +1 -1
  112. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  113. data/fastlane/swift/Precheckfile.swift +1 -1
  114. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  115. data/fastlane/swift/Scanfile.swift +1 -1
  116. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  117. data/fastlane/swift/Screengrabfile.swift +1 -1
  118. data/fastlane/swift/ScreengrabfileProtocol.swift +4 -4
  119. data/fastlane/swift/Snapshotfile.swift +1 -1
  120. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  121. data/fastlane/swift/formatting/Brewfile.lock.json +19 -11
  122. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +13 -0
  123. data/match/lib/match/importer.rb +3 -0
  124. data/match/lib/match/nuke.rb +2 -3
  125. data/pilot/lib/pilot.rb +0 -1
  126. data/pilot/lib/pilot/build_manager.rb +0 -3
  127. data/pilot/lib/pilot/manager.rb +4 -1
  128. data/precheck/lib/precheck/module.rb +2 -0
  129. data/precheck/lib/precheck/options.rb +3 -3
  130. data/produce/lib/produce/commands_generator.rb +99 -27
  131. data/produce/lib/produce/developer_center.rb +42 -4
  132. data/produce/lib/produce/options.rb +1 -1
  133. data/produce/lib/produce/service.rb +270 -179
  134. data/scan/lib/scan/detect_values.rb +22 -13
  135. data/scan/lib/scan/module.rb +1 -0
  136. data/scan/lib/scan/options.rb +12 -1
  137. data/scan/lib/scan/test_command_generator.rb +29 -6
  138. data/screengrab/lib/screengrab/android_environment.rb +2 -52
  139. data/screengrab/lib/screengrab/dependency_checker.rb +0 -20
  140. data/screengrab/lib/screengrab/options.rb +5 -2
  141. data/screengrab/lib/screengrab/runner.rb +109 -107
  142. data/snapshot/lib/assets/SnapfileTemplate +2 -1
  143. data/snapshot/lib/assets/SnapfileTemplate.swift +2 -1
  144. data/snapshot/lib/assets/SnapshotHelper.swift +14 -10
  145. data/snapshot/lib/snapshot/reports_generator.rb +3 -1
  146. data/snapshot/lib/snapshot/test_command_generator.rb +16 -2
  147. data/spaceship/lib/spaceship/client.rb +13 -3
  148. data/spaceship/lib/spaceship/connect_api/api_client.rb +30 -5
  149. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +3 -1
  150. data/spaceship/lib/spaceship/connect_api/models/build.rb +3 -1
  151. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +8 -0
  152. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +58 -17
  153. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -1
  154. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  155. data/supply/lib/supply/client.rb +7 -1
  156. data/supply/lib/supply/options.rb +5 -0
  157. metadata +27 -32
  158. data/fastlane/lib/fastlane/.erb_template_helper.rb.swp +0 -0
  159. data/fastlane/lib/fastlane/actions/.git_commit.rb.swp +0 -0
  160. data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
  161. data/pilot/lib/pilot/features.rb +0 -0
  162. data/spaceship/lib/spaceship/.DS_Store +0 -0
  163. data/spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8b6571964abef2b2e8b1cd869a08570a55204c8eaacceb7fdc6e06a74c4b620
4
- data.tar.gz: 7f174988315794be70e4ed8b33b4ed433c0f66c3425d9acfa2cfffd876725950
3
+ metadata.gz: 3e220b24ad58be1b3108fa1a5c3c76326da0036e3823d39757ad46c038375c72
4
+ data.tar.gz: 164b1297dccb44d1c43138c3eb8ff654c33ec6860392f284ca9a294c5f4e0091
5
5
  SHA512:
6
- metadata.gz: 78fa9680797fc18ebe5c0961aa54bbcc2fec38c02230590ddb6809c91b7ece1f877118b3d8777161760f22262cfb90f6bb9ec5a3e8b113de725ece4055a367dc
7
- data.tar.gz: 178e47828500a152080f0aa048d9954a46db7fab5c8039fe8f125029a9987cb4c3a85579503fb9982ced69dcde4c9e04a1550d559ea2b9909b0ea792d3ab1003
6
+ metadata.gz: e1658928b8523a0b15400cbf2bbe8f66492f1abaf33aa5dedc56e0ebfe9ff38c8b7f546748a0048a38d81856806d1588b81d136b51c80927bdced727f483fae0
7
+ data.tar.gz: cd2c243360d99b90fba4dbcae7d31062bdd74a562a61f2092c8ef0604d5fb207f3d62c905f5f38c65add6df6f980801cacf316878009c8b68ddc59f6d3ec2fbb
data/README.md CHANGED
@@ -35,75 +35,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='josh-holtz'>
39
- <a href='https://github.com/joshdholtz'>
40
- <img src='https://github.com/joshdholtz.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
43
- </td>
44
- <td id='jimmy-dee'>
45
- <a href='https://github.com/jdee'>
46
- <img src='https://github.com/jdee.png' width='140px;'>
47
- </a>
48
- <h4 align='center'>Jimmy Dee</h4>
49
- </td>
50
- <td id='olivier-halligon'>
51
- <a href='https://github.com/AliSoftware'>
52
- <img src='https://github.com/AliSoftware.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
55
- </td>
56
- <td id='maksym-grebenets'>
57
- <a href='https://github.com/mgrebenets'>
58
- <img src='https://github.com/mgrebenets.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
61
- </td>
62
- <td id='kohki-miki'>
63
- <a href='https://github.com/giginet'>
64
- <img src='https://github.com/giginet.png' width='140px;'>
65
- </a>
66
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
67
- </td>
68
- </tr>
69
- <tr>
70
- <td id='manu-wallner'>
71
- <a href='https://github.com/milch'>
72
- <img src='https://github.com/milch.png' width='140px;'>
38
+ <td id='jérôme-lacoste'>
39
+ <a href='https://github.com/lacostej'>
40
+ <img src='https://github.com/lacostej.png' width='140px;'>
73
41
  </a>
74
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
75
43
  </td>
76
- <td id='aaron-brager'>
77
- <a href='https://github.com/getaaron'>
78
- <img src='https://github.com/getaaron.png' width='140px;'>
44
+ <td id='satoshi-namai'>
45
+ <a href='https://github.com/ainame'>
46
+ <img src='https://github.com/ainame.png' width='140px;'>
79
47
  </a>
80
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
81
49
  </td>
82
- <td id='felix-krause'>
83
- <a href='https://github.com/KrauseFx'>
84
- <img src='https://github.com/KrauseFx.png' width='140px;'>
50
+ <td id='andrew-mcburney'>
51
+ <a href='https://github.com/armcburney'>
52
+ <img src='https://github.com/armcburney.png' width='140px;'>
85
53
  </a>
86
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
87
55
  </td>
88
- <td id='stefan-natchev'>
89
- <a href='https://github.com/snatchev'>
90
- <img src='https://github.com/snatchev.png' width='140px;'>
56
+ <td id='jorge-revuelta-h'>
57
+ <a href='https://github.com/minuscorp'>
58
+ <img src='https://github.com/minuscorp.png' width='140px;'>
91
59
  </a>
92
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
93
61
  </td>
94
- <td id='roger-oba'>
95
- <a href='https://github.com/rogerluan'>
96
- <img src='https://github.com/rogerluan.png' width='140px;'>
62
+ <td id='olivier-halligon'>
63
+ <a href='https://github.com/AliSoftware'>
64
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
97
65
  </a>
98
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
99
67
  </td>
100
68
  </tr>
101
69
  <tr>
102
- <td id='manish-rathi'>
103
- <a href='https://github.com/crazymanish'>
104
- <img src='https://github.com/crazymanish.png' width='140px;'>
70
+ <td id='luka-mirosevic'>
71
+ <a href='https://github.com/lmirosevic'>
72
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
105
73
  </a>
106
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
107
75
  </td>
108
76
  <td id='iulian-onofrei'>
109
77
  <a href='https://github.com/revolter'>
@@ -111,17 +79,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
79
  </a>
112
80
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
113
81
  </td>
114
- <td id='jérôme-lacoste'>
115
- <a href='https://github.com/lacostej'>
116
- <img src='https://github.com/lacostej.png' width='140px;'>
82
+ <td id='fumiya-nakamura'>
83
+ <a href='https://github.com/nafu'>
84
+ <img src='https://github.com/nafu.png' width='140px;'>
117
85
  </a>
118
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
119
87
  </td>
120
- <td id='satoshi-namai'>
121
- <a href='https://github.com/ainame'>
122
- <img src='https://github.com/ainame.png' width='140px;'>
88
+ <td id='stefan-natchev'>
89
+ <a href='https://github.com/snatchev'>
90
+ <img src='https://github.com/snatchev.png' width='140px;'>
123
91
  </a>
124
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
125
93
  </td>
126
94
  <td id='helmut-januschka'>
127
95
  <a href='https://github.com/hjanuschka'>
@@ -131,17 +99,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
131
99
  </td>
132
100
  </tr>
133
101
  <tr>
102
+ <td id='maksym-grebenets'>
103
+ <a href='https://github.com/mgrebenets'>
104
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
105
+ </a>
106
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
107
+ </td>
134
108
  <td id='max-ott'>
135
109
  <a href='https://github.com/max-ott'>
136
110
  <img src='https://github.com/max-ott.png' width='140px;'>
137
111
  </a>
138
112
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
139
113
  </td>
140
- <td id='luka-mirosevic'>
141
- <a href='https://github.com/lmirosevic'>
142
- <img src='https://github.com/lmirosevic.png' width='140px;'>
114
+ <td id='josh-holtz'>
115
+ <a href='https://github.com/joshdholtz'>
116
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
143
117
  </a>
144
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
145
119
  </td>
146
120
  <td id='jan-piotrowski'>
147
121
  <a href='https://github.com/janpio'>
@@ -149,11 +123,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
123
  </a>
150
124
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
151
125
  </td>
152
- <td id='matthew-ellis'>
153
- <a href='https://github.com/matthewellis'>
154
- <img src='https://github.com/matthewellis.png' width='140px;'>
126
+ <td id='manish-rathi'>
127
+ <a href='https://github.com/crazymanish'>
128
+ <img src='https://github.com/crazymanish.png' width='140px;'>
155
129
  </a>
156
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
131
+ </td>
132
+ </tr>
133
+ <tr>
134
+ <td id='kohki-miki'>
135
+ <a href='https://github.com/giginet'>
136
+ <img src='https://github.com/giginet.png' width='140px;'>
137
+ </a>
138
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
157
139
  </td>
158
140
  <td id='daniel-jankowski'>
159
141
  <a href='https://github.com/mollyIV'>
@@ -161,8 +143,32 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
161
143
  </a>
162
144
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
163
145
  </td>
146
+ <td id='aaron-brager'>
147
+ <a href='https://github.com/getaaron'>
148
+ <img src='https://github.com/getaaron.png' width='140px;'>
149
+ </a>
150
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
151
+ </td>
152
+ <td id='roger-oba'>
153
+ <a href='https://github.com/rogerluan'>
154
+ <img src='https://github.com/rogerluan.png' width='140px;'>
155
+ </a>
156
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
157
+ </td>
158
+ <td id='matthew-ellis'>
159
+ <a href='https://github.com/matthewellis'>
160
+ <img src='https://github.com/matthewellis.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
163
+ </td>
164
164
  </tr>
165
165
  <tr>
166
+ <td id='manu-wallner'>
167
+ <a href='https://github.com/milch'>
168
+ <img src='https://github.com/milch.png' width='140px;'>
169
+ </a>
170
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
171
+ </td>
166
172
  <td id='danielle-tomlinson'>
167
173
  <a href='https://github.com/endocrimes'>
168
174
  <img src='https://github.com/endocrimes.png' width='140px;'>
@@ -175,23 +181,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
175
181
  </a>
176
182
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
177
183
  </td>
178
- <td id='andrew-mcburney'>
179
- <a href='https://github.com/armcburney'>
180
- <img src='https://github.com/armcburney.png' width='140px;'>
181
- </a>
182
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
183
- </td>
184
- <td id='jorge-revuelta-h'>
185
- <a href='https://github.com/minuscorp'>
186
- <img src='https://github.com/minuscorp.png' width='140px;'>
184
+ <td id='felix-krause'>
185
+ <a href='https://github.com/KrauseFx'>
186
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
189
189
  </td>
190
- <td id='fumiya-nakamura'>
191
- <a href='https://github.com/nafu'>
192
- <img src='https://github.com/nafu.png' width='140px;'>
190
+ <td id='jimmy-dee'>
191
+ <a href='https://github.com/jdee'>
192
+ <img src='https://github.com/jdee.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
194
+ <h4 align='center'>Jimmy Dee</h4>
195
195
  </td>
196
196
  </tr>
197
197
  </table>
@@ -125,63 +125,63 @@ module Fastlane
125
125
  def self.available_options
126
126
  [
127
127
  # PATHS
128
- FastlaneCore::ConfigItem.new(key: :input, env_name: "FL_APPLEDOC_INPUT", description: "Path(s) to source file directories or individual source files. Accepts a single path or an array of paths", is_string: false),
129
- FastlaneCore::ConfigItem.new(key: :output, env_name: "FL_APPLEDOC_OUTPUT", description: "Output path", is_string: true, optional: true),
130
- FastlaneCore::ConfigItem.new(key: :templates, env_name: "FL_APPLEDOC_TEMPLATES", description: "Template files path", is_string: true, optional: true),
131
- FastlaneCore::ConfigItem.new(key: :docset_install_path, env_name: "FL_APPLEDOC_DOCSET_INSTALL_PATH", description: "DocSet installation path", is_string: true, optional: true),
132
- FastlaneCore::ConfigItem.new(key: :include, env_name: "FL_APPLEDOC_INCLUDE", description: "Include static doc(s) at path", is_string: true, optional: true),
133
- FastlaneCore::ConfigItem.new(key: :ignore, env_name: "FL_APPLEDOC_IGNORE", description: "Ignore given path", is_string: false, optional: true),
134
- FastlaneCore::ConfigItem.new(key: :exclude_output, env_name: "FL_APPLEDOC_EXCLUDE_OUTPUT", description: "Exclude given path from output", is_string: false, optional: true),
135
- FastlaneCore::ConfigItem.new(key: :index_desc, env_name: "FL_APPLEDOC_INDEX_DESC", description: "File including main index description", is_string: true, optional: true),
128
+ FastlaneCore::ConfigItem.new(key: :input, env_name: "FL_APPLEDOC_INPUT", description: "Path(s) to source file directories or individual source files. Accepts a single path or an array of paths", type: Array),
129
+ FastlaneCore::ConfigItem.new(key: :output, env_name: "FL_APPLEDOC_OUTPUT", description: "Output path", optional: true),
130
+ FastlaneCore::ConfigItem.new(key: :templates, env_name: "FL_APPLEDOC_TEMPLATES", description: "Template files path", optional: true),
131
+ FastlaneCore::ConfigItem.new(key: :docset_install_path, env_name: "FL_APPLEDOC_DOCSET_INSTALL_PATH", description: "DocSet installation path", optional: true),
132
+ FastlaneCore::ConfigItem.new(key: :include, env_name: "FL_APPLEDOC_INCLUDE", description: "Include static doc(s) at path", optional: true),
133
+ FastlaneCore::ConfigItem.new(key: :ignore, env_name: "FL_APPLEDOC_IGNORE", description: "Ignore given path", type: Array, optional: true),
134
+ FastlaneCore::ConfigItem.new(key: :exclude_output, env_name: "FL_APPLEDOC_EXCLUDE_OUTPUT", description: "Exclude given path from output", type: Array, optional: true),
135
+ FastlaneCore::ConfigItem.new(key: :index_desc, env_name: "FL_APPLEDOC_INDEX_DESC", description: "File including main index description", optional: true),
136
136
 
137
137
  # PROJECT INFO
138
- FastlaneCore::ConfigItem.new(key: :project_name, env_name: "FL_APPLEDOC_PROJECT_NAME", description: "Project name", is_string: true),
139
- FastlaneCore::ConfigItem.new(key: :project_version, env_name: "FL_APPLEDOC_PROJECT_VERSION", description: "Project version", is_string: true, optional: true),
140
- FastlaneCore::ConfigItem.new(key: :project_company, env_name: "FL_APPLEDOC_PROJECT_COMPANY", description: "Project company", is_string: true),
141
- FastlaneCore::ConfigItem.new(key: :company_id, env_name: "FL_APPLEDOC_COMPANY_ID", description: "Company UTI (i.e. reverse DNS name)", is_string: true, optional: true),
138
+ FastlaneCore::ConfigItem.new(key: :project_name, env_name: "FL_APPLEDOC_PROJECT_NAME", description: "Project name"),
139
+ FastlaneCore::ConfigItem.new(key: :project_version, env_name: "FL_APPLEDOC_PROJECT_VERSION", description: "Project version", optional: true),
140
+ FastlaneCore::ConfigItem.new(key: :project_company, env_name: "FL_APPLEDOC_PROJECT_COMPANY", description: "Project company"),
141
+ FastlaneCore::ConfigItem.new(key: :company_id, env_name: "FL_APPLEDOC_COMPANY_ID", description: "Company UTI (i.e. reverse DNS name)", optional: true),
142
142
 
143
143
  # OUTPUT GENERATION
144
- FastlaneCore::ConfigItem.new(key: :create_html, env_name: "FL_APPLEDOC_CREATE_HTML", description: "Create HTML", is_string: false, default_value: false),
145
- FastlaneCore::ConfigItem.new(key: :create_docset, env_name: "FL_APPLEDOC_CREATE_DOCSET", description: "Create documentation set", is_string: false, default_value: false),
146
- FastlaneCore::ConfigItem.new(key: :install_docset, env_name: "FL_APPLEDOC_INSTALL_DOCSET", description: "Install documentation set to Xcode", is_string: false, default_value: false),
147
- FastlaneCore::ConfigItem.new(key: :publish_docset, env_name: "FL_APPLEDOC_PUBLISH_DOCSET", description: "Prepare DocSet for publishing", is_string: false, default_value: false),
148
- FastlaneCore::ConfigItem.new(key: :no_create_docset, env_name: "FL_APPLEDOC_NO_CREATE_DOCSET", description: "Create HTML and skip creating a DocSet", is_string: false, default_value: false),
149
- FastlaneCore::ConfigItem.new(key: :html_anchors, env_name: "FL_APPLEDOC_HTML_ANCHORS", description: "The html anchor format to use in DocSet HTML", is_string: true, optional: true),
150
- FastlaneCore::ConfigItem.new(key: :clean_output, env_name: "FL_APPLEDOC_CLEAN_OUTPUT", description: "Remove contents of output path before starting", is_string: false, default_value: false),
144
+ FastlaneCore::ConfigItem.new(key: :create_html, env_name: "FL_APPLEDOC_CREATE_HTML", description: "Create HTML", type: Boolean, default_value: false),
145
+ FastlaneCore::ConfigItem.new(key: :create_docset, env_name: "FL_APPLEDOC_CREATE_DOCSET", description: "Create documentation set", type: Boolean, default_value: false),
146
+ FastlaneCore::ConfigItem.new(key: :install_docset, env_name: "FL_APPLEDOC_INSTALL_DOCSET", description: "Install documentation set to Xcode", type: Boolean, default_value: false),
147
+ FastlaneCore::ConfigItem.new(key: :publish_docset, env_name: "FL_APPLEDOC_PUBLISH_DOCSET", description: "Prepare DocSet for publishing", type: Boolean, default_value: false),
148
+ FastlaneCore::ConfigItem.new(key: :no_create_docset, env_name: "FL_APPLEDOC_NO_CREATE_DOCSET", description: "Create HTML and skip creating a DocSet", type: Boolean, default_value: false),
149
+ FastlaneCore::ConfigItem.new(key: :html_anchors, env_name: "FL_APPLEDOC_HTML_ANCHORS", description: "The html anchor format to use in DocSet HTML", optional: true),
150
+ FastlaneCore::ConfigItem.new(key: :clean_output, env_name: "FL_APPLEDOC_CLEAN_OUTPUT", description: "Remove contents of output path before starting", type: Boolean, default_value: false),
151
151
 
152
152
  # DOCUMENTATION SET INFO
153
- FastlaneCore::ConfigItem.new(key: :docset_bundle_id, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_ID", description: "DocSet bundle identifier", is_string: true, optional: true),
154
- FastlaneCore::ConfigItem.new(key: :docset_bundle_name, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_NAME", description: "DocSet bundle name", is_string: true, optional: true),
155
- FastlaneCore::ConfigItem.new(key: :docset_desc, env_name: "FL_APPLEDOC_DOCSET_DESC", description: "DocSet description", is_string: true, optional: true),
156
- FastlaneCore::ConfigItem.new(key: :docset_copyright, env_name: "FL_APPLEDOC_DOCSET_COPYRIGHT", description: "DocSet copyright message", is_string: true, optional: true),
157
- FastlaneCore::ConfigItem.new(key: :docset_feed_name, env_name: "FL_APPLEDOC_DOCSET_FEED_NAME", description: "DocSet feed name", is_string: true, optional: true),
158
- FastlaneCore::ConfigItem.new(key: :docset_feed_url, env_name: "FL_APPLEDOC_DOCSET_FEED_URL", description: "DocSet feed URL", is_string: true, optional: true),
159
- FastlaneCore::ConfigItem.new(key: :docset_feed_formats, env_name: "FL_APPLEDOC_DOCSET_FEED_FORMATS", description: "DocSet feed formats. Separated by a comma [atom,xml]", is_string: true, optional: true),
160
- FastlaneCore::ConfigItem.new(key: :docset_package_url, env_name: "FL_APPLEDOC_DOCSET_PACKAGE_URL", description: "DocSet package (.xar) URL", is_string: true, optional: true),
161
- FastlaneCore::ConfigItem.new(key: :docset_fallback_url, env_name: "FL_APPLEDOC_DOCSET_FALLBACK_URL", description: "DocSet fallback URL", is_string: true, optional: true),
162
- FastlaneCore::ConfigItem.new(key: :docset_publisher_id, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_ID", description: "DocSet publisher identifier", is_string: true, optional: true),
163
- FastlaneCore::ConfigItem.new(key: :docset_publisher_name, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_NAME", description: "DocSet publisher name", is_string: true, optional: true),
164
- FastlaneCore::ConfigItem.new(key: :docset_min_xcode_version, env_name: "FL_APPLEDOC_DOCSET_MIN_XCODE_VERSION", description: "DocSet min. Xcode version", is_string: true, optional: true),
165
- FastlaneCore::ConfigItem.new(key: :docset_platform_family, env_name: "FL_APPLEDOC_DOCSET_PLATFORM_FAMILY", description: "DocSet platform family", is_string: true, optional: true),
166
- FastlaneCore::ConfigItem.new(key: :docset_cert_issuer, env_name: "FL_APPLEDOC_DOCSET_CERT_ISSUER", description: "DocSet certificate issuer", is_string: true, optional: true),
167
- FastlaneCore::ConfigItem.new(key: :docset_cert_signer, env_name: "FL_APPLEDOC_DOCSET_CERT_SIGNER", description: "DocSet certificate signer", is_string: true, optional: true),
168
- FastlaneCore::ConfigItem.new(key: :docset_bundle_filename, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_FILENAME", description: "DocSet bundle filename", is_string: true, optional: true),
169
- FastlaneCore::ConfigItem.new(key: :docset_atom_filename, env_name: "FL_APPLEDOC_DOCSET_ATOM_FILENAME", description: "DocSet atom feed filename", is_string: true, optional: true),
170
- FastlaneCore::ConfigItem.new(key: :docset_xml_filename, env_name: "FL_APPLEDOC_DOCSET_XML_FILENAME", description: "DocSet xml feed filename", is_string: true, optional: true),
171
- FastlaneCore::ConfigItem.new(key: :docset_package_filename, env_name: "FL_APPLEDOC_DOCSET_PACKAGE_FILENAME", description: "DocSet package (.xar,.tgz) filename", is_string: true, optional: true),
153
+ FastlaneCore::ConfigItem.new(key: :docset_bundle_id, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_ID", description: "DocSet bundle identifier", optional: true),
154
+ FastlaneCore::ConfigItem.new(key: :docset_bundle_name, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_NAME", description: "DocSet bundle name", optional: true),
155
+ FastlaneCore::ConfigItem.new(key: :docset_desc, env_name: "FL_APPLEDOC_DOCSET_DESC", description: "DocSet description", optional: true),
156
+ FastlaneCore::ConfigItem.new(key: :docset_copyright, env_name: "FL_APPLEDOC_DOCSET_COPYRIGHT", description: "DocSet copyright message", optional: true),
157
+ FastlaneCore::ConfigItem.new(key: :docset_feed_name, env_name: "FL_APPLEDOC_DOCSET_FEED_NAME", description: "DocSet feed name", optional: true),
158
+ FastlaneCore::ConfigItem.new(key: :docset_feed_url, env_name: "FL_APPLEDOC_DOCSET_FEED_URL", description: "DocSet feed URL", optional: true),
159
+ FastlaneCore::ConfigItem.new(key: :docset_feed_formats, env_name: "FL_APPLEDOC_DOCSET_FEED_FORMATS", description: "DocSet feed formats. Separated by a comma [atom,xml]", optional: true),
160
+ FastlaneCore::ConfigItem.new(key: :docset_package_url, env_name: "FL_APPLEDOC_DOCSET_PACKAGE_URL", description: "DocSet package (.xar) URL", optional: true),
161
+ FastlaneCore::ConfigItem.new(key: :docset_fallback_url, env_name: "FL_APPLEDOC_DOCSET_FALLBACK_URL", description: "DocSet fallback URL", optional: true),
162
+ FastlaneCore::ConfigItem.new(key: :docset_publisher_id, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_ID", description: "DocSet publisher identifier", optional: true),
163
+ FastlaneCore::ConfigItem.new(key: :docset_publisher_name, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_NAME", description: "DocSet publisher name", optional: true),
164
+ FastlaneCore::ConfigItem.new(key: :docset_min_xcode_version, env_name: "FL_APPLEDOC_DOCSET_MIN_XCODE_VERSION", description: "DocSet min. Xcode version", optional: true),
165
+ FastlaneCore::ConfigItem.new(key: :docset_platform_family, env_name: "FL_APPLEDOC_DOCSET_PLATFORM_FAMILY", description: "DocSet platform family", optional: true),
166
+ FastlaneCore::ConfigItem.new(key: :docset_cert_issuer, env_name: "FL_APPLEDOC_DOCSET_CERT_ISSUER", description: "DocSet certificate issuer", optional: true),
167
+ FastlaneCore::ConfigItem.new(key: :docset_cert_signer, env_name: "FL_APPLEDOC_DOCSET_CERT_SIGNER", description: "DocSet certificate signer", optional: true),
168
+ FastlaneCore::ConfigItem.new(key: :docset_bundle_filename, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_FILENAME", description: "DocSet bundle filename", optional: true),
169
+ FastlaneCore::ConfigItem.new(key: :docset_atom_filename, env_name: "FL_APPLEDOC_DOCSET_ATOM_FILENAME", description: "DocSet atom feed filename", optional: true),
170
+ FastlaneCore::ConfigItem.new(key: :docset_xml_filename, env_name: "FL_APPLEDOC_DOCSET_XML_FILENAME", description: "DocSet xml feed filename", optional: true),
171
+ FastlaneCore::ConfigItem.new(key: :docset_package_filename, env_name: "FL_APPLEDOC_DOCSET_PACKAGE_FILENAME", description: "DocSet package (.xar,.tgz) filename", optional: true),
172
172
 
173
173
  # OPTIONS
174
- FastlaneCore::ConfigItem.new(key: :options, env_name: "FL_APPLEDOC_OPTIONS", description: "Documentation generation options", is_string: true, optional: true),
175
- FastlaneCore::ConfigItem.new(key: :crossref_format, env_name: "FL_APPLEDOC_OPTIONS_CROSSREF_FORMAT", description: "Cross reference template regex", is_string: true, optional: true),
176
- FastlaneCore::ConfigItem.new(key: :exit_threshold, env_name: "FL_APPLEDOC_OPTIONS_EXIT_THRESHOLD", description: "Exit code threshold below which 0 is returned", is_string: false, default_value: 2, optional: true),
177
- FastlaneCore::ConfigItem.new(key: :docs_section_title, env_name: "FL_APPLEDOC_OPTIONS_DOCS_SECTION_TITLE", description: "Title of the documentation section (defaults to \"Programming Guides\"", is_string: true, optional: true),
174
+ FastlaneCore::ConfigItem.new(key: :options, env_name: "FL_APPLEDOC_OPTIONS", description: "Documentation generation options", optional: true),
175
+ FastlaneCore::ConfigItem.new(key: :crossref_format, env_name: "FL_APPLEDOC_OPTIONS_CROSSREF_FORMAT", description: "Cross reference template regex", optional: true),
176
+ FastlaneCore::ConfigItem.new(key: :exit_threshold, env_name: "FL_APPLEDOC_OPTIONS_EXIT_THRESHOLD", description: "Exit code threshold below which 0 is returned", type: Integer, default_value: 2, optional: true),
177
+ FastlaneCore::ConfigItem.new(key: :docs_section_title, env_name: "FL_APPLEDOC_OPTIONS_DOCS_SECTION_TITLE", description: "Title of the documentation section (defaults to \"Programming Guides\"", optional: true),
178
178
 
179
179
  # WARNINGS
180
- FastlaneCore::ConfigItem.new(key: :warnings, env_name: "FL_APPLEDOC_WARNINGS", description: "Documentation generation warnings", is_string: true, optional: true),
180
+ FastlaneCore::ConfigItem.new(key: :warnings, env_name: "FL_APPLEDOC_WARNINGS", description: "Documentation generation warnings", optional: true),
181
181
 
182
182
  # MISCELLANEOUS
183
- FastlaneCore::ConfigItem.new(key: :logformat, env_name: "FL_APPLEDOC_LOGFORMAT", description: "Log format [0-3]", is_string: false, optional: true),
184
- FastlaneCore::ConfigItem.new(key: :verbose, env_name: "FL_APPLEDOC_VERBOSE", description: "Log verbosity level [0-6,xcode]", is_string: false, optional: true)
183
+ FastlaneCore::ConfigItem.new(key: :logformat, env_name: "FL_APPLEDOC_LOGFORMAT", description: "Log format [0-3]", type: Integer, optional: true),
184
+ FastlaneCore::ConfigItem.new(key: :verbose, env_name: "FL_APPLEDOC_VERBOSE", description: "Log verbosity level [0-6,xcode]", skip_type_validation: true, optional: true) # allow Integer, String
185
185
  ]
186
186
  end
187
187
 
@@ -136,8 +136,7 @@ module Fastlane
136
136
  env_name: "FL_PROJECT_SIGNING_TARGETS",
137
137
  optional: true,
138
138
  type: Array,
139
- description: "Specify targets you want to toggle the signing mech. (default to all targets)",
140
- is_string: false),
139
+ description: "Specify targets you want to toggle the signing mech. (default to all targets)"),
141
140
  FastlaneCore::ConfigItem.new(key: :code_sign_identity,
142
141
  env_name: "FL_CODE_SIGN_IDENTITY",
143
142
  description: "Code signing identity type (iPhone Developer, iPhone Distribution)",
@@ -47,7 +47,10 @@ module Fastlane
47
47
  commands << Fastlane::Actions.sh("security unlock-keychain -p #{escaped_password} #{keychain_path}", log: false) if params[:unlock]
48
48
 
49
49
  command = "security set-keychain-settings"
50
- command << " -t #{params[:timeout]}" if params[:timeout]
50
+
51
+ # https://ss64.com/osx/security-keychain-settings.html
52
+ # omitting 'timeout' option to specify "no timeout" if required
53
+ command << " -t #{params[:timeout]}" if params[:timeout] > 0
51
54
  command << " -l" if params[:lock_when_sleeps]
52
55
  command << " -u" if params[:lock_after_timeout]
53
56
  command << " #{keychain_path}"
@@ -126,7 +129,7 @@ module Fastlane
126
129
  type: Boolean,
127
130
  default_value: false),
128
131
  FastlaneCore::ConfigItem.new(key: :timeout,
129
- description: 'timeout interval in seconds',
132
+ description: 'timeout interval in seconds. Set `0` if you want to specify "no time-out"',
130
133
  type: Integer,
131
134
  default_value: 300),
132
135
  FastlaneCore::ConfigItem.new(key: :lock_when_sleeps,
@@ -157,13 +157,12 @@ module Fastlane
157
157
  description: "Release note for distribution page"),
158
158
  FastlaneCore::ConfigItem.new(key: :disable_notify,
159
159
  optional: true,
160
- is_string: false,
160
+ type: Boolean,
161
161
  default_value: false,
162
162
  env_name: "DEPLOYGATE_DISABLE_NOTIFY",
163
163
  description: "Disables Push notification emails"),
164
164
  FastlaneCore::ConfigItem.new(key: :distribution_name,
165
165
  optional: true,
166
- is_string: true,
167
166
  env_name: "DEPLOYGATE_DISTRIBUTION_NAME",
168
167
  description: "Target Distribution Name")
169
168
  ]
@@ -148,8 +148,8 @@ Optional: If _gym_ can't automatically detect the provisioning profiles to use,
148
148
  ```ruby
149
149
  build_app(
150
150
  scheme: "Release",
151
+ export_method: "app-store",
151
152
  export_options: {
152
- method: "app-store",
153
153
  provisioningProfiles: {
154
154
  "com.example.bundleid" => "Provisioning Profile Name",
155
155
  "com.example.bundleid2" => "Provisioning Profile Name 2"
@@ -38,21 +38,28 @@ As of Screengrab version 2.0.0, all Android test dependencies are AndroidX depen
38
38
  Ensure that the following permissions exist in your **src/debug/AndroidManifest.xml**
39
39
 
40
40
  ```xml
41
- <!-- Allows unlocking your device and activating its screen so UI tests can succeed -->
42
- <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
43
- <uses-permission android:name="android.permission.WAKE_LOCK"/>
41
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
42
+ xmlns:tools="http://schemas.android.com/tools">
44
43
 
45
- <!-- Allows for storing and retrieving screenshots -->
46
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
47
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
44
+ <!-- Allows storing screenshots on external storage, where it can be accessed by ADB -->
45
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
48
46
 
49
- <!-- Allows changing locales -->
50
- <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
47
+ <!-- Allows changing locales -->
48
+ <uses-permission
49
+ android:name="android.permission.CHANGE_CONFIGURATION"
50
+ tools:ignore="ProtectedPermissions" />
51
+
52
+ <!-- Allows changing SystemUI demo mode -->
53
+ <uses-permission
54
+ android:name="android.permission.DUMP"
55
+ tools:ignore="ProtectedPermissions" />
56
+
57
+ </manifest>
51
58
  ```
52
59
 
53
60
  ##### Configuring your <a href="#ui-tests">UI Tests</a> for Screenshots
54
61
 
55
- 1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
62
+ 1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
56
63
  If you're using Java use:
57
64
  ```java
58
65
  @ClassRule
@@ -63,7 +70,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
63
70
  @Rule @JvmField
64
71
  val localeTestRule = LocaleTestRule()
65
72
  ```
66
- Important is the `@JvmField` annotation. It won't work like that:
73
+ The `@JvmField` annotation is important. It won't work like this:
67
74
  ```kotlin
68
75
  companion object {
69
76
  @get:ClassRule
@@ -79,7 +86,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
79
86
  - You can also create a lane and use `build_android_app`:
80
87
  ```ruby
81
88
  desc "Build debug and test APK for screenshots"
82
- lane :build_for_screengrab do
89
+ lane :build_and_screengrab do
83
90
  build_android_app(
84
91
  task: 'assemble',
85
92
  build_type: 'Debug'
@@ -88,6 +95,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
88
95
  task: 'assemble',
89
96
  build_type: 'AndroidTest'
90
97
  )
98
+ screengrab()
91
99
  end
92
100
  ```
93
101
  - Once complete run `fastlane screengrab` in your app project directory to generate screenshots
@@ -163,7 +171,7 @@ public class JUnit4StyleTests {
163
171
  public static final LocaleTestRule localeTestRule = new LocaleTestRule();
164
172
 
165
173
  @Rule
166
- public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
174
+ public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class);
167
175
 
168
176
  @Test
169
177
  public void testTakeScreenshot() {
@@ -181,7 +189,7 @@ Kotlin:
181
189
  @RunWith(JUnit4.class)
182
190
  class JUnit4StyleTests {
183
191
  @get:Rule
184
- var activityRule = ActivityTestRule(MainActivity::class.java)
192
+ var activityRule = ActivityScenarioRule(MainActivity::class.java)
185
193
 
186
194
  @Rule @JvmField
187
195
  val localeTestRule = LocaleTestRule()
@@ -208,22 +216,13 @@ When using JUnit 3 you'll need to add a bit more code:
208
216
  - Use `LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale());` in `tearDown()`
209
217
  - Use `Screengrab.screenshot("name_of_screenshot_here");` to capture screenshots at the appropriate points in your tests
210
218
 
211
- If you're having trouble getting your device unlocked and the screen activated to run tests, try using `ScreenUtil.activateScreenForTesting(activity);` in your test setup.
212
-
213
219
  ## Clean Status Bar
214
220
 
215
- Screengrab can clean your status bar to make your screenshots even more beautiful.
221
+ Screengrab can clean your status bar to make your screenshots even more beautiful.
222
+ It is simply a wrapper that allows configuring SystemUI DemoMode in your code.
216
223
  Note: the clean status bar feature is only supported on devices with *API level >= 23*.
217
224
 
218
- To use the clean status bar feature add the following lines to your src/debug/AndroidManifest.xml
219
- ```xml
220
- <!-- Indicates the use of the clean status bar feature -->
221
- <uses-feature android:name="tools.fastlane.screengrab.cleanstatusbar"/>
222
- <!-- Allows for changing the status bar -->
223
- <uses-permission android:name="android.permission.DUMP"/>
224
- ```
225
-
226
- After that you can enable and disable the clean status bar at any moment during your tests.
225
+ You can enable and disable the clean status bar at any moment during your tests.
227
226
  In most cases you probably want to do this in the @BeforeClass and @AfterClass methods.
228
227
  ```java
229
228
  @BeforeClass
@@ -237,7 +236,7 @@ public static void afterAll() {
237
236
  }
238
237
  ```
239
238
 
240
- Have a look at the methods of the `CleanStatusBar` class to customize the status bar even more.
239
+ Have a look at the methods of the `CleanStatusBar` class to customize the status bar even more.
241
240
  You could for example show the Bluetooth icon and the LTE text.
242
241
  ```java
243
242
  new CleanStatusBar()