fastlane 2.128.1 → 2.129.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +74 -74
  3. data/deliver/lib/deliver/submit_for_review.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +1 -1
  5. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/get_version_number.rb +18 -2
  8. data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/gradle.rb +26 -7
  10. data/fastlane/lib/fastlane/actions/import_from_git.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/pod_push.rb +20 -10
  12. data/fastlane/lib/fastlane/actions/puts.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/sonar.rb +18 -0
  14. data/fastlane/lib/fastlane/actions/update_fastlane.rb +1 -1
  15. data/fastlane/lib/fastlane/commands_generator.rb +1 -1
  16. data/fastlane/lib/fastlane/helper/adb_helper.rb +5 -0
  17. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +11 -5
  18. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +4 -0
  19. data/fastlane/lib/fastlane/swift_fastlane_function.rb +11 -7
  20. data/fastlane/lib/fastlane/version.rb +1 -1
  21. data/fastlane/swift/Deliverfile.swift +1 -1
  22. data/fastlane/swift/Fastlane.swift +290 -284
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/GymfileProtocol.swift +3 -3
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/Precheckfile.swift +1 -1
  27. data/fastlane/swift/Scanfile.swift +1 -1
  28. data/fastlane/swift/ScanfileProtocol.swift +3 -3
  29. data/fastlane/swift/Screengrabfile.swift +1 -1
  30. data/fastlane/swift/Snapshotfile.swift +1 -1
  31. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +1 -1
  32. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -1
  33. data/frameit/lib/frameit/editor.rb +1 -1
  34. data/gym/lib/gym/options.rb +1 -1
  35. data/match/lib/match/nuke.rb +1 -1
  36. data/match/lib/match/runner.rb +2 -2
  37. data/match/lib/match/storage/interface.rb +1 -1
  38. data/scan/lib/scan/options.rb +1 -1
  39. data/scan/lib/scan/runner.rb +1 -1
  40. data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
  41. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +1 -0
  42. data/spaceship/lib/spaceship/du/du_client.rb +4 -0
  43. data/spaceship/lib/spaceship/portal/certificate.rb +15 -1
  44. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  45. data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
  46. data/spaceship/lib/spaceship/tunes/build_details.rb +160 -18
  47. data/spaceship/lib/spaceship/tunes/display_family.rb +3 -3
  48. data/spaceship/lib/spaceship/tunes/iap.rb +2 -0
  49. data/spaceship/lib/spaceship/tunes/iap_detail.rb +17 -0
  50. data/spaceship/lib/spaceship/tunes/tunes_client.rb +37 -1
  51. data/supply/lib/supply/client.rb +1 -1
  52. metadata +17 -18
@@ -5,7 +5,7 @@ module Spaceship
5
5
  # A definition of different styled displays used by devices
6
6
  # that App Store Connect supports storing screenshots.
7
7
  # Display styles often only vary based on screen resolution
8
- # however other aspects of a displays physical apperance are
8
+ # however other aspects of a displays physical appearance are
9
9
  # also factored (i.e if the home indicator is provided via
10
10
  # a hardware button or a software interface).
11
11
  class DisplayFamily
@@ -15,12 +15,12 @@ module Spaceship
15
15
  # Spaceship::Tunes::AppScreenshot#device_type attribute.
16
16
  attr_accessor :name
17
17
 
18
- # The user friendly name of this defintion.
18
+ # The user friendly name of this definition.
19
19
  #
20
20
  # Source: Media Manager in App Store Connect.
21
21
  attr_accessor :friendly_name
22
22
 
23
- # The user friendly category for this defintion (i.e iPhone,
23
+ # The user friendly category for this definition (i.e iPhone,
24
24
  # Apple TV or Desktop).
25
25
  attr_accessor :friendly_category_name
26
26
 
@@ -65,6 +65,7 @@ module Spaceship
65
65
  reference_name: nil,
66
66
  product_id: nil,
67
67
  cleared_for_sale: true,
68
+ merch_screenshot: nil,
68
69
  review_notes: nil,
69
70
  review_screenshot: nil,
70
71
  pricing_intervals: nil,
@@ -78,6 +79,7 @@ module Spaceship
78
79
  reference_name: reference_name,
79
80
  product_id: product_id,
80
81
  cleared_for_sale: cleared_for_sale,
82
+ merch_screenshot: merch_screenshot,
81
83
  review_notes: review_notes,
82
84
  review_screenshot: review_screenshot,
83
85
  pricing_intervals: pricing_intervals,
@@ -30,6 +30,10 @@ module Spaceship
30
30
  # @return (Bool) Cleared for sale flag
31
31
  attr_accessor :cleared_for_sale
32
32
 
33
+ # @return (Hash) app store promotion image (optional)
34
+ attr_accessor :merch_screenshot
35
+
36
+ # @return (Hash) app review screenshot (required)
33
37
  attr_accessor :review_screenshot
34
38
 
35
39
  # @return (String) the notes for the review team
@@ -142,6 +146,12 @@ module Spaceship
142
146
  Tunes::IAPStatus.get_from_string(raw_data["versions"].first["status"])
143
147
  end
144
148
 
149
+ # @return (Hash) Hash containing existing promotional image data
150
+ def merch_screenshot
151
+ return nil unless raw_data && raw_data["versions"] && raw_data["versions"].first && raw_data["versions"].first["merch"] && raw_data["versions"].first["merch"]["images"].first["image"]["value"]
152
+ raw_data["versions"].first["merch"]["images"].first["image"]["value"]
153
+ end
154
+
145
155
  # @return (Hash) Hash containing existing review screenshot data
146
156
  def review_screenshot
147
157
  return nil unless raw_data && raw_data["versions"] && raw_data["versions"].first && raw_data["versions"].first["reviewScreenshot"] && raw_data['versions'].first["reviewScreenshot"]["value"]
@@ -172,6 +182,13 @@ module Spaceship
172
182
  raw_data.set(["pricingIntervals"], raw_pricing_intervals)
173
183
  @raw_pricing_data["subscriptions"] = raw_pricing_intervals if @raw_pricing_data
174
184
 
185
+ if @merch_screenshot
186
+ # Upload App Store Promotional image (Optional)
187
+ upload_file = UploadFile.from_path(@merch_screenshot)
188
+ merch_data = client.upload_purchase_merch_screenshot(application.apple_id, upload_file)
189
+ raw_data["versions"][0]["merch"] = merch_data
190
+ end
191
+
175
192
  if @review_screenshot
176
193
  # Upload Screenshot
177
194
  upload_file = UploadFile.from_path(@review_screenshot)
@@ -791,6 +791,35 @@ module Spaceship
791
791
  du_client.upload_watch_icon(app_version, upload_image, content_provider_id, sso_token_for_image)
792
792
  end
793
793
 
794
+ # Uploads an In-App-Purchase Promotional image
795
+ # @param upload_image (UploadFile): The icon to upload
796
+ # @return [JSON] the image data, ready to be added to an In-App-Purchase
797
+ def upload_purchase_merch_screenshot(app_id, upload_image)
798
+ data = du_client.upload_purchase_merch_screenshot(app_id, upload_image, content_provider_id, sso_token_for_image)
799
+ {
800
+ "images" => [
801
+ {
802
+ "id" => nil,
803
+ "image" => {
804
+ "value" => {
805
+ "assetToken" => data["token"],
806
+ "originalFileName" => upload_image.file_name,
807
+ "height" => data["height"],
808
+ "width" => data["width"],
809
+ "checksum" => data["md5"]
810
+ },
811
+ "isEditable" => true,
812
+ "isREquired" => false,
813
+ "errorKeys" => nil
814
+ },
815
+ "status" => "proposed"
816
+ }
817
+ ],
818
+ "showByDefault" => true,
819
+ "isActive" => false
820
+ }
821
+ end
822
+
794
823
  # Uploads an In-App-Purchase Review screenshot
795
824
  # @param app_id (AppId): The id of the app
796
825
  # @param upload_image (UploadFile): The icon to upload
@@ -1304,7 +1333,7 @@ module Spaceship
1304
1333
  end
1305
1334
 
1306
1335
  # Creates an In-App-Purchases
1307
- def create_iap!(app_id: nil, type: nil, versions: nil, reference_name: nil, product_id: nil, cleared_for_sale: true, review_notes: nil, review_screenshot: nil, pricing_intervals: nil, family_id: nil, subscription_duration: nil, subscription_free_trial: nil)
1336
+ def create_iap!(app_id: nil, type: nil, versions: nil, reference_name: nil, product_id: nil, cleared_for_sale: true, merch_screenshot: nil, review_notes: nil, review_screenshot: nil, pricing_intervals: nil, family_id: nil, subscription_duration: nil, subscription_free_trial: nil)
1308
1337
  # Load IAP Template based on Type
1309
1338
  type ||= "consumable"
1310
1339
  r = request(:get, "ra/apps/#{app_id}/iaps/#{type}/template")
@@ -1348,6 +1377,13 @@ module Spaceship
1348
1377
  data["versions"][0]["details"]["value"] = versions_array
1349
1378
  data['versions'][0]["reviewNotes"] = { value: review_notes }
1350
1379
 
1380
+ if merch_screenshot
1381
+ # Upload App Store Promotional image (Optional)
1382
+ upload_file = UploadFile.from_path(merch_screenshot)
1383
+ merch_data = upload_purchase_merch_screenshot(app_id, upload_file)
1384
+ data["versions"][0]["merch"] = merch_data
1385
+ end
1386
+
1351
1387
  if review_screenshot
1352
1388
  # Upload Screenshot:
1353
1389
  upload_file = UploadFile.from_path(review_screenshot)
@@ -312,7 +312,7 @@ module Supply
312
312
 
313
313
  track_version_codes = apk_version_code.kind_of?(Array) ? apk_version_code : [apk_version_code]
314
314
 
315
- # This change happend on 2018-04-24
315
+ # This change happened on 2018-04-24
316
316
  # rollout cannot be sent on any other track besides "rollout"
317
317
  # https://github.com/fastlane/fastlane/issues/12372
318
318
  rollout = nil unless track == "rollout"
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.128.1
4
+ version: 2.129.0
5
5
  platform: ruby
6
6
  authors:
7
- - Luka Mirosevic
8
- - Andrew McBurney
9
- - Danielle Tomlinson
10
- - Kohki Miki
11
- - Manu Wallner
7
+ - Jorge Revuelta H
12
8
  - Olivier Halligon
13
- - Stefan Natchev
9
+ - Aaron Brager
10
+ - Joshua Liebowitz
11
+ - Fumiya Nakamura
12
+ - Kohki Miki
14
13
  - Jan Piotrowski
14
+ - Jimmy Dee
15
+ - Andrew McBurney
16
+ - Maksym Grebenets
17
+ - Stefan Natchev
15
18
  - Matthew Ellis
16
- - Aaron Brager
19
+ - Jérôme Lacoste
17
20
  - Iulian Onofrei
18
- - Jimmy Dee
19
- - Helmut Januschka
21
+ - Danielle Tomlinson
22
+ - Manu Wallner
20
23
  - Felix Krause
21
- - Fumiya Nakamura
22
- - Jorge Revuelta H
23
- - Jérôme Lacoste
24
- - Joshua Liebowitz
24
+ - Luka Mirosevic
25
+ - Helmut Januschka
25
26
  - Josh Holtz
26
- - Maksym Grebenets
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-07-23 00:00:00.000000000 Z
30
+ date: 2019-08-13 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -1776,8 +1776,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1776
1776
  - !ruby/object:Gem::Version
1777
1777
  version: '0'
1778
1778
  requirements: []
1779
- rubyforge_project:
1780
- rubygems_version: 2.5.2.3
1779
+ rubygems_version: 3.0.3
1781
1780
  signing_key:
1782
1781
  specification_version: 4
1783
1782
  summary: The easiest way to automate beta deployments and releases for your iOS and