fastlane 2.146.0 → 2.149.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/cert/lib/cert/commands_generator.rb +1 -0
  4. data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
  5. data/deliver/lib/deliver/app_screenshot.rb +3 -3
  6. data/deliver/lib/deliver/commands_generator.rb +1 -0
  7. data/deliver/lib/deliver/html_generator.rb +2 -2
  8. data/deliver/lib/deliver/submit_for_review.rb +5 -1
  9. data/fastlane/lib/{fastlane/actions/.update_code_signing_settings.rb.swp → assets/.s3_html_template.erb.swp} +0 -0
  10. data/fastlane/lib/assets/custom_action_template.rb +6 -6
  11. data/fastlane/lib/assets/s3_html_template.erb +1 -1
  12. data/fastlane/lib/fastlane/actions/.hipchat.rb.swp +0 -0
  13. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  14. data/fastlane/lib/fastlane/actions/cocoapods.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -4
  16. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  17. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +42 -2
  18. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +3 -1
  19. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  20. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
  21. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +12 -0
  22. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +1 -1
  23. data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/hipchat.rb +1 -1
  25. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
  26. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -3
  27. data/fastlane/lib/fastlane/actions/slack.rb +1 -1
  28. data/fastlane/lib/fastlane/actions/slather.rb +8 -1
  29. data/fastlane/lib/fastlane/actions/swiftlint.rb +14 -0
  30. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/testfairy.rb +18 -3
  32. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +7 -2
  33. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +2 -2
  34. data/fastlane/lib/fastlane/actions/verify_xcode.rb +7 -0
  35. data/fastlane/lib/fastlane/actions/xcodebuild.rb +4 -4
  36. data/fastlane/lib/fastlane/cli_tools_distributor.rb +28 -6
  37. data/fastlane/lib/fastlane/commands_generator.rb +5 -2
  38. data/fastlane/lib/fastlane/documentation/actions_list.rb +1 -1
  39. data/fastlane/lib/fastlane/helper/lane_helper.rb +13 -0
  40. data/fastlane/lib/fastlane/lane_manager.rb +0 -10
  41. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +3 -3
  42. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
  43. data/fastlane/lib/fastlane/swift_fastlane_function.rb +15 -2
  44. data/fastlane/lib/fastlane/swift_lane_manager.rb +0 -8
  45. data/fastlane/lib/fastlane/version.rb +1 -1
  46. data/fastlane/swift/Deliverfile.swift +1 -1
  47. data/fastlane/swift/Fastlane.swift +130 -26
  48. data/fastlane/swift/Gymfile.swift +1 -1
  49. data/fastlane/swift/GymfileProtocol.swift +1 -1
  50. data/fastlane/swift/LaneFileProtocol.swift +5 -2
  51. data/fastlane/swift/Matchfile.swift +1 -1
  52. data/fastlane/swift/MatchfileProtocol.swift +9 -1
  53. data/fastlane/swift/Precheckfile.swift +1 -1
  54. data/fastlane/swift/Scanfile.swift +1 -1
  55. data/fastlane/swift/ScanfileProtocol.swift +15 -3
  56. data/fastlane/swift/Screengrabfile.swift +1 -1
  57. data/fastlane/swift/Snapshotfile.swift +1 -1
  58. data/fastlane/swift/SnapshotfileProtocol.swift +25 -1
  59. data/fastlane_core/lib/fastlane_core/helper.rb +17 -0
  60. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +46 -2
  61. data/fastlane_core/lib/fastlane_core/project.rb +1 -0
  62. data/frameit/lib/frameit/commands_generator.rb +1 -0
  63. data/frameit/lib/frameit/device_types.rb +10 -0
  64. data/frameit/lib/frameit/options.rb +5 -2
  65. data/frameit/lib/frameit/runner.rb +5 -0
  66. data/frameit/lib/frameit/screenshot.rb +1 -0
  67. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  68. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +4 -0
  69. data/gym/lib/gym/options.rb +1 -1
  70. data/gym/lib/gym/runner.rb +14 -0
  71. data/match/lib/match/change_password.rb +1 -18
  72. data/match/lib/match/commands_generator.rb +1 -0
  73. data/match/lib/match/encryption/openssl.rb +1 -1
  74. data/match/lib/match/generator.rb +7 -2
  75. data/match/lib/match/nuke.rb +21 -16
  76. data/match/lib/match/options.rb +23 -1
  77. data/match/lib/match/storage/git_storage.rb +4 -0
  78. data/match/lib/match/storage/google_cloud_storage.rb +4 -0
  79. data/match/lib/match/storage/interface.rb +4 -0
  80. data/match/lib/match/storage/s3_storage.rb +4 -0
  81. data/match/lib/match/utils.rb +1 -1
  82. data/pem/lib/pem/commands_generator.rb +1 -0
  83. data/pilot/lib/pilot/build_manager.rb +23 -7
  84. data/pilot/lib/pilot/options.rb +5 -0
  85. data/produce/lib/produce/commands_generator.rb +1 -0
  86. data/scan/lib/scan/.options.rb.swp +0 -0
  87. data/scan/lib/scan/detect_values.rb +3 -0
  88. data/scan/lib/scan/options.rb +26 -3
  89. data/scan/lib/scan/runner.rb +2 -0
  90. data/scan/lib/scan/test_command_generator.rb +7 -2
  91. data/scan/lib/scan/test_result_parser.rb +9 -2
  92. data/screengrab/lib/screengrab/runner.rb +10 -9
  93. data/sigh/lib/sigh/commands_generator.rb +1 -0
  94. data/sigh/lib/sigh/options.rb +7 -1
  95. data/sigh/lib/sigh/runner.rb +2 -1
  96. data/snapshot/lib/assets/SnapfileTemplate +3 -0
  97. data/snapshot/lib/assets/SnapshotHelper.swift +12 -33
  98. data/snapshot/lib/snapshot/detect_values.rb +15 -0
  99. data/snapshot/lib/snapshot/options.rb +42 -0
  100. data/snapshot/lib/snapshot/reports_generator.rb +1 -1
  101. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  102. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +4 -0
  103. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +24 -1
  104. data/snapshot/lib/snapshot/test_command_generator.rb +8 -3
  105. data/snapshot/lib/snapshot/test_command_generator_base.rb +10 -1
  106. data/spaceship/lib/spaceship/base.rb +1 -1
  107. data/spaceship/lib/spaceship/client.rb +9 -1
  108. data/spaceship/lib/spaceship/commands_generator.rb +1 -0
  109. data/spaceship/lib/spaceship/connect_api/model.rb +6 -0
  110. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  111. data/spaceship/lib/spaceship/errors.rb +3 -0
  112. data/spaceship/lib/spaceship/tunes/iap.rb +15 -0
  113. data/spaceship/lib/spaceship/tunes/tunes_client.rb +14 -0
  114. data/supply/lib/supply/commands_generator.rb +1 -0
  115. data/supply/lib/supply/options.rb +9 -0
  116. data/supply/lib/supply/uploader.rb +4 -0
  117. metadata +47 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bba444e95d8f103a74817cfcae961e4c7a608912577d81053e496586eefb8b44
4
- data.tar.gz: 811a64d5eeaad53b01adcbc9ba47640e52d895c738a438945d6274a75461c0aa
3
+ metadata.gz: e1a754f320b6a2a0f0f624fa8fd7d7b51fd0a46060a2baad5097716e3236e7ca
4
+ data.tar.gz: cc01aeb35c73ac933644477ccceff7c0c2c0b11c9ef866b0bac94ebc7bf83648
5
5
  SHA512:
6
- metadata.gz: 552371adbdda5455d913652ae431137aaa025b941084ccbf934f08740e5955f24e0d7d857e25495f738b697f8b4f1e17f5f8ac34e5e1e257426edd9fb3a683b8
7
- data.tar.gz: bc83dfae6426fb0644afdaa547bed294adeb8092559da66eae5171b5ab96fdd53a90f4e955e5f1dd4b993dd2db3aef1ce69f00ab9d38db23c5017a01518be3d2
6
+ metadata.gz: 253bb74d256220c9c5807c8675696930e836b2e780135d4c4d95d1dc9feb61d2049c7b713e43a3b198bbf79447c73182f9d6a34f2a4d5b92b9997bffaf15bc57
7
+ data.tar.gz: f612886813a3cb594e45dfaf1bb4901cf21fc834fa1b63bf5623765314003410fac0ae7ccf5624bfd9de36a5fd2abc5207cd0c71ed379ff858905a2ba21b2e81
data/README.md CHANGED
@@ -34,55 +34,61 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='jorge-revuelta-h'>
38
- <a href='https://github.com/minuscorp'>
39
- <img src='https://github.com/minuscorp.png?size=140'>
37
+ <td id='olivier-halligon'>
38
+ <a href='https://github.com/AliSoftware'>
39
+ <img src='https://github.com/AliSoftware.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
42
42
  </td>
43
- <td id='max-ott'>
44
- <a href='https://github.com/max-ott'>
45
- <img src='https://github.com/max-ott.png?size=140'>
43
+ <td id='jimmy-dee'>
44
+ <a href='https://github.com/jdee'>
45
+ <img src='https://github.com/jdee.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
47
+ <h4 align='center'>Jimmy Dee</h4>
48
48
  </td>
49
- <td id='aaron-brager'>
50
- <a href='https://github.com/getaaron'>
51
- <img src='https://github.com/getaaron.png?size=140'>
49
+ <td id='matthew-ellis'>
50
+ <a href='https://github.com/matthewellis'>
51
+ <img src='https://github.com/matthewellis.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
54
54
  </td>
55
- <td id='helmut-januschka'>
56
- <a href='https://github.com/hjanuschka'>
57
- <img src='https://github.com/hjanuschka.png?size=140'>
55
+ <td id='felix-krause'>
56
+ <a href='https://github.com/KrauseFx'>
57
+ <img src='https://github.com/KrauseFx.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
60
60
  </td>
61
- <td id='stefan-natchev'>
62
- <a href='https://github.com/snatchev'>
63
- <img src='https://github.com/snatchev.png?size=140'>
61
+ <td id='fumiya-nakamura'>
62
+ <a href='https://github.com/nafu'>
63
+ <img src='https://github.com/nafu.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='luka-mirosevic'>
70
- <a href='https://github.com/lmirosevic'>
71
- <img src='https://github.com/lmirosevic.png?size=140'>
69
+ <td id='daniel-jankowski'>
70
+ <a href='https://github.com/mollyIV'>
71
+ <img src='https://github.com/mollyIV.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
74
74
  </td>
75
- <td id='andrew-mcburney'>
76
- <a href='https://github.com/armcburney'>
77
- <img src='https://github.com/armcburney.png?size=140'>
75
+ <td id='manu-wallner'>
76
+ <a href='https://github.com/milch'>
77
+ <img src='https://github.com/milch.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
80
80
  </td>
81
- <td id='danielle-tomlinson'>
82
- <a href='https://github.com/endocrimes'>
83
- <img src='https://github.com/endocrimes.png?size=140'>
81
+ <td id='jan-piotrowski'>
82
+ <a href='https://github.com/janpio'>
83
+ <img src='https://github.com/janpio.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
86
+ </td>
87
+ <td id='stefan-natchev'>
88
+ <a href='https://github.com/snatchev'>
89
+ <img src='https://github.com/snatchev.png?size=140'>
90
+ </a>
91
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
86
92
  </td>
87
93
  <td id='jérôme-lacoste'>
88
94
  <a href='https://github.com/lacostej'>
@@ -90,89 +96,83 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
96
  </a>
91
97
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
92
98
  </td>
93
- <td id='maksym-grebenets'>
94
- <a href='https://github.com/mgrebenets'>
95
- <img src='https://github.com/mgrebenets.png?size=140'>
96
- </a>
97
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
98
- </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='joshua-liebowitz'>
102
- <a href='https://github.com/taquitos'>
103
- <img src='https://github.com/taquitos.png?size=140'>
101
+ <td id='kohki-miki'>
102
+ <a href='https://github.com/giginet'>
103
+ <img src='https://github.com/giginet.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
106
106
  </td>
107
- <td id='jan-piotrowski'>
108
- <a href='https://github.com/janpio'>
109
- <img src='https://github.com/janpio.png?size=140'>
107
+ <td id='danielle-tomlinson'>
108
+ <a href='https://github.com/endocrimes'>
109
+ <img src='https://github.com/endocrimes.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
112
112
  </td>
113
- <td id='olivier-halligon'>
114
- <a href='https://github.com/AliSoftware'>
115
- <img src='https://github.com/AliSoftware.png?size=140'>
113
+ <td id='andrew-mcburney'>
114
+ <a href='https://github.com/armcburney'>
115
+ <img src='https://github.com/armcburney.png?size=140'>
116
116
  </a>
117
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
118
118
  </td>
119
- <td id='felix-krause'>
120
- <a href='https://github.com/KrauseFx'>
121
- <img src='https://github.com/KrauseFx.png?size=140'>
119
+ <td id='iulian-onofrei'>
120
+ <a href='https://github.com/revolter'>
121
+ <img src='https://github.com/revolter.png?size=140'>
122
122
  </a>
123
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
124
124
  </td>
125
- <td id='josh-holtz'>
126
- <a href='https://github.com/joshdholtz'>
127
- <img src='https://github.com/joshdholtz.png?size=140'>
125
+ <td id='helmut-januschka'>
126
+ <a href='https://github.com/hjanuschka'>
127
+ <img src='https://github.com/hjanuschka.png?size=140'>
128
128
  </a>
129
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='daniel-jankowski'>
134
- <a href='https://github.com/mollyIV'>
135
- <img src='https://github.com/mollyIV.png?size=140'>
133
+ <td id='joshua-liebowitz'>
134
+ <a href='https://github.com/taquitos'>
135
+ <img src='https://github.com/taquitos.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
138
138
  </td>
139
- <td id='fumiya-nakamura'>
140
- <a href='https://github.com/nafu'>
141
- <img src='https://github.com/nafu.png?size=140'>
139
+ <td id='aaron-brager'>
140
+ <a href='https://github.com/getaaron'>
141
+ <img src='https://github.com/getaaron.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
144
144
  </td>
145
- <td id='iulian-onofrei'>
146
- <a href='https://github.com/revolter'>
147
- <img src='https://github.com/revolter.png?size=140'>
145
+ <td id='jorge-revuelta-h'>
146
+ <a href='https://github.com/minuscorp'>
147
+ <img src='https://github.com/minuscorp.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
150
150
  </td>
151
- <td id='matthew-ellis'>
152
- <a href='https://github.com/matthewellis'>
153
- <img src='https://github.com/matthewellis.png?size=140'>
151
+ <td id='max-ott'>
152
+ <a href='https://github.com/max-ott'>
153
+ <img src='https://github.com/max-ott.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
156
156
  </td>
157
- <td id='manu-wallner'>
158
- <a href='https://github.com/milch'>
159
- <img src='https://github.com/milch.png?size=140'>
157
+ <td id='maksym-grebenets'>
158
+ <a href='https://github.com/mgrebenets'>
159
+ <img src='https://github.com/mgrebenets.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='jimmy-dee'>
166
- <a href='https://github.com/jdee'>
167
- <img src='https://github.com/jdee.png?size=140'>
165
+ <td id='josh-holtz'>
166
+ <a href='https://github.com/joshdholtz'>
167
+ <img src='https://github.com/joshdholtz.png?size=140'>
168
168
  </a>
169
- <h4 align='center'>Jimmy Dee</h4>
169
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
170
170
  </td>
171
- <td id='kohki-miki'>
172
- <a href='https://github.com/giginet'>
173
- <img src='https://github.com/giginet.png?size=140'>
171
+ <td id='luka-mirosevic'>
172
+ <a href='https://github.com/lmirosevic'>
173
+ <img src='https://github.com/lmirosevic.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -26,6 +26,7 @@ module Cert
26
26
  program :help_formatter, :compact
27
27
 
28
28
  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
29
+ global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
29
30
 
30
31
  command :create do |c|
31
32
  c.syntax = 'fastlane cert create'
@@ -12,6 +12,8 @@ module CredentialsManager
12
12
  program :version, Fastlane::VERSION
13
13
  program :description, 'Manage credentials for fastlane tools.'
14
14
 
15
+ global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
16
+
15
17
  # Command to add entry to Keychain
16
18
  command :add do |c|
17
19
  c.syntax = 'fastlane fastlane-credentials add'
@@ -97,7 +97,7 @@ module Deliver
97
97
  matching = {
98
98
  ScreenSize::IOS_35 => "iphone35",
99
99
  ScreenSize::IOS_40 => "iphone4",
100
- ScreenSize::IOS_47 => "iphone6", # also 7 and 8
100
+ ScreenSize::IOS_47 => "iphone6", # also 7 & 8
101
101
  ScreenSize::IOS_55 => "iphone6Plus", # also 7 Plus & 8 Plus
102
102
  ScreenSize::IOS_58 => "iphone58",
103
103
  ScreenSize::IOS_65 => "iphone65",
@@ -129,8 +129,8 @@ module Deliver
129
129
  matching = {
130
130
  ScreenSize::IOS_35 => "iPhone 4",
131
131
  ScreenSize::IOS_40 => "iPhone 5",
132
- ScreenSize::IOS_47 => "iPhone 6", # and 7
133
- ScreenSize::IOS_55 => "iPhone 6 Plus", # and 7 Plus
132
+ ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
133
+ ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
134
134
  ScreenSize::IOS_58 => "iPhone XS",
135
135
  ScreenSize::IOS_61 => "iPhone XR",
136
136
  ScreenSize::IOS_65 => "iPhone XS Max",
@@ -50,6 +50,7 @@ module Deliver
50
50
  program :help_formatter, :compact
51
51
 
52
52
  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
53
+ global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
53
54
 
54
55
  always_trace!
55
56
 
@@ -35,8 +35,8 @@ module Deliver
35
35
  # Returns a path relative to FastlaneFolder.path
36
36
  # This is needed as the Preview.html file is located inside FastlaneFolder.path
37
37
  def render_relative_path(export_path, path)
38
- export_path = Pathname.new(export_path)
39
- path = Pathname.new(path).relative_path_from(export_path)
38
+ export_path = Pathname.new(File.expand_path(export_path))
39
+ path = Pathname.new(File.expand_path(path)).relative_path_from(export_path)
40
40
  return path.to_path
41
41
  end
42
42
 
@@ -36,7 +36,11 @@ module Deliver
36
36
 
37
37
  if options[:build_number] && options[:build_number] != "latest"
38
38
  UI.message("Selecting existing build-number: #{options[:build_number]}")
39
- build = v.candidate_builds.detect { |a| a.build_version == options[:build_number] }
39
+ if app_version
40
+ build = v.candidate_builds.detect { |a| a.build_version == options[:build_number] && a.train_version == app_version }
41
+ else
42
+ build = v.candidate_builds.detect { |a| a.build_version == options[:build_number] }
43
+ end
40
44
  unless build
41
45
  UI.user_error!("Build number: #{options[:build_number]} does not exist")
42
46
  end
@@ -29,8 +29,8 @@ module Fastlane
29
29
  end
30
30
 
31
31
  def self.available_options
32
- # Define all options your action supports.
33
-
32
+ # Define all options your action supports.
33
+
34
34
  # Below a few examples
35
35
  [
36
36
  FastlaneCore::ConfigItem.new(key: :api_token,
@@ -67,13 +67,13 @@ module Fastlane
67
67
 
68
68
  def self.is_supported?(platform)
69
69
  # you can do things like
70
- #
70
+ #
71
71
  # true
72
- #
72
+ #
73
73
  # platform == :ios
74
- #
74
+ #
75
75
  # [:ios, :mac].include?(platform)
76
- #
76
+ #
77
77
 
78
78
  platform == :ios
79
79
  end
@@ -72,7 +72,7 @@
72
72
  <p id="footnote">
73
73
  This is a beta version and is not meant to share with the public.
74
74
  </p>
75
- <img src="https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane_medium.png" id="fastlaneLogo" />
75
+ <img src="https://fastlane.tools/assets/img/fastlane_icon.png" id="fastlaneLogo" />
76
76
  </body>
77
77
 
78
78
  <script type='text/javascript'>
@@ -156,7 +156,7 @@ module Fastlane
156
156
  [
157
157
  'cocoapods',
158
158
  'cocoapods(
159
- clean: true,
159
+ clean_install: true,
160
160
  podfile: "./CustomPodfile"
161
161
  )'
162
162
  ]
@@ -169,10 +169,6 @@ module Fastlane
169
169
 
170
170
  def self.details
171
171
  [
172
- "Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.",
173
- "Beta will continue working until May 4, 2020.",
174
- "Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.",
175
- "",
176
172
  "Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.",
177
173
  "Distributing to Groups: When using the `groups` parameter, it's important to use the group **alias** names for each group you'd like to distribute to. A group's alias can be found in the web UI. If you're viewing the Beta page, you can open the groups dialog by clicking the 'Manage Groups' button.",
178
174
  "This action uses the `submit` binary provided by the Crashlytics framework. If the binary is not found in its usual path, you'll need to specify the path manually by using the `crashlytics_path` option."
@@ -158,7 +158,7 @@ build_app(
158
158
  )
159
159
  ```
160
160
 
161
- **Note**: If you use [_fastlane_](https://fastlane.tools) with [_match_](https://fastlane.tools/match) you don't need to provide those values manually.
161
+ **Note**: If you use [_fastlane_](https://fastlane.tools) with [_match_](https://fastlane.tools/match) you don't need to provide those values manually, unless you pass a plist file into `export_options`
162
162
 
163
163
  For the list of available options run `xcodebuild -help`.
164
164
 
@@ -52,7 +52,25 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
52
52
 
53
53
  ##### Configuring your <a href="#ui-tests">UI Tests</a> for Screenshots
54
54
 
55
- 1. Add `@ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule();` to your tests class to handle automatic switching of locales
55
+ 1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
56
+ If you're using Java use:
57
+ ```java
58
+ @ClassRule
59
+ public static final LocaleTestRule localeTestRule = new LocaleTestRule();
60
+ ```
61
+ If you're using Kotlin use:
62
+ ```kotlin
63
+ @Rule @JvmField
64
+ val localeTestRule = LocaleTestRule()
65
+ ```
66
+ Important is the `@JvmField` annotation. It won't work like that:
67
+ ```kotlin
68
+ companion object {
69
+ @get:ClassRule
70
+ val localeTestRule = LocaleTestRule()
71
+ }
72
+ ```
73
+
56
74
  2. To capture screenshots, add the following to your tests `Screengrab.screenshot("name_of_screenshot_here");` on the appropriate screens
57
75
 
58
76
  # Generating Screenshots with Screengrab
@@ -137,6 +155,7 @@ fastlane action screengrab
137
155
  Check out [Testing UI for a Single App](http://developer.android.com/training/testing/ui-testing/espresso-testing.html) for an introduction to using Espresso for UI testing.
138
156
 
139
157
  ##### Example UI Test Class (Using JUnit4)
158
+ Java:
140
159
  ```java
141
160
  @RunWith(JUnit4.class)
142
161
  public class JUnit4StyleTests {
@@ -157,6 +176,28 @@ public class JUnit4StyleTests {
157
176
  }
158
177
 
159
178
  ```
179
+ Kotlin:
180
+ ```kotlin
181
+ @RunWith(JUnit4.class)
182
+ class JUnit4StyleTests {
183
+ @get:Rule
184
+ var activityRule = ActivityTestRule(MainActivity::class.java)
185
+
186
+ @Rule @JvmField
187
+ val localeTestRule = LocaleTestRule()
188
+
189
+ @Test
190
+ fun testTakeScreenshot() {
191
+ Screengrab.screenshot("before_button_click")
192
+
193
+ onView(withId(R.id.fab)).perform(click())
194
+
195
+ Screengrab.screenshot("after_button_click")
196
+ }
197
+ }
198
+
199
+ ```
200
+
160
201
  There is an [example project](https://github.com/fastlane/fastlane/tree/master/screengrab/example/src/androidTest/java/tools/fastlane/localetester) showing how to use use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run.
161
202
 
162
203
  Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method.
@@ -290,4 +331,3 @@ Sit back and enjoy your new screenshots!
290
331
  Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), [Android only allows one build type to be tested](http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing) which defaults to debug. That's why we use product flavors.
291
332
 
292
333
  </details>
293
-