fastlane 2.141.0 → 2.146.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +82 -82
  4. data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
  5. data/deliver/lib/deliver/app_screenshot.rb +1 -0
  6. data/deliver/lib/deliver/options.rb +30 -1
  7. data/deliver/lib/deliver/setup.rb +4 -4
  8. data/fastlane/lib/fastlane/actions/.update_code_signing_settings.rb.swp +0 -0
  9. data/fastlane/lib/fastlane/actions/README.md +2 -0
  10. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +13 -5
  11. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -1
  12. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
  13. data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -2
  14. data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
  15. data/fastlane/lib/fastlane/actions/create_pull_request.rb +7 -1
  16. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +10 -4
  17. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +22 -6
  18. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +23 -7
  19. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +35 -7
  21. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +2 -1
  22. data/fastlane/lib/fastlane/actions/get_github_release.rb +3 -0
  23. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +9 -3
  25. data/fastlane/lib/fastlane/actions/notarize.rb +183 -0
  26. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
  27. data/fastlane/lib/fastlane/actions/s3.rb +5 -291
  28. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +11 -2
  30. data/fastlane/lib/fastlane/actions/slather.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/spm.rb +8 -0
  32. data/fastlane/lib/fastlane/actions/swiftlint.rb +45 -9
  33. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +198 -0
  34. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +14 -4
  35. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  36. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  37. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +61 -0
  38. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  39. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +1 -1
  40. data/fastlane/lib/fastlane/version.rb +1 -1
  41. data/fastlane/swift/Deliverfile.swift +1 -1
  42. data/fastlane/swift/Fastlane.swift +201 -13
  43. data/fastlane/swift/Gymfile.swift +1 -1
  44. data/fastlane/swift/Matchfile.swift +1 -1
  45. data/fastlane/swift/MatchfileProtocol.swift +17 -1
  46. data/fastlane/swift/Precheckfile.swift +1 -1
  47. data/fastlane/swift/RubyCommand.swift +1 -1
  48. data/fastlane/swift/Scanfile.swift +1 -1
  49. data/fastlane/swift/ScanfileProtocol.swift +9 -1
  50. data/fastlane/swift/Screengrabfile.swift +1 -1
  51. data/fastlane/swift/Snapshotfile.swift +1 -1
  52. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +9 -0
  53. data/fastlane_core/lib/fastlane_core/device_manager.rb +3 -3
  54. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -0
  55. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
  56. data/fastlane_core/lib/fastlane_core/project.rb +4 -0
  57. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
  58. data/frameit/lib/frameit/commands_generator.rb +25 -0
  59. data/frameit/lib/frameit/config_parser.rb +31 -9
  60. data/frameit/lib/frameit/device.rb +90 -0
  61. data/frameit/lib/frameit/device_types.rb +121 -5
  62. data/frameit/lib/frameit/editor.rb +29 -41
  63. data/frameit/lib/frameit/offsets.rb +8 -1
  64. data/frameit/lib/frameit/options.rb +81 -54
  65. data/frameit/lib/frameit/runner.rb +17 -7
  66. data/frameit/lib/frameit/screenshot.rb +39 -47
  67. data/frameit/lib/frameit/template_finder.rb +15 -12
  68. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  69. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
  70. data/gym/lib/gym/runner.rb +16 -2
  71. data/match/lib/match/change_password.rb +1 -1
  72. data/match/lib/match/encryption.rb +4 -0
  73. data/match/lib/match/importer.rb +37 -20
  74. data/match/lib/match/module.rb +1 -1
  75. data/match/lib/match/nuke.rb +5 -1
  76. data/match/lib/match/options.rb +18 -0
  77. data/match/lib/match/runner.rb +4 -0
  78. data/match/lib/match/setup.rb +1 -1
  79. data/match/lib/match/storage.rb +4 -0
  80. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  81. data/match/lib/match/storage/s3_storage.rb +167 -0
  82. data/pilot/lib/pilot/build_manager.rb +24 -7
  83. data/pilot/lib/pilot/options.rb +8 -0
  84. data/produce/lib/produce/developer_center.rb +11 -2
  85. data/produce/lib/produce/itunes_connect.rb +11 -3
  86. data/produce/lib/produce/options.rb +12 -0
  87. data/scan/lib/scan/options.rb +10 -0
  88. data/scan/lib/scan/runner.rb +9 -7
  89. data/scan/lib/scan/test_command_generator.rb +11 -4
  90. data/screengrab/lib/screengrab/runner.rb +32 -19
  91. data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
  92. data/snapshot/lib/snapshot/reports_generator.rb +4 -0
  93. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -0
  94. data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
  95. data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -2
  96. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -0
  97. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +23 -0
  98. data/spaceship/lib/spaceship/portal/app_service.rb +2 -2
  99. data/spaceship/lib/spaceship/portal/portal_client.rb +13 -0
  100. data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
  101. data/spaceship/lib/spaceship/tunes/application.rb +2 -1
  102. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  103. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +52 -16
  104. data/supply/lib/supply/client.rb +4 -4
  105. data/supply/lib/supply/setup.rb +5 -3
  106. metadata +37 -16
@@ -79,8 +79,7 @@ module Spaceship
79
79
  end
80
80
 
81
81
  def ready_for_internal_testing?
82
- raise "No build_beta_detail included" unless build_beta_detail
83
- return build_beta_detail.ready_for_internal_testing?
82
+ return build_beta_detail.nil? == false && build_beta_detail.ready_for_internal_testing?
84
83
  end
85
84
 
86
85
  def ready_for_beta_submission?
@@ -22,6 +22,8 @@ module Spaceship
22
22
  })
23
23
 
24
24
  module CertificateType
25
+ DEVELOPMENT = "DEVELOPMENT"
26
+ DISTRIBUTION = "DISTRIBUTION"
25
27
  IOS_DEVELOPMENT = "IOS_DEVELOPMENT"
26
28
  IOS_DISTRIBUTION = "IOS_DISTRIBUTION"
27
29
  MAC_APP_DISTRIBUTION = "MAC_APP_DISTRIBUTION"
@@ -181,6 +181,29 @@ module Spaceship
181
181
  Client.instance.post("builds/#{build_id}/relationships/betaGroups", body)
182
182
  end
183
183
 
184
+ def create_beta_group(app_id: nil, group_name: nil, public_link_enabled: false, public_link_limit: 10_000, public_link_limit_enabled: false)
185
+ body = {
186
+ data: {
187
+ attributes: {
188
+ name: group_name,
189
+ publicLinkEnabled: public_link_enabled,
190
+ publicLinkLimit: public_link_limit,
191
+ publicLinkLimitEnabled: public_link_limit_enabled
192
+ },
193
+ relationships: {
194
+ app: {
195
+ data: {
196
+ id: app_id,
197
+ type: "apps"
198
+ }
199
+ }
200
+ },
201
+ type: "betaGroups"
202
+ }
203
+ }
204
+ Client.instance.post("betaGroups", body)
205
+ end
206
+
184
207
  #
185
208
  # betaTesters
186
209
  #
@@ -59,11 +59,11 @@ module Spaceship
59
59
  NetworkExtension = AppService.new_service("NWEXT04537")
60
60
  NFCTagReading = AppService.new_service("NFCTRMAY17")
61
61
  PersonalVPN = AppService.new_service("V66P55NK2I")
62
- Passbook = AppService.new_service("pass")
62
+ Passbook = AppService.new_service("passbook")
63
63
  PushNotification = AppService.new_service("push")
64
64
  SiriKit = AppService.new_service("SI015DKUHP")
65
65
  VPNConfiguration = AppService.new_service("V66P55NK2I")
66
- Wallet = AppService.new_service("pass")
66
+ Wallet = AppService.new_service("passbook")
67
67
  WirelessAccessory = AppService.new_service("WC421J6T7P")
68
68
 
69
69
  constants.each do |c|
@@ -100,6 +100,19 @@ module Spaceship
100
100
  end
101
101
  private :platform_slug
102
102
 
103
+ def list_pending_agreements(language: "en")
104
+ r = request(:post) do |req|
105
+ req.url("account/listPendingAgreements")
106
+ req.body = {
107
+ teamId: team_id,
108
+ languageIsoCode: language
109
+ }.to_json
110
+ req.headers['Content-Type'] = 'application/json'
111
+ end
112
+
113
+ return parse_response(r)
114
+ end
115
+
103
116
  #####################################################
104
117
  # @!group Apps
105
118
  #####################################################
@@ -767,14 +767,19 @@ module Spaceship
767
767
  end
768
768
 
769
769
  def setup_screenshots
770
- # Enable Scaling for all screen sizes that don't have at least one screenshot
770
+ # Enable Scaling for all screen sizes that don't have at least one screenshot or at least one trailer (app_preview)
771
771
  # We automatically disable scaling once we upload at least one screenshot
772
772
  language_details = raw_data_details.each do |current_language|
773
773
  language_details = (current_language["displayFamilies"] || {})["value"]
774
774
  (language_details || []).each do |device_language_details|
775
+ # Do not enable scaling if a screenshot already exists
775
776
  next if device_language_details["screenshots"].nil?
776
777
  next if device_language_details["screenshots"]["value"].count > 0
777
778
 
779
+ # Do not enable scaling if a trailer already exists
780
+ next if device_language_details["trailers"].nil?
781
+ next if device_language_details["trailers"]["value"].count > 0
782
+
778
783
  # The current row includes screenshots for all device types
779
784
  # so we need to enable scaling for both iOS and watchOS apps
780
785
  device_language_details["scaled"]["value"] = true if device_language_details["scaled"]
@@ -91,7 +91,7 @@ module Spaceship
91
91
  # @param platform (String): Platform one of (ios,osx)
92
92
  # should it be an ios or an osx app
93
93
 
94
- def create!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil, itunes_connect_users: nil)
94
+ def create!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil, platforms: nil, itunes_connect_users: nil)
95
95
  puts("The `version` parameter is deprecated. Use `ensure_version!` method instead") if version
96
96
  client.create_application!(name: name,
97
97
  primary_language: primary_language,
@@ -100,6 +100,7 @@ module Spaceship
100
100
  bundle_id_suffix: bundle_id_suffix,
101
101
  company_name: company_name,
102
102
  platform: platform,
103
+ platforms: platforms,
103
104
  itunes_connect_users: itunes_connect_users)
104
105
  end
105
106
 
@@ -286,7 +286,7 @@ module Spaceship
286
286
  # @param sku (String): A unique ID for your app that is not visible on the App Store.
287
287
  # @param bundle_id (String): The bundle ID must match the one you used in Xcode. It
288
288
  # can't be changed after you submit your first build.
289
- def create_application!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil, itunes_connect_users: nil)
289
+ def create_application!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil, platforms: nil, itunes_connect_users: nil)
290
290
  puts("The `version` parameter is deprecated. Use `Spaceship::Tunes::Application.ensure_version!` method instead") if version
291
291
 
292
292
  # First, we need to fetch the data from Apple, which we then modify with the user's values
@@ -307,7 +307,7 @@ module Spaceship
307
307
  data['enabledPlatformsForCreation'] = { value: [platform] }
308
308
 
309
309
  data['initialPlatform'] = platform
310
- data['enabledPlatformsForCreation'] = { value: [platform] }
310
+ data['enabledPlatformsForCreation'] = { value: platforms || [platform] }
311
311
 
312
312
  unless itunes_connect_users.nil?
313
313
  data['iTunesConnectUsers']['grantedAllUsers'] = false
@@ -131,18 +131,33 @@ module Spaceship
131
131
  puts("Environment variable `SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER` is set, automatically requesting 2FA token via SMS to that number")
132
132
  puts("SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER = #{env_2fa_sms_default_phone_number}")
133
133
  puts("")
134
+
134
135
  phone_number = env_2fa_sms_default_phone_number
135
136
  phone_id = phone_id_from_number(response.body["trustedPhoneNumbers"], phone_number)
137
+ # don't request sms if no trusted devices and env default is the only trusted number,
138
+ # code was automatically sent
139
+ should_request_code = !sms_automatically_sent(response)
140
+ code_type = 'phone'
141
+ body = request_two_factor_code_from_phone(phone_id, phone_number, code_length, should_request_code)
142
+ elsif sms_automatically_sent(response) # sms fallback, code was automatically sent
143
+ fallback_number = response.body["trustedPhoneNumbers"].first
144
+ phone_number = fallback_number["numberWithDialCode"]
145
+ phone_id = fallback_number["id"]
146
+
147
+ code_type = 'phone'
148
+ body = request_two_factor_code_from_phone(phone_id, phone_number, code_length, false)
149
+ elsif sms_fallback(response) # sms fallback but code wasn't sent bec > 1 phone number
136
150
  code_type = 'phone'
137
- body = request_two_factor_code_from_phone(phone_id, phone_number, code_length)
151
+ body = request_two_factor_code_from_phone_choose(response.body["trustedPhoneNumbers"], code_length)
138
152
  else
139
153
  puts("(Input `sms` to escape this prompt and select a trusted phone number to send the code as a text message)")
140
154
  puts("")
141
155
  puts("(You can also set the environment variable `SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER` to automate this)")
142
- puts("(Read more at: https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship-2fa-sms-default-phone-number)")
156
+ puts("(Read more at: https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship_2fa_sms_default_phone_number)")
143
157
  puts("")
144
- code_type = 'trusteddevice'
158
+
145
159
  code = ask_for_2fa_code("Please enter the #{code_length} digit code:")
160
+ code_type = 'trusteddevice'
146
161
  body = { "securityCode" => { "code" => code.to_s } }.to_json
147
162
 
148
163
  # User exited by entering `sms` and wants to choose phone number for SMS
@@ -191,11 +206,30 @@ module Spaceship
191
206
  return true
192
207
  end
193
208
 
209
+ # For reference in case auth behavior changes:
210
+ # The "noTrustedDevices" field is only present
211
+ # in the response for `GET /appleauth/auth`
212
+
213
+ # Account is not signed into any devices that can display a verification code
214
+ def sms_fallback(response)
215
+ response.body["noTrustedDevices"]
216
+ end
217
+
218
+ # see `sms_fallback` + account has only one trusted number for receiving an sms
219
+ def sms_automatically_sent(response)
220
+ (response.body["trustedPhoneNumbers"] || []).count == 1 && sms_fallback(response)
221
+ end
222
+
194
223
  # extracted into its own method for testing
195
224
  def ask_for_2fa_code(text)
196
225
  ask(text)
197
226
  end
198
227
 
228
+ # extracted into its own method for testing
229
+ def choose_phone_number(opts)
230
+ choose(*opts)
231
+ end
232
+
199
233
  def phone_id_from_number(phone_numbers, phone_number)
200
234
  characters_to_remove_from_phone_numbers = ' \-()"'
201
235
 
@@ -247,27 +281,29 @@ If it is, please open an issue at https://github.com/fastlane/fastlane/issues/ne
247
281
  available = phone_numbers.collect do |current|
248
282
  current['numberWithDialCode']
249
283
  end
250
- chosen = choose(*available)
284
+ chosen = choose_phone_number(available)
251
285
  phone_id = phone_id_from_masked_number(phone_numbers, chosen)
252
286
 
253
287
  request_two_factor_code_from_phone(phone_id, chosen, code_length)
254
288
  end
255
289
 
256
290
  # this is used in two places: after choosing a phone number and when a phone number is set via ENV var
257
- def request_two_factor_code_from_phone(phone_id, phone_number, code_length)
258
- # Request code
259
- r = request(:put) do |req|
260
- req.url("https://idmsa.apple.com/appleauth/auth/verify/phone")
261
- req.headers['Content-Type'] = 'application/json'
262
- req.body = { "phoneNumber" => { "id" => phone_id }, "mode" => "sms" }.to_json
263
- update_request_headers(req)
264
- end
291
+ def request_two_factor_code_from_phone(phone_id, phone_number, code_length, should_request_code = true)
292
+ if should_request_code
293
+ # Request code
294
+ r = request(:put) do |req|
295
+ req.url("https://idmsa.apple.com/appleauth/auth/verify/phone")
296
+ req.headers['Content-Type'] = 'application/json'
297
+ req.body = { "phoneNumber" => { "id" => phone_id }, "mode" => "sms" }.to_json
298
+ update_request_headers(req)
299
+ end
265
300
 
266
- # we use `Spaceship::TunesClient.new.handle_itc_response`
267
- # since this might be from the Dev Portal, but for 2 step
268
- Spaceship::TunesClient.new.handle_itc_response(r.body)
301
+ # we use `Spaceship::TunesClient.new.handle_itc_response`
302
+ # since this might be from the Dev Portal, but for 2 step
303
+ Spaceship::TunesClient.new.handle_itc_response(r.body)
269
304
 
270
- puts("Successfully requested text message to #{phone_number}")
305
+ puts("Successfully requested text message to #{phone_number}")
306
+ end
271
307
 
272
308
  code = ask_for_2fa_code("Please enter the #{code_length} digit code you received at #{phone_number}:")
273
309
 
@@ -244,7 +244,7 @@ module Supply
244
244
  UI.message("Found '#{version}' in '#{filtered_track.track}' track.")
245
245
  end
246
246
 
247
- filtered_release = filtered_track.releases.first { |r| r.name == version }
247
+ filtered_release = filtered_track.releases.first { |r| !r.name.nil? && r.name == version }
248
248
 
249
249
  # Since we can release on Alpha/Beta without release notes.
250
250
  if filtered_release.release_notes.nil?
@@ -258,13 +258,13 @@ module Supply
258
258
  end
259
259
 
260
260
  def latest_version(track)
261
- latest_version = tracks.select { |t| t.track == Supply::Tracks::DEFAULT }.map(&:releases).flatten.max_by(&:name)
261
+ latest_version = tracks.select { |t| t.track == Supply::Tracks::DEFAULT }.map(&:releases).flatten.reject { |r| r.name.nil? }.max_by(&:name)
262
262
 
263
263
  # Check if user specified '--track' option if version information from 'production' track is nil
264
264
  if latest_version.nil? && track == Supply::Tracks::DEFAULT
265
265
  UI.user_error!(%(Unable to find latest version information from "#{Supply::Tracks::DEFAULT}" track. Please specify track information by using the '--track' option.))
266
266
  else
267
- latest_version = tracks.select { |t| t.track == track }.map(&:releases).flatten.max_by(&:name)
267
+ latest_version = tracks.select { |t| t.track == track }.map(&:releases).flatten.reject { |r| r.name.nil? }.max_by(&:name)
268
268
  end
269
269
 
270
270
  return latest_version
@@ -405,7 +405,7 @@ module Supply
405
405
  )
406
406
  return result.releases.flat_map(&:version_codes) || []
407
407
  rescue Google::Apis::ClientError => e
408
- return [] if e.status_code == 404 && e.to_s.include?("trackEmpty")
408
+ return [] if e.status_code == 404 && (e.to_s.include?("trackEmpty") || e.to_s.include?("Track not found"))
409
409
  raise
410
410
  end
411
411
  end
@@ -98,9 +98,11 @@ module Supply
98
98
  FileUtils.mkdir_p(containing)
99
99
  end
100
100
 
101
- path = File.join(containing, "#{release_listing.version}.txt")
102
- UI.message("Writing to #{path}...")
103
- File.write(path, release_listing.release_notes)
101
+ release_listing.versioncodes.each do |versioncode|
102
+ path = File.join(containing, "#{versioncode}.txt")
103
+ UI.message("Writing to #{path}...")
104
+ File.write(path, release_listing.release_notes)
105
+ end
104
106
  end
105
107
 
106
108
  private
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.141.0
4
+ version: 2.146.0
5
5
  platform: ruby
6
6
  authors:
7
- - Jorge Revuelta H
8
- - Maksym Grebenets
9
- - Olivier Halligon
10
- - Daniel Jankowski
11
- - Fumiya Nakamura
12
- - Josh Holtz
13
- - Andrew McBurney
14
- - Iulian Onofrei
15
7
  - Kohki Miki
16
- - Joshua Liebowitz
17
- - Max Ott
18
- - Stefan Natchev
8
+ - Jan Piotrowski
9
+ - Fumiya Nakamura
19
10
  - Jérôme Lacoste
11
+ - Manu Wallner
20
12
  - Aaron Brager
21
- - Jan Piotrowski
22
13
  - Danielle Tomlinson
23
- - Jimmy Dee
24
- - Manu Wallner
14
+ - Joshua Liebowitz
25
15
  - Luka Mirosevic
16
+ - Iulian Onofrei
26
17
  - Felix Krause
18
+ - Daniel Jankowski
19
+ - Maksym Grebenets
20
+ - Max Ott
27
21
  - Matthew Ellis
22
+ - Andrew McBurney
23
+ - Stefan Natchev
24
+ - Olivier Halligon
28
25
  - Helmut Januschka
26
+ - Jorge Revuelta H
27
+ - Josh Holtz
28
+ - Jimmy Dee
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-01-29 00:00:00.000000000 Z
32
+ date: 2020-04-22 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -667,6 +667,20 @@ dependencies:
667
667
  - - "<"
668
668
  - !ruby/object:Gem::Version
669
669
  version: '2.0'
670
+ - !ruby/object:Gem::Dependency
671
+ name: aws-sdk-s3
672
+ requirement: !ruby/object:Gem::Requirement
673
+ requirements:
674
+ - - "~>"
675
+ - !ruby/object:Gem::Version
676
+ version: '1.0'
677
+ type: :runtime
678
+ prerelease: false
679
+ version_requirements: !ruby/object:Gem::Requirement
680
+ requirements:
681
+ - - "~>"
682
+ - !ruby/object:Gem::Version
683
+ version: '1.0'
670
684
  - !ruby/object:Gem::Dependency
671
685
  name: rake
672
686
  requirement: !ruby/object:Gem::Requirement
@@ -1002,6 +1016,7 @@ files:
1002
1016
  - fastlane/lib/fastlane.rb
1003
1017
  - fastlane/lib/fastlane/action.rb
1004
1018
  - fastlane/lib/fastlane/action_collector.rb
1019
+ - fastlane/lib/fastlane/actions/.update_code_signing_settings.rb.swp
1005
1020
  - fastlane/lib/fastlane/actions/README.md
1006
1021
  - fastlane/lib/fastlane/actions/actions_helper.rb
1007
1022
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1140,6 +1155,7 @@ files:
1140
1155
  - fastlane/lib/fastlane/actions/min_fastlane_version.rb
1141
1156
  - fastlane/lib/fastlane/actions/modify_services.rb
1142
1157
  - fastlane/lib/fastlane/actions/nexus_upload.rb
1158
+ - fastlane/lib/fastlane/actions/notarize.rb
1143
1159
  - fastlane/lib/fastlane/actions/notification.rb
1144
1160
  - fastlane/lib/fastlane/actions/notify.rb
1145
1161
  - fastlane/lib/fastlane/actions/number_of_commits.rb
@@ -1209,6 +1225,7 @@ files:
1209
1225
  - fastlane/lib/fastlane/actions/unlock_keychain.rb
1210
1226
  - fastlane/lib/fastlane/actions/update_app_group_identifiers.rb
1211
1227
  - fastlane/lib/fastlane/actions/update_app_identifier.rb
1228
+ - fastlane/lib/fastlane/actions/update_code_signing_settings.rb
1212
1229
  - fastlane/lib/fastlane/actions/update_fastlane.rb
1213
1230
  - fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb
1214
1231
  - fastlane/lib/fastlane/actions/update_info_plist.rb
@@ -1262,6 +1279,7 @@ files:
1262
1279
  - fastlane/lib/fastlane/helper/git_helper.rb
1263
1280
  - fastlane/lib/fastlane/helper/gradle_helper.rb
1264
1281
  - fastlane/lib/fastlane/helper/podspec_helper.rb
1282
+ - fastlane/lib/fastlane/helper/s3_client_helper.rb
1265
1283
  - fastlane/lib/fastlane/helper/sh_helper.rb
1266
1284
  - fastlane/lib/fastlane/helper/xcodeproj_helper.rb
1267
1285
  - fastlane/lib/fastlane/helper/xcversion_helper.rb
@@ -1421,6 +1439,7 @@ files:
1421
1439
  - frameit/lib/frameit/commands_generator.rb
1422
1440
  - frameit/lib/frameit/config_parser.rb
1423
1441
  - frameit/lib/frameit/dependency_checker.rb
1442
+ - frameit/lib/frameit/device.rb
1424
1443
  - frameit/lib/frameit/device_types.rb
1425
1444
  - frameit/lib/frameit/editor.rb
1426
1445
  - frameit/lib/frameit/frame_downloader.rb
@@ -1476,6 +1495,7 @@ files:
1476
1495
  - match/lib/match/storage/git_storage.rb
1477
1496
  - match/lib/match/storage/google_cloud_storage.rb
1478
1497
  - match/lib/match/storage/interface.rb
1498
+ - match/lib/match/storage/s3_storage.rb
1479
1499
  - match/lib/match/table_printer.rb
1480
1500
  - match/lib/match/utils.rb
1481
1501
  - pem/README.md
@@ -1588,6 +1608,7 @@ files:
1588
1608
  - snapshot/lib/snapshot/error_handler.rb
1589
1609
  - snapshot/lib/snapshot/fixes/README.md
1590
1610
  - snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb
1611
+ - snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb
1591
1612
  - snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb
1592
1613
  - snapshot/lib/snapshot/latest_os_version.rb
1593
1614
  - snapshot/lib/snapshot/module.rb