fastlane 2.185.1 → 2.189.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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()