fastlane 2.174.0 → 2.175.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -74
  3. data/cert/lib/cert/options.rb +2 -2
  4. data/deliver/lib/deliver/options.rb +2 -2
  5. data/deliver/lib/deliver/upload_screenshots.rb +2 -1
  6. data/fastlane/lib/fastlane/actions/adb.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +2 -2
  8. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
  9. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  10. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +8 -2
  11. data/fastlane/lib/fastlane/actions/download_dsyms.rb +5 -15
  12. data/fastlane/lib/fastlane/actions/git_commit.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
  14. data/fastlane/lib/fastlane/actions/register_device.rb +2 -2
  15. data/fastlane/lib/fastlane/actions/register_devices.rb +2 -2
  16. data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
  17. data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +1 -1
  19. data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
  20. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  21. data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
  22. data/fastlane/lib/fastlane/version.rb +1 -1
  23. data/fastlane/swift/Deliverfile.swift +1 -1
  24. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  25. data/fastlane/swift/Fastlane.swift +4 -4
  26. data/fastlane/swift/Gymfile.swift +1 -1
  27. data/fastlane/swift/GymfileProtocol.swift +1 -1
  28. data/fastlane/swift/Matchfile.swift +1 -1
  29. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  30. data/fastlane/swift/Precheckfile.swift +1 -1
  31. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  32. data/fastlane/swift/Scanfile.swift +1 -1
  33. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  34. data/fastlane/swift/Screengrabfile.swift +1 -1
  35. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  36. data/fastlane/swift/Snapshotfile.swift +1 -1
  37. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  38. data/fastlane/swift/formatting/Brewfile.lock.json +4 -2
  39. data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
  40. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +1 -1
  41. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +23 -0
  42. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +2 -4
  43. data/fastlane_core/lib/fastlane_core/helper.rb +26 -5
  44. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  45. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
  46. data/match/lib/match/nuke.rb +5 -0
  47. data/match/lib/match/options.rb +2 -2
  48. data/pilot/lib/pilot/options.rb +2 -2
  49. data/precheck/lib/precheck/options.rb +2 -2
  50. data/screengrab/lib/screengrab/android_environment.rb +2 -2
  51. data/sigh/lib/sigh/options.rb +2 -2
  52. data/spaceship/README.md +2 -2
  53. data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
  54. data/spaceship/lib/spaceship/playground.rb +2 -2
  55. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  56. metadata +32 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4661f027a61fae05c35c80827aedd5435cbf631579a1232061edd76bb9c8df61
4
- data.tar.gz: 88f4f9a19d0136ba3acb5cc2dffe65308bb6437eefc56ae39692b78590a385f1
3
+ metadata.gz: 68170ec370531b330f2955c2d41ba3034cee82eed1684062f7850fb4cb684848
4
+ data.tar.gz: 46be2e9005002001ecad77101f3ef29fb3b8ce693f240be32a40476a21949ba7
5
5
  SHA512:
6
- metadata.gz: 84f565e3caea07cb1dbad2c4dbe47dec93414cc5fb104b989087ad79744fb3c41b8d31e369b39698dc89aa2688b74fc1ddf6617a115de6e4f5381b11ac7d410b
7
- data.tar.gz: 693492a716a243e76e4a4a02452a4cfc83b0ee9d09092d7b8442151ab2b2370eabddbadddcd92d7e6b11a733f0bd7fe92f2bbfd7077c109abb1ff42602fe661d
6
+ metadata.gz: 819474aabb8daecf3543a068641d84ef7cefb77626660027e8bd3bc98701d5983b8a05a7a892f54015cfc4537d7ae930a8b1f3aa5eb860420dcc4d574b599281
7
+ data.tar.gz: 19916ecfea7aef5c4371bd6ae6f420c6694e197eca113b2db73180deb9f4ceec84baa652586dab4d8633d40ead0f6c100e50a23480fa75b499a4c2d3ec425821
data/README.md CHANGED
@@ -34,75 +34,75 @@ 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='aaron-brager'>
38
- <a href='https://github.com/getaaron'>
39
- <img src='https://github.com/getaaron.png?size=140'>
37
+ <td id='kohki-miki'>
38
+ <a href='https://github.com/giginet'>
39
+ <img src='https://github.com/giginet.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
42
42
  </td>
43
- <td id='jérôme-lacoste'>
44
- <a href='https://github.com/lacostej'>
45
- <img src='https://github.com/lacostej.png?size=140'>
43
+ <td id='max-ott'>
44
+ <a href='https://github.com/max-ott'>
45
+ <img src='https://github.com/max-ott.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
48
48
  </td>
49
- <td id='danielle-tomlinson'>
50
- <a href='https://github.com/endocrimes'>
51
- <img src='https://github.com/endocrimes.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/endocrimes'>Danielle Tomlinson</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
54
54
  </td>
55
- <td id='iulian-onofrei'>
56
- <a href='https://github.com/revolter'>
57
- <img src='https://github.com/revolter.png?size=140'>
55
+ <td id='stefan-natchev'>
56
+ <a href='https://github.com/snatchev'>
57
+ <img src='https://github.com/snatchev.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
60
60
  </td>
61
- <td id='olivier-halligon'>
62
- <a href='https://github.com/AliSoftware'>
63
- <img src='https://github.com/AliSoftware.png?size=140'>
61
+ <td id='josh-holtz'>
62
+ <a href='https://github.com/joshdholtz'>
63
+ <img src='https://github.com/joshdholtz.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</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='maksym-grebenets'>
70
+ <a href='https://github.com/mgrebenets'>
71
+ <img src='https://github.com/mgrebenets.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/mgrebenets'>Maksym Grebenets</a></h4>
74
74
  </td>
75
- <td id='max-ott'>
76
- <a href='https://github.com/max-ott'>
77
- <img src='https://github.com/max-ott.png?size=140'>
75
+ <td id='felix-krause'>
76
+ <a href='https://github.com/KrauseFx'>
77
+ <img src='https://github.com/KrauseFx.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
80
80
  </td>
81
- <td id='fumiya-nakamura'>
82
- <a href='https://github.com/nafu'>
83
- <img src='https://github.com/nafu.png?size=140'>
81
+ <td id='danielle-tomlinson'>
82
+ <a href='https://github.com/endocrimes'>
83
+ <img src='https://github.com/endocrimes.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
86
86
  </td>
87
- <td id='maksym-grebenets'>
88
- <a href='https://github.com/mgrebenets'>
89
- <img src='https://github.com/mgrebenets.png?size=140'>
87
+ <td id='andrew-mcburney'>
88
+ <a href='https://github.com/armcburney'>
89
+ <img src='https://github.com/armcburney.png?size=140'>
90
90
  </a>
91
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
92
92
  </td>
93
- <td id='stefan-natchev'>
94
- <a href='https://github.com/snatchev'>
95
- <img src='https://github.com/snatchev.png?size=140'>
93
+ <td id='jérôme-lacoste'>
94
+ <a href='https://github.com/lacostej'>
95
+ <img src='https://github.com/lacostej.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='felix-krause'>
102
- <a href='https://github.com/KrauseFx'>
103
- <img src='https://github.com/KrauseFx.png?size=140'>
101
+ <td id='iulian-onofrei'>
102
+ <a href='https://github.com/revolter'>
103
+ <img src='https://github.com/revolter.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
106
106
  </td>
107
107
  <td id='jimmy-dee'>
108
108
  <a href='https://github.com/jdee'>
@@ -110,50 +110,50 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
110
110
  </a>
111
111
  <h4 align='center'>Jimmy Dee</h4>
112
112
  </td>
113
+ <td id='joshua-liebowitz'>
114
+ <a href='https://github.com/taquitos'>
115
+ <img src='https://github.com/taquitos.png?size=140'>
116
+ </a>
117
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
118
+ </td>
119
+ <td id='aaron-brager'>
120
+ <a href='https://github.com/getaaron'>
121
+ <img src='https://github.com/getaaron.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
124
+ </td>
113
125
  <td id='daniel-jankowski'>
114
126
  <a href='https://github.com/mollyIV'>
115
127
  <img src='https://github.com/mollyIV.png?size=140'>
116
128
  </a>
117
129
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
118
130
  </td>
119
- <td id='josh-holtz'>
120
- <a href='https://github.com/joshdholtz'>
121
- <img src='https://github.com/joshdholtz.png?size=140'>
131
+ </tr>
132
+ <tr>
133
+ <td id='fumiya-nakamura'>
134
+ <a href='https://github.com/nafu'>
135
+ <img src='https://github.com/nafu.png?size=140'>
122
136
  </a>
123
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
124
138
  </td>
125
- <td id='jan-piotrowski'>
126
- <a href='https://github.com/janpio'>
127
- <img src='https://github.com/janpio.png?size=140'>
139
+ <td id='luka-mirosevic'>
140
+ <a href='https://github.com/lmirosevic'>
141
+ <img src='https://github.com/lmirosevic.png?size=140'>
128
142
  </a>
129
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
130
144
  </td>
131
- </tr>
132
- <tr>
133
145
  <td id='jorge-revuelta-h'>
134
146
  <a href='https://github.com/minuscorp'>
135
147
  <img src='https://github.com/minuscorp.png?size=140'>
136
148
  </a>
137
149
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
138
150
  </td>
139
- <td id='andrew-mcburney'>
140
- <a href='https://github.com/armcburney'>
141
- <img src='https://github.com/armcburney.png?size=140'>
142
- </a>
143
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
144
- </td>
145
151
  <td id='manu-wallner'>
146
152
  <a href='https://github.com/milch'>
147
153
  <img src='https://github.com/milch.png?size=140'>
148
154
  </a>
149
155
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
150
156
  </td>
151
- <td id='kohki-miki'>
152
- <a href='https://github.com/giginet'>
153
- <img src='https://github.com/giginet.png?size=140'>
154
- </a>
155
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
156
- </td>
157
157
  <td id='helmut-januschka'>
158
158
  <a href='https://github.com/hjanuschka'>
159
159
  <img src='https://github.com/hjanuschka.png?size=140'>
@@ -162,17 +162,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='matthew-ellis'>
166
- <a href='https://github.com/matthewellis'>
167
- <img src='https://github.com/matthewellis.png?size=140'>
165
+ <td id='olivier-halligon'>
166
+ <a href='https://github.com/AliSoftware'>
167
+ <img src='https://github.com/AliSoftware.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
170
170
  </td>
171
- <td id='joshua-liebowitz'>
172
- <a href='https://github.com/taquitos'>
173
- <img src='https://github.com/taquitos.png?size=140'>
171
+ <td id='jan-piotrowski'>
172
+ <a href='https://github.com/janpio'>
173
+ <img src='https://github.com/janpio.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -38,7 +38,7 @@ module Cert
38
38
 
39
39
  # App Store Connect API
40
40
  FastlaneCore::ConfigItem.new(key: :api_key_path,
41
- env_name: "DELIVER_API_KEY_PATH",
41
+ env_names: ["CERT_API_KEY_PATH", "DELIVER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
42
42
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
43
43
  optional: true,
44
44
  conflicting_options: [:api_key],
@@ -46,7 +46,7 @@ module Cert
46
46
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
47
47
  end),
48
48
  FastlaneCore::ConfigItem.new(key: :api_key,
49
- env_name: "DELIVER_API_KEY",
49
+ env_names: ["CERT_API_KEY", "DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
50
50
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
51
51
  type: Hash,
52
52
  optional: true,
@@ -13,7 +13,7 @@ module Deliver
13
13
 
14
14
  [
15
15
  FastlaneCore::ConfigItem.new(key: :api_key_path,
16
- env_name: "DELIVER_API_KEY_PATH",
16
+ env_names: ["DELIVER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
17
17
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
18
18
  optional: true,
19
19
  conflicting_options: [:api_key],
@@ -21,7 +21,7 @@ module Deliver
21
21
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
22
22
  end),
23
23
  FastlaneCore::ConfigItem.new(key: :api_key,
24
- env_name: "DELIVER_API_KEY",
24
+ env_names: ["DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
25
25
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
26
26
  type: Hash,
27
27
  optional: true,
@@ -231,12 +231,13 @@ module Deliver
231
231
  end
232
232
 
233
233
  def sort_screenshots(localizations)
234
+ require 'naturally'
234
235
  iterator = AppScreenshotIterator.new(localizations)
235
236
 
236
237
  # Re-order screenshots within app_screenshot_set
237
238
  worker = QueueWorker.new do |app_screenshot_set|
238
239
  original_ids = app_screenshot_set.app_screenshots.map(&:id)
239
- sorted_ids = app_screenshot_set.app_screenshots.sort_by(&:file_name).map(&:id)
240
+ sorted_ids = Naturally.sort(app_screenshot_set.app_screenshots, by: :file_name).map(&:id)
240
241
  if original_ids != sorted_ids
241
242
  app_screenshot_set.reorder_screenshots(app_screenshot_ids: sorted_ids)
242
243
  end
@@ -37,7 +37,7 @@ module Fastlane
37
37
  FastlaneCore::ConfigItem.new(key: :adb_path,
38
38
  env_name: "FL_ADB_PATH",
39
39
  optional: true,
40
- description: "The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set)",
40
+ description: "The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set)",
41
41
  is_string: true,
42
42
  default_value: "adb")
43
43
  ]
@@ -118,7 +118,7 @@ module Fastlane
118
118
  user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
119
119
  [
120
120
  FastlaneCore::ConfigItem.new(key: :api_key_path,
121
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY_PATH",
121
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
122
122
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
123
123
  optional: true,
124
124
  conflicting_options: [:api_key],
@@ -126,7 +126,7 @@ module Fastlane
126
126
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
127
127
  end),
128
128
  FastlaneCore::ConfigItem.new(key: :api_key,
129
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY",
129
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
130
130
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
131
131
  type: Hash,
132
132
  optional: true,
@@ -21,7 +21,7 @@ _screengrab_ generates localized screenshots of your Android app for different d
21
21
  Install the gem
22
22
 
23
23
  ```no-highlight
24
- sudo gem install fastlane
24
+ gem install fastlane
25
25
  ```
26
26
 
27
27
  ##### Gradle dependency
@@ -345,5 +345,5 @@ brew install imagemagick
345
345
 
346
346
  ## Uninstall
347
347
 
348
- - `sudo gem uninstall fastlane`
348
+ - `gem uninstall fastlane`
349
349
  - `rm -rf ~/.frameit`
@@ -99,16 +99,22 @@ If your machine is currently using SSH to authenticate with GitHub, you'll want
99
99
  Using parameter:
100
100
 
101
101
  ```
102
- match(git_basic_authorization: '<YOUR KEY>')
102
+ match(git_basic_authorization: '<YOUR BASE64 KEY>')
103
103
  ```
104
104
 
105
105
  Using environment variable:
106
106
 
107
107
  ```
108
- ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '<YOUR KEY>'
108
+ ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '<YOUR BASE64 KEY>'
109
109
  match
110
110
  ```
111
111
 
112
+ To generate your base64 key [according to RFC 7617](https://tools.ietf.org/html/rfc7617), run this:
113
+
114
+ ```
115
+ echo -n your_github_username:your_personal_access_token | base64
116
+ ```
117
+
112
118
  You can find more information about GitHub basic authentication and personal token generation here: [https://developer.github.com/v3/auth/#basic-authentication](https://developer.github.com/v3/auth/#basic-authentication)
113
119
 
114
120
  ##### Git Storage on GitHub - Deploy keys
@@ -39,13 +39,8 @@ module Fastlane
39
39
  # Set version if it is latest
40
40
  if version == 'latest'
41
41
  # Try to grab the edit version first, else fallback to live version
42
- UI.message("Looking for latest version...")
43
- latest_version = app.get_edit_app_store_version(platform: platform) || app.get_live_app_store_version(platform: platform)
44
-
45
- UI.user_error!("Could not find latest version for your app, please try setting a specific version") if latest_version.nil?
46
-
47
- latest_build = get_latest_build!(app_id: app.id, version: latest_version.version_string, platform: platform)
48
-
42
+ UI.message("Looking for latest build...")
43
+ latest_build = get_latest_build!(app_id: app.id, platform: platform)
49
44
  version = latest_build.app_version
50
45
  build_number = latest_build.version
51
46
  elsif version == 'live'
@@ -59,11 +54,6 @@ module Fastlane
59
54
  build_number = live_version.build.version
60
55
  end
61
56
 
62
- # Remove leading zeros from version string (eg. 1.02 -> 1.2)
63
- if version
64
- version = version.split(".").map(&:to_i).join(".")
65
- end
66
-
67
57
  # Make sure output_directory has a slash on the end
68
58
  if output_directory && !output_directory.end_with?('/')
69
59
  output_directory += '/'
@@ -161,14 +151,14 @@ module Fastlane
161
151
  end
162
152
  # rubocop:enable Metrics/PerceivedComplexity
163
153
 
164
- def self.get_latest_build!(app_id: nil, version: nil, platform: nil)
154
+ def self.get_latest_build!(app_id: nil, platform: nil)
165
155
  filter = { app: app_id }
166
- filter["preReleaseVersion.version"] = version
167
156
  filter["preReleaseVersion.platform"] = platform
168
157
  latest_build = Spaceship::ConnectAPI.get_builds(filter: filter, sort: "-uploadedDate", includes: "preReleaseVersion").first
169
158
 
170
159
  if latest_build.nil?
171
- UI.user_error!("Could not find latest build for version #{version}")
160
+ UI.user_error!("Could not find any build for platform #{platform}") if platform
161
+ UI.user_error!("Could not find any build")
172
162
  end
173
163
 
174
164
  return latest_build
@@ -37,7 +37,7 @@ module Fastlane
37
37
  def self.available_options
38
38
  [
39
39
  FastlaneCore::ConfigItem.new(key: :path,
40
- description: "The file you want to commit",
40
+ description: "The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed",
41
41
  is_string: false),
42
42
  FastlaneCore::ConfigItem.new(key: :message,
43
43
  description: "The commit message that should be used"),
@@ -38,7 +38,7 @@ module Fastlane
38
38
 
39
39
  [
40
40
  FastlaneCore::ConfigItem.new(key: :api_key_path,
41
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY_PATH",
41
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
42
42
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
43
43
  optional: true,
44
44
  conflicting_options: [:api_key],
@@ -46,7 +46,7 @@ module Fastlane
46
46
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
47
47
  end),
48
48
  FastlaneCore::ConfigItem.new(key: :api_key,
49
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY",
49
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
50
50
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
51
51
  type: Hash,
52
52
  optional: true,
@@ -69,7 +69,7 @@ module Fastlane
69
69
  env_name: "FL_REGISTER_DEVICE_UDID",
70
70
  description: "Provide the UDID of the device to register as"),
71
71
  FastlaneCore::ConfigItem.new(key: :api_key_path,
72
- env_name: "FL_REGISTER_DEVICE_API_KEY_PATH",
72
+ env_names: ["FL_REGISTER_DEVICE_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
73
73
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
74
74
  optional: true,
75
75
  conflicting_options: [:api_key],
@@ -77,7 +77,7 @@ module Fastlane
77
77
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
78
78
  end),
79
79
  FastlaneCore::ConfigItem.new(key: :api_key,
80
- env_name: "FL_REGISTER_DEVICE_API_KEY",
80
+ env_names: ["FL_REGISTER_DEVICE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
81
81
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
82
82
  type: Hash,
83
83
  optional: true,