fastlane 2.224.0 → 2.232.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -92
  3. data/bin/fastlane +2 -2
  4. data/cert/lib/cert/options.rb +7 -2
  5. data/cert/lib/cert/runner.rb +23 -11
  6. data/deliver/lib/assets/summary.html.erb +3 -3
  7. data/deliver/lib/deliver/app_screenshot.rb +215 -347
  8. data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -1
  9. data/deliver/lib/deliver/app_screenshot_validator.rb +5 -21
  10. data/deliver/lib/deliver/loader.rb +2 -9
  11. data/deliver/lib/deliver/options.rb +1 -1
  12. data/deliver/lib/deliver/runner.rb +1 -1
  13. data/deliver/lib/deliver/upload_metadata.rb +5 -0
  14. data/deliver/lib/deliver/upload_screenshots.rb +4 -2
  15. data/fastlane/lib/assets/completions/completion.bash +1 -1
  16. data/fastlane/lib/assets/completions/completion.sh +2 -2
  17. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +16 -15
  18. data/fastlane/lib/fastlane/actions/appium.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +6 -3
  20. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +12 -8
  21. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +56 -17
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +13 -1
  23. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/import_certificate.rb +9 -1
  25. data/fastlane/lib/fastlane/actions/import_from_git.rb +11 -4
  26. data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -1
  27. data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +3 -2
  28. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
  29. data/fastlane/lib/fastlane/actions/modify_services.rb +1 -0
  30. data/fastlane/lib/fastlane/actions/notarize.rb +4 -0
  31. data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  33. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -4
  35. data/fastlane/lib/fastlane/actions/testfairy.rb +41 -4
  36. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +6 -1
  37. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -1
  38. data/fastlane/lib/fastlane/actions/xcov.rb +1 -7
  39. data/fastlane/lib/fastlane/cli_tools_distributor.rb +9 -0
  40. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +4 -4
  41. data/fastlane/lib/fastlane/erb_template_helper.rb +1 -7
  42. data/fastlane/lib/fastlane/fast_file.rb +9 -6
  43. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +4 -0
  44. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  45. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +20 -20
  46. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
  47. data/fastlane/lib/fastlane/version.rb +2 -1
  48. data/fastlane/swift/Actions.swift +1 -1
  49. data/fastlane/swift/Appfile.swift +13 -5
  50. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  51. data/fastlane/swift/Atomic.swift +1 -1
  52. data/fastlane/swift/ControlCommand.swift +5 -4
  53. data/fastlane/swift/Deliverfile.swift +2 -2
  54. data/fastlane/swift/DeliverfileProtocol.swift +265 -68
  55. data/fastlane/swift/Fastlane.swift +187 -168
  56. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +3 -1
  57. data/fastlane/swift/Gymfile.swift +2 -2
  58. data/fastlane/swift/GymfileProtocol.swift +227 -54
  59. data/fastlane/swift/LaneFileProtocol.swift +7 -5
  60. data/fastlane/swift/MainProcess.swift +1 -1
  61. data/fastlane/swift/Matchfile.swift +2 -2
  62. data/fastlane/swift/MatchfileProtocol.swift +226 -59
  63. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  64. data/fastlane/swift/Plugins.swift +1 -1
  65. data/fastlane/swift/Precheckfile.swift +2 -2
  66. data/fastlane/swift/PrecheckfileProtocol.swift +45 -13
  67. data/fastlane/swift/RubyCommand.swift +6 -7
  68. data/fastlane/swift/RubyCommandable.swift +1 -1
  69. data/fastlane/swift/Runner.swift +3 -3
  70. data/fastlane/swift/RunnerArgument.swift +1 -1
  71. data/fastlane/swift/Scanfile.swift +2 -2
  72. data/fastlane/swift/ScanfileProtocol.swift +334 -84
  73. data/fastlane/swift/Screengrabfile.swift +2 -2
  74. data/fastlane/swift/ScreengrabfileProtocol.swift +89 -24
  75. data/fastlane/swift/Snapshotfile.swift +2 -2
  76. data/fastlane/swift/SnapshotfileProtocol.swift +216 -53
  77. data/fastlane/swift/SocketClient.swift +7 -7
  78. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  79. data/fastlane/swift/SocketResponse.swift +1 -1
  80. data/fastlane/swift/formatting/Brewfile.lock.json +15 -25
  81. data/fastlane/swift/formatting/Rakefile +1 -2
  82. data/fastlane/swift/main.swift +1 -1
  83. data/fastlane_core/lib/assets/XMLTemplate.xml.erb +5 -1
  84. data/fastlane_core/lib/fastlane_core/cert_checker.rb +10 -0
  85. data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -1
  86. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +5 -1
  87. data/fastlane_core/lib/fastlane_core/helper.rb +6 -1
  88. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +4 -14
  89. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +19 -2
  90. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +143 -106
  91. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +3 -1
  92. data/fastlane_core/lib/fastlane_core/project.rb +8 -0
  93. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +7 -1
  94. data/frameit/lib/frameit/device.rb +2 -2
  95. data/frameit/lib/frameit/device_types.rb +108 -70
  96. data/frameit/lib/frameit/template_finder.rb +1 -1
  97. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +1 -0
  98. data/gym/lib/gym/module.rb +9 -4
  99. data/gym/lib/gym/options.rb +20 -2
  100. data/gym/lib/gym/runner.rb +38 -3
  101. data/match/lib/assets/READMETemplate.md +2 -2
  102. data/match/lib/match/generator.rb +2 -2
  103. data/match/lib/match/options.rb +1 -0
  104. data/match/lib/match/runner.rb +1 -1
  105. data/match/lib/match/storage/s3_storage.rb +4 -7
  106. data/pilot/lib/pilot/build_manager.rb +7 -1
  107. data/precheck/lib/precheck/options.rb +1 -1
  108. data/produce/lib/produce/commands_generator.rb +2 -0
  109. data/produce/lib/produce/developer_center.rb +1 -0
  110. data/produce/lib/produce/options.rb +1 -1
  111. data/produce/lib/produce/service.rb +6 -1
  112. data/scan/lib/scan/error_handler.rb +5 -0
  113. data/scan/lib/scan/options.rb +13 -3
  114. data/scan/lib/scan/test_command_generator.rb +10 -2
  115. data/sigh/lib/assets/resign.sh +7 -5
  116. data/sigh/lib/sigh/local_manage.rb +6 -4
  117. data/sigh/lib/sigh/options.rb +1 -0
  118. data/sigh/lib/sigh/runner.rb +23 -3
  119. data/snapshot/lib/snapshot/detect_values.rb +1 -1
  120. data/snapshot/lib/snapshot/options.rb +13 -1
  121. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -2
  122. data/spaceship/lib/spaceship/client.rb +153 -22
  123. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +65 -9
  124. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +4 -4
  125. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -1
  126. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +16 -16
  127. data/spaceship/lib/spaceship/connect_api/models/build_upload.rb +42 -0
  128. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +2 -0
  129. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +33 -2
  130. data/spaceship/lib/spaceship/connect_api/models/device.rb +1 -2
  131. data/spaceship/lib/spaceship/connect_api/models/profile.rb +2 -3
  132. data/spaceship/lib/spaceship/connect_api/models/webhook.rb +62 -0
  133. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +0 -6
  134. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
  135. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +38 -0
  136. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  137. data/spaceship/lib/spaceship/errors.rb +23 -6
  138. data/spaceship/lib/spaceship/portal/key.rb +22 -3
  139. data/spaceship/lib/spaceship/portal/portal_client.rb +29 -2
  140. data/spaceship/lib/spaceship/spaceauth_runner.rb +5 -15
  141. data/supply/lib/supply/client.rb +18 -1
  142. data/supply/lib/supply/uploader.rb +22 -11
  143. data/trainer/lib/trainer/legacy_xcresult.rb +586 -0
  144. data/trainer/lib/trainer/options.rb +5 -0
  145. data/trainer/lib/trainer/plist_test_summary_parser.rb +84 -0
  146. data/trainer/lib/trainer/test_parser.rb +12 -293
  147. data/trainer/lib/trainer/xcresult/helper.rb +63 -0
  148. data/trainer/lib/trainer/xcresult/repetition.rb +39 -0
  149. data/trainer/lib/trainer/xcresult/test_case.rb +221 -0
  150. data/trainer/lib/trainer/xcresult/test_case_attributes.rb +49 -0
  151. data/trainer/lib/trainer/xcresult/test_plan.rb +91 -0
  152. data/trainer/lib/trainer/xcresult/test_suite.rb +134 -0
  153. data/trainer/lib/trainer/xcresult.rb +31 -388
  154. data/trainer/lib/trainer.rb +3 -1
  155. metadata +172 -33
  156. data/fastlane/lib/fastlane/actions/hipchat.rb +0 -200
  157. data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +0 -14
  158. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +0 -43
  159. data/fastlane/lib/fastlane/plugins/template/.travis.yml +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '03087b990116a12305e2b3d126a79e15c3e363f3e8601024507f9104c04de546'
4
- data.tar.gz: 7a5d5d31f16469a2b34e902407db12cae37ff17a03e2f244d72ba2027f65ec37
3
+ metadata.gz: 2622d3578122878982a9b7d811fe4a292ed99929665c6260ad5f16dc687394ef
4
+ data.tar.gz: 6b0ea9b956f1aa5e1cadad14947045227e23d7dfe06d878b570ba70a6cf5f8ff
5
5
  SHA512:
6
- metadata.gz: 22a7c5805f0811df1d989d32e178264b668acee3d2047944e5fb2457a055b352c5684b7ad0c6335c33051bda2e516b06a62a2d50c6b8a26303c3f3043468b509
7
- data.tar.gz: 5daafa423e4afb1e8a52031b01756f5d2564bbee30140ce171747005a0de73b54f4042272022337ef3a2ee44d474fdf849cacd1548bf1b937783438b905d3480
6
+ metadata.gz: 660e9e37dbf36f1894fbc6a813c794b12e3201428812777d2a287b9cf22911ea6b0fc8c004da7050c1ba1ebb4922b1006f7fdb39bda8b41548f38dd2320c3a3f
7
+ data.tar.gz: bf7c1b8f65cbb1faba9242d21e37c595ae2f3e3651db49b9e8af32a8360a993d60783a947681bb0fa5ed13069aa3337354c136bf70d63c96c854ffa15d11f050
data/README.md CHANGED
@@ -35,29 +35,17 @@ 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='manu-wallner'>
39
- <a href='https://github.com/milch'>
40
- <img src='https://github.com/milch.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
43
- </td>
44
- <td id='helmut-januschka'>
45
- <a href='https://github.com/hjanuschka'>
46
- <img src='https://github.com/hjanuschka.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
49
- </td>
50
- <td id='max-ott'>
51
- <a href='https://github.com/max-ott'>
52
- <img src='https://github.com/max-ott.png' width='140px;'>
38
+ <td id='jan-piotrowski'>
39
+ <a href='https://github.com/janpio'>
40
+ <img src='https://github.com/janpio.png' width='140px;'>
53
41
  </a>
54
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
55
43
  </td>
56
- <td id='olivier-halligon'>
57
- <a href='https://github.com/AliSoftware'>
58
- <img src='https://github.com/AliSoftware.png' width='140px;'>
44
+ <td id='kohki-miki'>
45
+ <a href='https://github.com/giginet'>
46
+ <img src='https://github.com/giginet.png' width='140px;'>
59
47
  </a>
60
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
61
49
  </td>
62
50
  <td id='felix-krause'>
63
51
  <a href='https://github.com/KrauseFx'>
@@ -65,19 +53,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
65
53
  </a>
66
54
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
67
55
  </td>
68
- </tr>
69
- <tr>
70
- <td id='danielle-tomlinson'>
71
- <a href='https://github.com/endocrimes'>
72
- <img src='https://github.com/endocrimes.png' width='140px;'>
73
- </a>
74
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
75
- </td>
76
- <td id='andrew-mcburney'>
77
- <a href='https://github.com/armcburney'>
78
- <img src='https://github.com/armcburney.png' width='140px;'>
56
+ <td id='helmut-januschka'>
57
+ <a href='https://github.com/hjanuschka'>
58
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
79
59
  </a>
80
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
81
61
  </td>
82
62
  <td id='josh-holtz'>
83
63
  <a href='https://github.com/joshdholtz'>
@@ -85,37 +65,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
85
65
  </a>
86
66
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
87
67
  </td>
88
- <td id='joshua-liebowitz'>
89
- <a href='https://github.com/taquitos'>
90
- <img src='https://github.com/taquitos.png' width='140px;'>
91
- </a>
92
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
93
- </td>
94
- <td id='fumiya-nakamura'>
95
- <a href='https://github.com/nafu'>
96
- <img src='https://github.com/nafu.png' width='140px;'>
97
- </a>
98
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
99
- </td>
100
68
  </tr>
101
69
  <tr>
102
- <td id='jorge-revuelta-h'>
103
- <a href='https://github.com/minuscorp'>
104
- <img src='https://github.com/minuscorp.png' width='140px;'>
105
- </a>
106
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
107
- </td>
108
- <td id='roger-oba'>
109
- <a href='https://github.com/rogerluan'>
110
- <img src='https://github.com/rogerluan.png' width='140px;'>
70
+ <td id='daniel-jankowski'>
71
+ <a href='https://github.com/mollyIV'>
72
+ <img src='https://github.com/mollyIV.png' width='140px;'>
111
73
  </a>
112
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
113
75
  </td>
114
- <td id='satoshi-namai'>
115
- <a href='https://github.com/ainame'>
116
- <img src='https://github.com/ainame.png' width='140px;'>
76
+ <td id='jimmy-dee'>
77
+ <a href='https://github.com/jdee'>
78
+ <img src='https://github.com/jdee.png' width='140px;'>
117
79
  </a>
118
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
80
+ <h4 align='center'>Jimmy Dee</h4>
119
81
  </td>
120
82
  <td id='matthew-ellis'>
121
83
  <a href='https://github.com/matthewellis'>
@@ -123,25 +85,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
123
85
  </a>
124
86
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
125
87
  </td>
126
- <td id='kohki-miki'>
127
- <a href='https://github.com/giginet'>
128
- <img src='https://github.com/giginet.png' width='140px;'>
88
+ <td id='maksym-grebenets'>
89
+ <a href='https://github.com/mgrebenets'>
90
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
129
91
  </a>
130
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
131
93
  </td>
132
- </tr>
133
- <tr>
134
- <td id='jimmy-dee'>
135
- <a href='https://github.com/jdee'>
136
- <img src='https://github.com/jdee.png' width='140px;'>
94
+ <td id='olivier-halligon'>
95
+ <a href='https://github.com/AliSoftware'>
96
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
137
97
  </a>
138
- <h4 align='center'>Jimmy Dee</h4>
98
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
139
99
  </td>
140
- <td id='stefan-natchev'>
141
- <a href='https://github.com/snatchev'>
142
- <img src='https://github.com/snatchev.png' width='140px;'>
100
+ </tr>
101
+ <tr>
102
+ <td id='andrew-mcburney'>
103
+ <a href='https://github.com/armcburney'>
104
+ <img src='https://github.com/armcburney.png' width='140px;'>
143
105
  </a>
144
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
145
107
  </td>
146
108
  <td id='manish-rathi'>
147
109
  <a href='https://github.com/crazymanish'>
@@ -149,17 +111,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
111
  </a>
150
112
  <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
151
113
  </td>
152
- <td id='daniel-jankowski'>
153
- <a href='https://github.com/mollyIV'>
154
- <img src='https://github.com/mollyIV.png' width='140px;'>
114
+ <td id='danielle-tomlinson'>
115
+ <a href='https://github.com/endocrimes'>
116
+ <img src='https://github.com/endocrimes.png' width='140px;'>
155
117
  </a>
156
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
157
119
  </td>
158
- <td id='luka-mirosevic'>
159
- <a href='https://github.com/lmirosevic'>
160
- <img src='https://github.com/lmirosevic.png' width='140px;'>
120
+ <td id='fumiya-nakamura'>
121
+ <a href='https://github.com/nafu'>
122
+ <img src='https://github.com/nafu.png' width='140px;'>
161
123
  </a>
162
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
125
+ </td>
126
+ <td id='iulian-onofrei'>
127
+ <a href='https://github.com/revolter'>
128
+ <img src='https://github.com/revolter.png' width='140px;'>
129
+ </a>
130
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
163
131
  </td>
164
132
  </tr>
165
133
  <tr>
@@ -181,25 +149,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
149
  </a>
182
150
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
183
151
  </td>
184
- <td id='jan-piotrowski'>
185
- <a href='https://github.com/janpio'>
186
- <img src='https://github.com/janpio.png' width='140px;'>
152
+ <td id='max-ott'>
153
+ <a href='https://github.com/max-ott'>
154
+ <img src='https://github.com/max-ott.png' width='140px;'>
187
155
  </a>
188
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
189
157
  </td>
190
- <td id='iulian-onofrei'>
191
- <a href='https://github.com/revolter'>
192
- <img src='https://github.com/revolter.png' width='140px;'>
158
+ <td id='manu-wallner'>
159
+ <a href='https://github.com/milch'>
160
+ <img src='https://github.com/milch.png' width='140px;'>
193
161
  </a>
194
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
195
163
  </td>
196
164
  </tr>
197
165
  <tr>
198
- <td id='maksym-grebenets'>
199
- <a href='https://github.com/mgrebenets'>
200
- <img src='https://github.com/mgrebenets.png' width='140px;'>
166
+ <td id='joshua-liebowitz'>
167
+ <a href='https://github.com/taquitos'>
168
+ <img src='https://github.com/taquitos.png' width='140px;'>
201
169
  </a>
202
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
170
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
171
+ </td>
172
+ <td id='satoshi-namai'>
173
+ <a href='https://github.com/ainame'>
174
+ <img src='https://github.com/ainame.png' width='140px;'>
175
+ </a>
176
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
177
+ </td>
178
+ <td id='roger-oba'>
179
+ <a href='https://github.com/rogerluan'>
180
+ <img src='https://github.com/rogerluan.png' width='140px;'>
181
+ </a>
182
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
183
+ </td>
184
+ <td id='luka-mirosevic'>
185
+ <a href='https://github.com/lmirosevic'>
186
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
187
+ </a>
188
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
189
+ </td>
190
+ <td id='connor-tumbleson'>
191
+ <a href='https://github.com/ibotpeaches'>
192
+ <img src='https://github.com/ibotpeaches.png' width='140px;'>
193
+ </a>
194
+ <h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
195
+ </td>
196
+ </tr>
197
+ <tr>
198
+ <td id='stefan-natchev'>
199
+ <a href='https://github.com/snatchev'>
200
+ <img src='https://github.com/snatchev.png' width='140px;'>
201
+ </a>
202
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
203
+ </td>
204
+ <td id='jorge-revuelta-h'>
205
+ <a href='https://github.com/minuscorp'>
206
+ <img src='https://github.com/minuscorp.png' width='140px;'>
207
+ </a>
208
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
203
209
  </td>
204
210
  </table>
205
211
 
data/bin/fastlane CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- if RUBY_VERSION < '2.0.0'
4
- abort("fastlane requires Ruby 2.0.0 or higher")
3
+ if RUBY_VERSION < '2.7.0'
4
+ abort("fastlane requires Ruby 2.7.0 or higher")
5
5
  end
6
6
 
7
7
  def self.windows?
@@ -100,9 +100,11 @@ module Cert
100
100
  env_name: "CERT_KEYCHAIN_PATH",
101
101
  description: "Path to a custom keychain",
102
102
  code_gen_sensitive: true,
103
- default_value: Dir["#{Dir.home}/Library/Keychains/login.keychain", "#{Dir.home}/Library/Keychains/login.keychain-db"].last,
103
+ default_value: Helper.mac? ? Dir["#{Dir.home}/Library/Keychains/login.keychain", "#{Dir.home}/Library/Keychains/login.keychain-db"].last : nil,
104
104
  default_value_dynamic: true,
105
+ optional: true,
105
106
  verify_block: proc do |value|
107
+ UI.user_error!("Keychain is not supported on platforms other than macOS") if !Helper.mac? && value
106
108
  value = File.expand_path(value)
107
109
  UI.user_error!("Keychain not found at path '#{value}'") unless File.exist?(value)
108
110
  end),
@@ -111,7 +113,10 @@ module Cert
111
113
  env_name: "CERT_KEYCHAIN_PASSWORD",
112
114
  sensitive: true,
113
115
  description: "This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password",
114
- optional: true),
116
+ optional: true,
117
+ verify_block: proc do |value|
118
+ UI.user_error!("Keychain is not supported on platforms other than macOS") unless Helper.mac?
119
+ end),
115
120
  FastlaneCore::ConfigItem.new(key: :skip_set_partition_list,
116
121
  short_option: "-P",
117
122
  env_name: "CERT_SKIP_SET_PARTITION_LIST",
@@ -12,10 +12,14 @@ module Cert
12
12
  def launch
13
13
  run
14
14
 
15
- installed = FastlaneCore::CertChecker.installed?(ENV["CER_FILE_PATH"], in_keychain: ENV["CER_KEYCHAIN_PATH"])
16
- UI.message("Verifying the certificate is properly installed locally...")
17
- UI.user_error!("Could not find the newly generated certificate installed", show_github_issues: true) unless installed
18
- UI.success("Successfully installed certificate #{ENV['CER_CERTIFICATE_ID']}")
15
+ if Helper.mac?
16
+ UI.message("Verifying the certificate is properly installed locally...")
17
+ installed = FastlaneCore::CertChecker.installed?(ENV["CER_FILE_PATH"], in_keychain: ENV["CER_KEYCHAIN_PATH"])
18
+ UI.user_error!("Could not find the newly generated certificate installed", show_github_issues: true) unless installed
19
+ UI.success("Successfully installed certificate #{ENV['CER_CERTIFICATE_ID']}")
20
+ else
21
+ UI.message("Skipping verifying certificates as it would not work on this operating system.")
22
+ end
19
23
  return ENV["CER_FILE_PATH"]
20
24
  end
21
25
 
@@ -45,7 +49,7 @@ module Cert
45
49
 
46
50
  should_create = Cert.config[:force]
47
51
  unless should_create
48
- cert_path = find_existing_cert
52
+ cert_path = find_existing_cert if Helper.mac?
49
53
  should_create = cert_path.nil?
50
54
  end
51
55
 
@@ -223,17 +227,25 @@ module Cert
223
227
 
224
228
  cert_path = store_certificate(certificate, Cert.config[:filename])
225
229
 
226
- # Import all the things into the Keychain
227
- keychain = File.expand_path(Cert.config[:keychain_path])
228
- password = Cert.config[:keychain_password]
229
- FastlaneCore::KeychainImporter.import_file(private_key_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
230
- FastlaneCore::KeychainImporter.import_file(cert_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
230
+ if Helper.mac?
231
+ # Import all the things into the Keychain
232
+ keychain = File.expand_path(Cert.config[:keychain_path])
233
+ password = Cert.config[:keychain_password]
234
+ FastlaneCore::KeychainImporter.import_file(private_key_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
235
+ FastlaneCore::KeychainImporter.import_file(cert_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
236
+ else
237
+ UI.message("Skipping importing certificates as it would not work on this operating system.")
238
+ end
231
239
 
232
240
  # Environment variables for the fastlane action
233
241
  ENV["CER_CERTIFICATE_ID"] = certificate.id
234
242
  ENV["CER_FILE_PATH"] = cert_path
235
243
 
236
- UI.success("Successfully generated #{certificate.id} which was imported to the local machine.")
244
+ if Helper.mac?
245
+ UI.success("Successfully generated #{certificate.id} which was imported to the local machine.")
246
+ else
247
+ UI.success("Successfully generated #{certificate.id}")
248
+ end
237
249
 
238
250
  return cert_path
239
251
  end
@@ -228,10 +228,10 @@
228
228
  </div>
229
229
  <% elsif @screenshots.count > 0 %>
230
230
  <% sc = @screenshots.find_all { |s| s.language == language } %>
231
- <% sc_by_size = sc.group_by { |i| i.screen_size } %>
231
+ <% sc_by_size = sc.group_by { |i| i.display_type } %>
232
232
 
233
- <% sc_by_size.keys.sort.each do |screen_size| %>
234
- <% screenshots = sc_by_size[screen_size].sort { |a, b| [a.path] <=> [b.path] } %>
233
+ <% sc_by_size.keys.sort.each do |display_type| %>
234
+ <% screenshots = sc_by_size[display_type].sort { |a, b| [a.path] <=> [b.path] } %>
235
235
  <%# we are guaranteed to have at least one element because of the group_by %>
236
236
  <h4><%= screenshots[0].formatted_name %></h4>
237
237
  <div class="app-screenshot-row">