fastlane 2.163.0 → 2.168.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/cert/lib/cert/options.rb +1 -1
  4. data/cert/lib/cert/runner.rb +2 -2
  5. data/deliver/lib/deliver/app_screenshot.rb +6 -2
  6. data/deliver/lib/deliver/queue_worker.rb +14 -29
  7. data/deliver/lib/deliver/upload_metadata.rb +7 -2
  8. data/deliver/lib/deliver/upload_screenshots.rb +3 -5
  9. data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
  10. data/fastlane/lib/fastlane/actions/actions_helper.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/add_git_tag.rb +9 -2
  12. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +5 -1
  14. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +9 -0
  15. data/fastlane/lib/fastlane/actions/import_from_git.rb +9 -1
  16. data/fastlane/lib/fastlane/actions/is_ci.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/register_devices.rb +4 -1
  18. data/fastlane/lib/fastlane/actions/set_changelog.rb +31 -3
  19. data/fastlane/lib/fastlane/actions/slather.rb +2 -2
  20. data/fastlane/lib/fastlane/actions/spm.rb +6 -0
  21. data/fastlane/lib/fastlane/actions/update_fastlane.rb +29 -8
  22. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +3 -3
  23. data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
  24. data/fastlane/lib/fastlane/fast_file.rb +74 -23
  25. data/fastlane/lib/fastlane/features.rb +1 -1
  26. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
  27. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  28. data/fastlane/lib/fastlane/version.rb +1 -1
  29. data/fastlane/swift/Deliverfile.swift +1 -1
  30. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  31. data/fastlane/swift/Fastfile.swift +1 -1
  32. data/fastlane/swift/Fastlane.swift +37 -16
  33. data/fastlane/swift/Gymfile.swift +1 -1
  34. data/fastlane/swift/GymfileProtocol.swift +1 -1
  35. data/fastlane/swift/LaneFileProtocol.swift +2 -2
  36. data/fastlane/swift/MainProcess.swift +2 -0
  37. data/fastlane/swift/Matchfile.swift +1 -1
  38. data/fastlane/swift/MatchfileProtocol.swift +8 -4
  39. data/fastlane/swift/Precheckfile.swift +1 -1
  40. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  41. data/fastlane/swift/Runner.swift +1 -1
  42. data/fastlane/swift/Scanfile.swift +1 -1
  43. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  44. data/fastlane/swift/Screengrabfile.swift +1 -1
  45. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  46. data/fastlane/swift/Snapshotfile.swift +1 -1
  47. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  48. data/fastlane/swift/SocketClient.swift +1 -1
  49. data/fastlane_core/lib/fastlane_core/cert_checker.rb +12 -7
  50. data/fastlane_core/lib/fastlane_core/device_manager.rb +8 -4
  51. data/fastlane_core/lib/fastlane_core/helper.rb +11 -3
  52. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -3
  53. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  54. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +3 -1
  55. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +8 -0
  56. data/gym/lib/gym/code_signing_mapping.rb +1 -1
  57. data/match/lib/match/importer.rb +33 -21
  58. data/match/lib/match/module.rb +1 -1
  59. data/match/lib/match/nuke.rb +9 -5
  60. data/match/lib/match/options.rb +8 -2
  61. data/pilot/lib/pilot/build_manager.rb +9 -3
  62. data/scan/lib/scan/detect_values.rb +8 -9
  63. data/scan/lib/scan/module.rb +4 -0
  64. data/scan/lib/scan/options.rb +9 -0
  65. data/scan/lib/scan/runner.rb +4 -3
  66. data/sigh/lib/assets/resign.sh +1 -1
  67. data/sigh/lib/sigh/runner.rb +4 -4
  68. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  69. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  70. data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -1
  71. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +1 -1
  72. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  73. data/spaceship/lib/spaceship/connect_api/client.rb +7 -4
  74. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
  75. data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp +0 -0
  76. data/spaceship/lib/spaceship/connect_api/models/.build.rb.swp +0 -0
  77. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +3 -2
  78. data/spaceship/lib/spaceship/connect_api/models/app.rb +127 -51
  79. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -10
  80. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +6 -4
  81. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +15 -11
  82. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +13 -9
  83. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +9 -7
  84. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +15 -11
  85. data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +7 -5
  86. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +6 -4
  87. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +54 -36
  88. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +21 -14
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +3 -2
  90. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +3 -2
  91. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +6 -4
  92. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +12 -2
  93. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +12 -8
  94. data/spaceship/lib/spaceship/connect_api/models/build.rb +24 -16
  95. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +3 -2
  96. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +9 -6
  97. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +6 -4
  98. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +12 -8
  99. data/spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb +43 -0
  100. data/spaceship/lib/spaceship/connect_api/models/custom_app_user.rb +41 -0
  101. data/spaceship/lib/spaceship/connect_api/models/device.rb +6 -4
  102. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +6 -4
  103. data/spaceship/lib/spaceship/connect_api/models/profile.rb +12 -8
  104. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +3 -2
  105. data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +9 -6
  106. data/spaceship/lib/spaceship/connect_api/models/territory.rb +3 -2
  107. data/spaceship/lib/spaceship/connect_api/models/user.rb +6 -4
  108. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +9 -6
  109. data/spaceship/lib/spaceship/connect_api/spaceship.rb +7 -4
  110. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
  111. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +71 -0
  112. data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
  113. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  114. data/supply/lib/supply.rb +1 -1
  115. data/supply/lib/supply/options.rb +1 -1
  116. data/supply/lib/supply/uploader.rb +4 -3
  117. metadata +24 -20
  118. data/fastlane/lib/fastlane/actions/.register_device.rb.swp +0 -0
  119. data/fastlane/lib/fastlane/actions/.register_devices.rb.swp +0 -0
@@ -28,13 +28,15 @@ module Spaceship
28
28
  # API
29
29
  #
30
30
 
31
- def update(attributes: nil)
31
+ def update(client: nil, attributes: nil)
32
+ client ||= Spaceship::ConnectAPI
32
33
  attributes = reverse_attr_mapping(attributes)
33
- Spaceship::ConnectAPI.patch_idfa_declaration(idfa_declaration_id: id, attributes: attributes)
34
+ client.patch_idfa_declaration(idfa_declaration_id: id, attributes: attributes)
34
35
  end
35
36
 
36
- def delete!
37
- Spaceship::ConnectAPI.delete_idfa_declaration(idfa_declaration_id: id)
37
+ def delete!(client: nil)
38
+ client ||= Spaceship::ConnectAPI
39
+ client.delete_idfa_declaration(idfa_declaration_id: id)
38
40
  end
39
41
  end
40
42
  end
@@ -65,13 +65,15 @@ module Spaceship
65
65
  # API
66
66
  #
67
67
 
68
- def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
69
- resps = Spaceship::ConnectAPI.get_profiles(filter: filter, includes: includes).all_pages
68
+ def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
69
+ client ||= Spaceship::ConnectAPI
70
+ resps = client.get_profiles(filter: filter, includes: includes).all_pages
70
71
  return resps.flat_map(&:to_models)
71
72
  end
72
73
 
73
- def self.create(name: nil, profile_type: nil, bundle_id_id: nil, certificate_ids: nil, device_ids: nil, template_name: nil)
74
- resp = Spaceship::ConnectAPI.post_profiles(
74
+ def self.create(client: nil, name: nil, profile_type: nil, bundle_id_id: nil, certificate_ids: nil, device_ids: nil, template_name: nil)
75
+ client ||= Spaceship::ConnectAPI
76
+ resp = client.post_profiles(
75
77
  bundle_id_id: bundle_id_id,
76
78
  certificates: certificate_ids,
77
79
  devices: device_ids,
@@ -84,13 +86,15 @@ module Spaceship
84
86
  return resp.to_models.first
85
87
  end
86
88
 
87
- def fetch_all_devices(filter: {}, includes: nil, sort: nil)
88
- resps = Spaceship::ConnectAPI.get_devices(profile_id: id, filter: filter, includes: includes).all_pages
89
+ def fetch_all_devices(client: nil, filter: {}, includes: nil, sort: nil)
90
+ client ||= Spaceship::ConnectAPI
91
+ resps = client.get_devices(profile_id: id, filter: filter, includes: includes).all_pages
89
92
  return resps.flat_map(&:to_models)
90
93
  end
91
94
 
92
- def delete!
93
- return Spaceship::ConnectAPI.delete_profile(profile_id: id)
95
+ def delete!(client: nil)
96
+ client ||= Spaceship::ConnectAPI
97
+ return client.delete_profile(profile_id: id)
94
98
  end
95
99
  end
96
100
  end
@@ -18,8 +18,9 @@ module Spaceship
18
18
  # API
19
19
  #
20
20
 
21
- def delete!(filter: {}, includes: nil, limit: nil, sort: nil)
22
- Spaceship::ConnectAPI.delete_reset_ratings_request(reset_ratings_request_id: id)
21
+ def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
22
+ client ||= Spaceship::ConnectAPI
23
+ client.delete_reset_ratings_request(reset_ratings_request_id: id)
23
24
  end
24
25
  end
25
26
  end
@@ -36,12 +36,14 @@ module Spaceship
36
36
  # API
37
37
  #
38
38
 
39
- def self.all(filter: {}, includes: nil, limit: 2000, sort: nil)
40
- resps = Spaceship::ConnectAPI.get_sandbox_testers(filter: filter, includes: includes).all_pages
39
+ def self.all(client: nil, filter: {}, includes: nil, limit: 2000, sort: nil)
40
+ client ||= Spaceship::ConnectAPI
41
+ resps = client.get_sandbox_testers(filter: filter, includes: includes).all_pages
41
42
  return resps.flat_map(&:to_models)
42
43
  end
43
44
 
44
- def self.create(first_name: nil, last_name: nil, email: nil, password: nil, confirm_password: nil, secret_question: nil, secret_answer: nil, birth_date: nil, app_store_territory: nil)
45
+ def self.create(client: nil, first_name: nil, last_name: nil, email: nil, password: nil, confirm_password: nil, secret_question: nil, secret_answer: nil, birth_date: nil, app_store_territory: nil)
46
+ client ||= Spaceship::ConnectAPI
45
47
  attributes = {
46
48
  firstName: first_name,
47
49
  lastName: last_name,
@@ -53,11 +55,12 @@ module Spaceship
53
55
  birthDate: birth_date,
54
56
  appStoreTerritory: app_store_territory
55
57
  }
56
- return Spaceship::ConnectAPI.post_sandbox_tester(attributes: attributes).first
58
+ return client.post_sandbox_tester(attributes: attributes).first
57
59
  end
58
60
 
59
- def delete!
60
- Spaceship::ConnectAPI.delete_sandbox_tester(sandbox_tester_id: id)
61
+ def delete!(client: nil)
62
+ client ||= Spaceship::ConnectAPI
63
+ client.delete_sandbox_tester(sandbox_tester_id: id)
61
64
  end
62
65
  end
63
66
  end
@@ -18,8 +18,9 @@ module Spaceship
18
18
  # API
19
19
  #
20
20
 
21
- def self.all(filter: {}, includes: nil, limit: 180, sort: nil)
22
- resps = Spaceship::ConnectAPI.get_territories(filter: {}, includes: nil, limit: nil, sort: nil).all_pages
21
+ def self.all(client: nil, filter: {}, includes: nil, limit: 180, sort: nil)
22
+ client ||= Spaceship::ConnectAPI
23
+ resps = client.get_territories(filter: {}, includes: nil, limit: nil, sort: nil).all_pages
23
24
  return resps.flat_map(&:to_models)
24
25
  end
25
26
  end
@@ -38,13 +38,15 @@ module Spaceship
38
38
  # API
39
39
  #
40
40
 
41
- def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
42
- resps = Spaceship::ConnectAPI.get_users(filter: filter, includes: includes).all_pages
41
+ def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
42
+ client ||= Spaceship::ConnectAPI
43
+ resps = client.get_users(filter: filter, includes: includes).all_pages
43
44
  return resps.flat_map(&:to_models)
44
45
  end
45
46
 
46
- def self.find(email: nil, includes: nil)
47
- return all(filter: { email: email }, includes: includes)
47
+ def self.find(client: nil, email: nil, includes: nil)
48
+ client ||= Spaceship::ConnectAPI
49
+ return all(client: client, filter: { email: email }, includes: includes)
48
50
  end
49
51
  end
50
52
  end
@@ -42,17 +42,20 @@ module Spaceship
42
42
  # Managing invitations
43
43
  #
44
44
 
45
- def self.all(filter: {}, includes: nil, sort: nil)
46
- resps = Spaceship::ConnectAPI.get_user_invitations(filter: filter, includes: includes, sort: sort).all_pages
45
+ def self.all(client: nil, filter: {}, includes: nil, sort: nil)
46
+ client ||= Spaceship::ConnectAPI
47
+ resps = client.get_user_invitations(filter: filter, includes: includes, sort: sort).all_pages
47
48
  return resps.flat_map(&:to_models)
48
49
  end
49
50
 
50
- def self.find(email: nil, includes: nil)
51
- return all(filter: { email: email }, includes: includes)
51
+ def self.find(client: nil, email: nil, includes: nil)
52
+ client ||= Spaceship::ConnectAPI
53
+ return all(client: client, filter: { email: email }, includes: includes)
52
54
  end
53
55
 
54
- def delete!
55
- Spaceship::ConnectAPI.delete_user_invitation(user_invitation_id: id)
56
+ def delete!(client: nil)
57
+ client ||= Spaceship::ConnectAPI
58
+ client.delete_user_invitation(user_invitation_id: id)
56
59
  end
57
60
  end
58
61
  end
@@ -44,20 +44,23 @@ module Spaceship
44
44
 
45
45
  # Initializes client with Apple's App Store Connect JWT auth key.
46
46
  #
47
- # This method will automatically use the key id, issuer id, and filepath from environment
47
+ # This method will automatically use the arguments from environment
48
48
  # variables if not given.
49
49
  #
50
- # All three parameters are needed to authenticate.
50
+ # The key_id, issuer_id and either filepath or key are needed to authenticate.
51
51
  #
52
52
  # @param key_id (String) (optional): The key id
53
53
  # @param issuer_id (String) (optional): The issuer id
54
54
  # @param filepath (String) (optional): The filepath
55
+ # @param key (String) (optional): The key
56
+ # @param duration (Integer) (optional): How long this session should last
57
+ # @param in_house (Boolean) (optional): Whether this session is an Enterprise one
55
58
  #
56
59
  # @raise InvalidUserCredentialsError: raised if authentication failed
57
60
  #
58
61
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
59
- def auth(key_id: nil, issuer_id: nil, filepath: nil)
60
- @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath)
62
+ def auth(key_id: nil, issuer_id: nil, filepath: nil, key: nil, duration: nil, in_house: nil)
63
+ @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath, key: key, duration: duration, in_house: in_house)
61
64
  end
62
65
 
63
66
  # Authenticates with Apple's web services. This method has to be called once
@@ -214,6 +214,18 @@ module Spaceship
214
214
  test_flight_request_client.post("betaGroups", body)
215
215
  end
216
216
 
217
+ def delete_beta_group(group_id: nil)
218
+ raise "group_id is nil" if group_id.nil?
219
+
220
+ test_flight_request_client.delete("betaGroups/#{group_id}")
221
+ end
222
+
223
+ def get_builds_for_beta_group(group_id: nil)
224
+ raise "group_id is nil" if group_id.nil?
225
+
226
+ test_flight_request_client.get("betaGroups/#{group_id}/builds")
227
+ end
228
+
217
229
  #
218
230
  # betaTesters
219
231
  #
@@ -890,6 +890,77 @@ module Spaceship
890
890
  tunes_request_client.post("appStoreVersionReleaseRequests", body)
891
891
  end
892
892
 
893
+ #
894
+ # customAppUsers
895
+ #
896
+
897
+ def get_custom_app_users(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
898
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
899
+ tunes_request_client.get("apps/#{app_id}/customAppUsers", params)
900
+ end
901
+
902
+ def post_custom_app_user(app_id: nil, apple_id: nil)
903
+ body = {
904
+ data: {
905
+ type: "customAppUsers",
906
+ attributes: {
907
+ appleId: apple_id
908
+ },
909
+ relationships: {
910
+ app: {
911
+ data: {
912
+ type: "apps",
913
+ id: app_id
914
+ }
915
+ }
916
+ }
917
+ }
918
+ }
919
+
920
+ tunes_request_client.post("customAppUsers", body)
921
+ end
922
+
923
+ def delete_custom_app_user(custom_app_user_id: nil)
924
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
925
+ tunes_request_client.delete("customAppUsers/#{custom_app_user_id}", params)
926
+ end
927
+
928
+ #
929
+ # customOrganizationUsers
930
+ #
931
+
932
+ def get_custom_app_organization(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
933
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
934
+ tunes_request_client.get("apps/#{app_id}/customAppOrganizations", params)
935
+ end
936
+
937
+ def post_custom_app_organization(app_id: nil, device_enrollment_program_id: nil, name: nil)
938
+ body = {
939
+ data: {
940
+ type: "customAppOrganizations",
941
+ attributes: {
942
+ deviceEnrollmentProgramId: device_enrollment_program_id,
943
+ name: name
944
+ },
945
+ relationships: {
946
+ app: {
947
+ data: {
948
+ type: "apps",
949
+ id: app_id
950
+ }
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ tunes_request_client.post("customAppOrganizations", body)
957
+ end
958
+
959
+ def delete_custom_app_organization(custom_app_organization_id: nil)
960
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
961
+ tunes_request_client.delete("customAppOrganizations/#{custom_app_organization_id}", params)
962
+ end
963
+
893
964
  #
894
965
  # idfaDeclarations
895
966
  #
@@ -242,7 +242,7 @@ module Spaceship
242
242
  # @return ([Spaceship::Tunes::PricingInfo]) An array of pricing infos from the same tier
243
243
  def world_wide_pricing_info
244
244
  client
245
- .pricing_tiers
245
+ .pricing_tiers(application.apple_id)
246
246
  .find { |p| p.tier_stem == pricing_intervals.first[:tier].to_s }
247
247
  .pricing_info
248
248
  end
@@ -704,9 +704,9 @@ module Spaceship
704
704
  # ...
705
705
  # }, {
706
706
  # ...
707
- def pricing_tiers
707
+ def pricing_tiers(app_id)
708
708
  @pricing_tiers ||= begin
709
- r = request(:get, 'ra/apps/pricing/matrix')
709
+ r = request(:get, "ra/apps/#{app_id}/iaps/pricing/matrix")
710
710
  data = parse_response(r, 'data')['pricingTiers']
711
711
  data.map { |tier| Spaceship::Tunes::PricingTier.factory(tier) }
712
712
  end
@@ -16,7 +16,7 @@ module Supply
16
16
  end
17
17
 
18
18
  AVAILABLE_METADATA_FIELDS = %w(title short_description full_description video)
19
- IMAGES_TYPES = %w(featureGraphic icon promoGraphic tvBanner)
19
+ IMAGES_TYPES = %w(featureGraphic icon tvBanner) # https://developers.google.com/android-publisher/api-ref/rest/v3/AppImageType
20
20
  SCREENSHOT_TYPES = %w(phoneScreenshots sevenInchScreenshots tenInchScreenshots tvScreenshots wearScreenshots)
21
21
 
22
22
  IMAGES_FOLDER_NAME = "images"
@@ -49,7 +49,7 @@ module Supply
49
49
  end),
50
50
  FastlaneCore::ConfigItem.new(key: :rollout,
51
51
  short_option: "-r",
52
- description: "The percentage of the user fraction when uploading to the rollout track",
52
+ description: "The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout)",
53
53
  optional: true,
54
54
  verify_block: proc do |value|
55
55
  min = 0.0
@@ -111,7 +111,7 @@ module Supply
111
111
  releases = track.releases
112
112
 
113
113
  releases = releases.select { |r| r.status == status } if status
114
- releases = releases.select { |r| r.version_codes.map(&:to_s).include?(version_code.to_s) } if version_code
114
+ releases = releases.select { |r| (r.version_codes || []).map(&:to_s).include?(version_code.to_s) } if version_code
115
115
 
116
116
  if releases.size > 1
117
117
  UI.user_error!("More than one release found in this track. Please specify with the :version_code option to select a release.")
@@ -192,9 +192,10 @@ module Supply
192
192
  release = releases.first
193
193
  track_to = client.tracks(Supply.config[:track_promote_to]).first
194
194
 
195
- if Supply.config[:rollout]
195
+ rollout = (Supply.config[:rollout] || 0).to_f
196
+ if rollout > 0 && rollout < 1
196
197
  release.status = Supply::ReleaseStatus::IN_PROGRESS
197
- release.user_fraction = Supply.config[:rollout]
198
+ release.user_fraction = rollout
198
199
  else
199
200
  release.status = Supply::ReleaseStatus::COMPLETED
200
201
  release.user_fraction = nil
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.163.0
4
+ version: 2.168.0
5
5
  platform: ruby
6
6
  authors:
7
- - Daniel Jankowski
8
- - Kohki Miki
9
- - Helmut Januschka
7
+ - Aaron Brager
10
8
  - Danielle Tomlinson
11
- - Fumiya Nakamura
9
+ - Matthew Ellis
12
10
  - Joshua Liebowitz
13
- - Jérôme Lacoste
14
- - Aaron Brager
15
- - Jorge Revuelta H
16
- - Iulian Onofrei
17
- - Jimmy Dee
18
- - Jan Piotrowski
19
- - Luka Mirosevic
20
11
  - Felix Krause
21
- - Max Ott
22
- - Stefan Natchev
23
12
  - Manu Wallner
24
- - Matthew Ellis
13
+ - Daniel Jankowski
14
+ - Iulian Onofrei
25
15
  - Josh Holtz
26
- - Maksym Grebenets
16
+ - Jérôme Lacoste
17
+ - Fumiya Nakamura
27
18
  - Andrew McBurney
19
+ - Max Ott
20
+ - Jan Piotrowski
21
+ - Jorge Revuelta H
22
+ - Stefan Natchev
23
+ - Luka Mirosevic
24
+ - Jimmy Dee
25
+ - Maksym Grebenets
26
+ - Kohki Miki
27
+ - Helmut Januschka
28
28
  - Olivier Halligon
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-10-12 00:00:00.000000000 Z
32
+ date: 2020-11-19 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -983,9 +983,8 @@ files:
983
983
  - fastlane/lib/fastlane/.erb_template_helper.rb.swp
984
984
  - fastlane/lib/fastlane/action.rb
985
985
  - fastlane/lib/fastlane/action_collector.rb
986
+ - fastlane/lib/fastlane/actions/.download_dsyms.rb.swp
986
987
  - fastlane/lib/fastlane/actions/.git_commit.rb.swp
987
- - fastlane/lib/fastlane/actions/.register_device.rb.swp
988
- - fastlane/lib/fastlane/actions/.register_devices.rb.swp
989
988
  - fastlane/lib/fastlane/actions/README.md
990
989
  - fastlane/lib/fastlane/actions/actions_helper.rb
991
990
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1620,7 +1619,10 @@ files:
1620
1619
  - spaceship/lib/spaceship/connect_api/client.rb
1621
1620
  - spaceship/lib/spaceship/connect_api/file_uploader.rb
1622
1621
  - spaceship/lib/spaceship/connect_api/model.rb
1622
+ - spaceship/lib/spaceship/connect_api/models/.app.rb.swp
1623
+ - spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp
1623
1624
  - spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp
1625
+ - spaceship/lib/spaceship/connect_api/models/.build.rb.swp
1624
1626
  - spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
1625
1627
  - spaceship/lib/spaceship/connect_api/models/app.rb
1626
1628
  - spaceship/lib/spaceship/connect_api/models/app_category.rb
@@ -1656,6 +1658,8 @@ files:
1656
1658
  - spaceship/lib/spaceship/connect_api/models/bundle_id.rb
1657
1659
  - spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb
1658
1660
  - spaceship/lib/spaceship/connect_api/models/certificate.rb
1661
+ - spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb
1662
+ - spaceship/lib/spaceship/connect_api/models/custom_app_user.rb
1659
1663
  - spaceship/lib/spaceship/connect_api/models/device.rb
1660
1664
  - spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb
1661
1665
  - spaceship/lib/spaceship/connect_api/models/pre_release_version.rb
@@ -1828,7 +1832,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1828
1832
  - !ruby/object:Gem::Version
1829
1833
  version: '0'
1830
1834
  requirements: []
1831
- rubygems_version: 3.0.6
1835
+ rubygems_version: 3.1.4
1832
1836
  signing_key:
1833
1837
  specification_version: 4
1834
1838
  summary: The easiest way to automate beta deployments and releases for your iOS and