fastlane 2.182.0 → 2.184.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +103 -96
  3. data/cert/lib/cert/runner.rb +3 -7
  4. data/deliver/lib/assets/summary.html.erb +10 -10
  5. data/deliver/lib/deliver/commands_generator.rb +1 -1
  6. data/deliver/lib/deliver/detect_values.rb +5 -3
  7. data/deliver/lib/deliver/download_screenshots.rb +1 -1
  8. data/deliver/lib/deliver/html_generator.rb +2 -2
  9. data/deliver/lib/deliver/module.rb +6 -0
  10. data/deliver/lib/deliver/options.rb +36 -51
  11. data/deliver/lib/deliver/runner.rb +8 -11
  12. data/deliver/lib/deliver/setup.rb +1 -1
  13. data/deliver/lib/deliver/submit_for_review.rb +4 -4
  14. data/deliver/lib/deliver/upload_metadata.rb +20 -6
  15. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  16. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +7 -11
  18. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
  19. data/fastlane/lib/fastlane/actions/carthage.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
  21. data/fastlane/lib/fastlane/actions/danger.rb +7 -1
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +32 -12
  23. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  24. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +3 -1
  25. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
  26. data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
  27. data/fastlane/lib/fastlane/actions/hipchat.rb +2 -1
  28. data/fastlane/lib/fastlane/actions/notification.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
  30. data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
  31. data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
  32. data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -15
  33. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  34. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
  35. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
  36. data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
  37. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  38. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  39. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
  40. data/fastlane/lib/fastlane/swift_fastlane_function.rb +6 -4
  41. data/fastlane/lib/fastlane/version.rb +1 -1
  42. data/fastlane/swift/Deliverfile.swift +1 -1
  43. data/fastlane/swift/DeliverfileProtocol.swift +20 -20
  44. data/fastlane/swift/Fastlane.swift +473 -247
  45. data/fastlane/swift/Gymfile.swift +1 -1
  46. data/fastlane/swift/GymfileProtocol.swift +1 -1
  47. data/fastlane/swift/Matchfile.swift +1 -1
  48. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  49. data/fastlane/swift/OptionalConfigValue.swift +2 -32
  50. data/fastlane/swift/Precheckfile.swift +1 -1
  51. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  52. data/fastlane/swift/Scanfile.swift +1 -1
  53. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  54. data/fastlane/swift/Screengrabfile.swift +1 -1
  55. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  56. data/fastlane/swift/Snapshotfile.swift +1 -1
  57. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  58. data/fastlane/swift/formatting/Brewfile.lock.json +11 -11
  59. data/fastlane_core/lib/fastlane_core/build_watcher.rb +39 -3
  60. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
  61. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +5 -3
  62. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
  63. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  64. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -1
  65. data/frameit/lib/frameit/config_parser.rb +2 -2
  66. data/frameit/lib/frameit/frame_downloader.rb +2 -1
  67. data/gym/lib/gym/code_signing_mapping.rb +2 -2
  68. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +6 -5
  69. data/match/lib/match/importer.rb +6 -10
  70. data/match/lib/match/migrate.rb +2 -3
  71. data/match/lib/match/nuke.rb +3 -7
  72. data/match/lib/match/options.rb +1 -0
  73. data/match/lib/match/runner.rb +2 -3
  74. data/match/lib/match/spaceship_ensure.rb +3 -0
  75. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  76. data/match/lib/match/storage/s3_storage.rb +2 -2
  77. data/pilot/lib/pilot/build_manager.rb +7 -4
  78. data/pilot/lib/pilot/manager.rb +3 -7
  79. data/pilot/lib/pilot/options.rb +8 -0
  80. data/precheck/lib/precheck/runner.rb +8 -7
  81. data/scan/lib/scan/runner.rb +1 -1
  82. data/sigh/lib/assets/resign.sh +77 -46
  83. data/sigh/lib/sigh/download_all.rb +4 -8
  84. data/sigh/lib/sigh/runner.rb +4 -8
  85. data/spaceship/README.md +2 -2
  86. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  87. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +35 -4
  88. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
  90. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  91. data/spaceship/lib/spaceship/connect_api/models/build.rb +2 -0
  92. data/spaceship/lib/spaceship/connect_api/token.rb +6 -0
  93. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
  94. data/supply/lib/supply/client.rb +2 -2
  95. data/supply/lib/supply/uploader.rb +2 -2
  96. metadata +42 -39
@@ -9,9 +9,11 @@ module Sigh
9
9
  class DownloadAll
10
10
  # Download all valid provisioning profiles
11
11
  def download_all(download_xcode_profiles: false)
12
- if (token = api_token)
12
+ if (api_token = Spaceship::ConnectAPI::Token.from(hash: Sigh.config[:api_key], filepath: Sigh.config[:api_key_path]))
13
13
  UI.message("Creating authorization token for App Store Connect API")
14
- Spaceship::ConnectAPI.token = token
14
+ Spaceship::ConnectAPI.token = api_token
15
+ elsif !Spaceship::ConnectAPI.token.nil?
16
+ UI.message("Using existing authorization token for App Store Connect API")
15
17
  else
16
18
  # Team selection passed though FASTLANE_ITC_TEAM_ID and FASTLANE_ITC_TEAM_NAME environment variables
17
19
  # Prompts select team if multiple teams and none specified
@@ -59,12 +61,6 @@ module Sigh
59
61
  download_profiles(profiles)
60
62
  end
61
63
 
62
- def api_token
63
- api_token ||= Spaceship::ConnectAPI::Token.create(**Sigh.config[:api_key]) if Sigh.config[:api_key]
64
- api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Sigh.config[:api_key_path]) if Sigh.config[:api_key_path]
65
- return api_token
66
- end
67
-
68
64
  # @param profiles [Array] Array of all the provisioning profiles we want to download
69
65
  def download_profiles(profiles)
70
66
  UI.important("No profiles available for download") if profiles.empty?
@@ -17,9 +17,11 @@ module Sigh
17
17
  hide_keys: [:output_path],
18
18
  title: "Summary for sigh #{Fastlane::VERSION}")
19
19
 
20
- if api_token
20
+ if (api_token = Spaceship::ConnectAPI::Token.from(hash: Sigh.config[:api_key], filepath: Sigh.config[:api_key_path]))
21
21
  UI.message("Creating authorization token for App Store Connect API")
22
22
  Spaceship::ConnectAPI.token = api_token
23
+ elsif !Spaceship::ConnectAPI.token.nil?
24
+ UI.message("Using existing authorization token for App Store Connect API")
23
25
  else
24
26
  # Username is now optional since addition of App Store Connect API Key
25
27
  # Force asking for username to prompt user if not already set
@@ -63,12 +65,6 @@ module Sigh
63
65
  return download_profile(profile)
64
66
  end
65
67
 
66
- def api_token
67
- @api_token ||= Spaceship::ConnectAPI::Token.create(**Sigh.config[:api_key]) if Sigh.config[:api_key]
68
- @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Sigh.config[:api_key_path]) if Sigh.config[:api_key_path]
69
- return @api_token
70
- end
71
-
72
68
  # The kind of provisioning profile we're interested in
73
69
  def profile_type
74
70
  return @profile_type if @profile_type
@@ -286,7 +282,7 @@ module Sigh
286
282
  [Spaceship::ConnectAPI::Device::DeviceClass::MAC]
287
283
  end
288
284
 
289
- if api_token
285
+ if Spaceship::ConnectAPI.token
290
286
  return Spaceship::ConnectAPI::Device.all.select do |device|
291
287
  device_classes.include?(device.device_class)
292
288
  end
data/spaceship/README.md CHANGED
@@ -111,11 +111,11 @@ When your Apple account has 2 factor verification enabled, you'll automatically
111
111
 
112
112
  #### Web sessions
113
113
 
114
- See [Continuous Integration > Authenticating with Apple services > Method 2: Two-step or two-factor authentication > Storing a manually verified session using spaceauth](https://docs.fastlane.tools/best-practices/continuous-integration/#storing-a-manually-verified-session-using-spaceauth)
114
+ See [Best Practices > Continuous Integration > Authenticating with Apple services > Method 2: Two-step or two-factor authentication > Storing a manually verified session using spaceauth](https://docs.fastlane.tools/best-practices/continuous-integration/#storing-a-manually-verified-session-using-spaceauth)
115
115
 
116
116
  #### Transporter
117
117
 
118
- See [Getting Started > iOS > Authentication > Method 3: Application-specific passwords](https://docs.fastlane.tools/getting-started/ios/authentication/#method-3-application-specific-passwords)
118
+ See [Best Practices > Continuous Integration > Authenticating with Apple services > Method 3: Application-specific passwords](https://docs.fastlane.tools/best-practices/continuous-integration/#method-3-application-specific-passwords)
119
119
 
120
120
  ## _spaceship_ in use
121
121
 
@@ -30,7 +30,7 @@ module Spaceship
30
30
  # Creates alias for :minOsVersion to :min_os_version
31
31
  #
32
32
  def attr_mapping(attr_map)
33
- self.reverse_attr_map ||= attr_map.invert.each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v; }
33
+ self.reverse_attr_map ||= attr_map.invert.transform_keys(&:to_sym)
34
34
  attr_map.each do |key, value|
35
35
  # Actual
36
36
  reader = value.to_sym
@@ -6,6 +6,8 @@ module Spaceship
6
6
 
7
7
  # Rating
8
8
  attr_accessor :alcohol_tobacco_or_drug_use_or_references
9
+ attr_accessor :contests
10
+ attr_accessor :gambling
9
11
  attr_accessor :gambling_simulated
10
12
  attr_accessor :medical_or_treatment_information
11
13
  attr_accessor :profanity_or_crude_humor
@@ -16,13 +18,16 @@ module Spaceship
16
18
  attr_accessor :violence_realistic_prolonged_graphic_or_sadistic
17
19
  attr_accessor :violence_realistic
18
20
 
19
- # boolean
20
- attr_accessor :gambling_and_contests
21
+ # Boolean
22
+ attr_accessor :seventeen_plus
21
23
  attr_accessor :unrestricted_web_access
22
24
 
23
25
  # KidsAge
24
26
  attr_accessor :kids_age_band
25
27
 
28
+ # Deprecated as of App Store Connect API 1.3
29
+ attr_accessor :gambling_and_contests
30
+
26
31
  module Rating
27
32
  NONE = "NONE"
28
33
  INFREQUENT_OR_MILD = "INFREQUENT_OR_MILD"
@@ -37,10 +42,12 @@ module Spaceship
37
42
 
38
43
  attr_mapping({
39
44
  "alcoholTobaccoOrDrugUseOrReferences" => "alcohol_tobacco_or_drug_use_or_references",
40
- "gamblingAndContests" => "gambling_and_contests",
45
+ "contests" => "contests",
46
+ "gambling" => "gambling",
41
47
  "gamblingSimulated" => "gambling_simulated",
42
48
  "medicalOrTreatmentInformation" => "medical_or_treatment_information",
43
49
  "profanityOrCrudeHumor" => "profanity_or_crude_humor",
50
+ "seventeenPlus" => "seventeen_plus",
44
51
  "sexualContentGraphicAndNudity" => "sexual_content_graphic_and_nudity",
45
52
  "sexualContentOrNudity" => "sexual_content_or_nudity",
46
53
  "horrorOrFearThemes" => "horror_or_fear_themes",
@@ -49,7 +56,10 @@ module Spaceship
49
56
  "violenceCartoonOrFantasy" => "violence_cartoon_or_fantasy",
50
57
  "violenceRealisticProlongedGraphicOrSadistic" => "violence_realistic_prolonged_graphic_or_sadistic",
51
58
  "violenceRealistic" => "violence_realistic",
52
- "kidsAgeBand" => "kids_age_band"
59
+ "kidsAgeBand" => "kids_age_band",
60
+
61
+ # Deprecated as of App Store Connect API 1.3
62
+ "gamblingAndContests" => "gambling_and_contests",
53
63
  })
54
64
 
55
65
  def self.type
@@ -83,6 +93,27 @@ module Spaceship
83
93
  1 => true
84
94
  }
85
95
 
96
+ def self.map_deprecation_if_possible(attributes)
97
+ attributes = attributes.dup
98
+ messages = []
99
+ errors = []
100
+
101
+ value = attributes.delete('gamblingAndContests')
102
+ return attributes, messages, errors if value.nil?
103
+
104
+ messages << "Age Rating 'gamblingAndContests' has been deprecated and split into 'gambling' and 'contests'"
105
+
106
+ attributes['gambling'] = value
107
+ if value == true
108
+ errors << "'gamblingAndContests' could not be mapped to 'contests' - 'contests' requires a value of 'NONE', 'INFREQUENT_OR_MILD', or 'FREQUENT_OR_INTENSE'"
109
+ attributes['contests'] = value
110
+ else
111
+ attributes['contests'] = 'NONE'
112
+ end
113
+
114
+ return attributes, messages, errors
115
+ end
116
+
86
117
  def self.map_key_from_itc(key)
87
118
  key = key.gsub("MZGenre.", "")
88
119
  return nil if key.empty?
@@ -81,6 +81,16 @@ module Spaceship
81
81
  client.delete_app_info(app_info_id: id)
82
82
  end
83
83
 
84
+ #
85
+ # Age Rating Declaration
86
+ #
87
+
88
+ def fetch_age_rating_declaration(client: nil)
89
+ client ||= Spaceship::ConnectAPI
90
+ resp = client.get_age_rating_declaration(app_info_id: id)
91
+ return resp.to_models.first
92
+ end
93
+
84
94
  #
85
95
  # App Info Localizations
86
96
  #
@@ -110,10 +110,9 @@ module Spaceship
110
110
  # Age Rating Declaration
111
111
  #
112
112
 
113
+ # @deprecated
113
114
  def fetch_age_rating_declaration(client: nil)
114
- client ||= Spaceship::ConnectAPI
115
- resp = client.get_age_rating_declaration(app_store_version_id: id)
116
- return resp.to_models.first
115
+ raise 'AppStoreVersion no longer as AgeRatingDelcaration as of App Store Connect API 1.3 - Use AppInfo instead'
117
116
  end
118
117
 
119
118
  #
@@ -12,6 +12,7 @@ module Spaceship
12
12
  attr_accessor :public_link_limit_enabled
13
13
  attr_accessor :public_link_limit
14
14
  attr_accessor :public_link
15
+ attr_accessor :beta_testers
15
16
 
16
17
  attr_mapping({
17
18
  "name" => "name",
@@ -21,7 +22,8 @@ module Spaceship
21
22
  "publicLinkId" => "public_link_id",
22
23
  "publicLinkLimitEnabled" => "public_link_limit_enabled",
23
24
  "publicLinkLimit" => "public_link_limit",
24
- "publicLink" => "public_link"
25
+ "publicLink" => "public_link",
26
+ "betaTesters" => "beta_testers"
25
27
  })
26
28
 
27
29
  def self.type
@@ -17,6 +17,7 @@ module Spaceship
17
17
  attr_accessor :app
18
18
  attr_accessor :beta_app_review_submission
19
19
  attr_accessor :beta_build_metrics
20
+ attr_accessor :beta_build_localizations
20
21
  attr_accessor :build_beta_detail
21
22
  attr_accessor :pre_release_version
22
23
 
@@ -33,6 +34,7 @@ module Spaceship
33
34
  "app" => "app",
34
35
  "betaAppReviewSubmission" => "beta_app_review_submission",
35
36
  "betaBuildMetrics" => "beta_build_metrics",
37
+ "betaBuildLocalizations" => "beta_build_localizations",
36
38
  "buildBetaDetail" => "build_beta_detail",
37
39
  "preReleaseVersion" => "pre_release_version"
38
40
  })
@@ -25,6 +25,12 @@ module Spaceship
25
25
  # key is for App Store or Enterprise so this is the temporary workaround
26
26
  attr_accessor :in_house
27
27
 
28
+ def self.from(hash: nil, filepath: nil)
29
+ api_token ||= self.create(**hash) if hash
30
+ api_token ||= self.from_json_file(filepath) if filepath
31
+ return api_token
32
+ end
33
+
28
34
  def self.from_json_file(filepath)
29
35
  json = JSON.parse(File.read(filepath), { symbolize_names: true })
30
36
 
@@ -17,9 +17,11 @@ module Spaceship
17
17
  # ageRatingDeclarations
18
18
  #
19
19
 
20
- def get_age_rating_declaration(app_store_version_id: nil)
20
+ def get_age_rating_declaration(app_info_id: nil, app_store_version_id: nil)
21
+ raise "Keyword 'app_store_version_id' is deprecated and 'app_info_id' is required" if app_store_version_id || app_info_id.nil?
22
+
21
23
  params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
22
- tunes_request_client.get("appStoreVersions/#{app_store_version_id}/ageRatingDeclaration", params)
24
+ tunes_request_client.get("appInfos/#{app_info_id}/ageRatingDeclaration", params)
23
25
  end
24
26
 
25
27
  def patch_age_rating_declaration(age_rating_declaration_id: nil, attributes: nil)
@@ -279,13 +279,13 @@ module Supply
279
279
  def update_listing_for_language(language: nil, title: nil, short_description: nil, full_description: nil, video: nil)
280
280
  ensure_active_edit!
281
281
 
282
- listing = AndroidPublisher::Listing.new({
282
+ listing = AndroidPublisher::Listing.new(
283
283
  language: language,
284
284
  title: title,
285
285
  full_description: full_description,
286
286
  short_description: short_description,
287
287
  video: video
288
- })
288
+ )
289
289
 
290
290
  call_google_api do
291
291
  client.update_edit_listing(
@@ -233,10 +233,10 @@ module Supply
233
233
  end
234
234
  end
235
235
 
236
- AndroidPublisher::LocalizedText.new({
236
+ AndroidPublisher::LocalizedText.new(
237
237
  language: language,
238
238
  text: changelog_text
239
- })
239
+ )
240
240
  end
241
241
 
242
242
  def upload_changelogs(release_notes, release, track)
metadata CHANGED
@@ -1,37 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.182.0
4
+ version: 2.184.1
5
5
  platform: ruby
6
6
  authors:
7
+ - Jan Piotrowski
8
+ - Manu Wallner
9
+ - Max Ott
10
+ - Olivier Halligon
11
+ - Satoshi Namai
12
+ - Joshua Liebowitz
7
13
  - Josh Holtz
8
- - Fumiya Nakamura
9
- - Andrew McBurney
14
+ - Aaron Brager
15
+ - Jorge Revuelta H
16
+ - Iulian Onofrei
17
+ - Jimmy Dee
18
+ - Maksym Grebenets
10
19
  - Luka Mirosevic
11
- - Satoshi Namai
12
- - Stefan Natchev
13
- - Daniel Jankowski
14
20
  - Jérôme Lacoste
15
- - Olivier Halligon
16
- - Jorge Revuelta H
17
21
  - Kohki Miki
18
- - Iulian Onofrei
19
- - Jan Piotrowski
20
- - Joshua Liebowitz
21
22
  - Danielle Tomlinson
22
- - Aaron Brager
23
23
  - Felix Krause
24
+ - Manish Rathi
25
+ - Fumiya Nakamura
26
+ - Andrew McBurney
27
+ - Roger Oba
24
28
  - Matthew Ellis
25
- - Manu Wallner
26
- - Maksym Grebenets
27
29
  - Helmut Januschka
28
- - Jimmy Dee
29
- - Roger Oba
30
- - Max Ott
30
+ - Daniel Jankowski
31
+ - Stefan Natchev
31
32
  autorequire:
32
33
  bindir: bin
33
34
  cert_chain: []
34
- date: 2021-05-05 00:00:00.000000000 Z
35
+ date: 2021-05-28 00:00:00.000000000 Z
35
36
  dependencies:
36
37
  - !ruby/object:Gem::Dependency
37
38
  name: xcodeproj
@@ -584,45 +585,47 @@ dependencies:
584
585
  - !ruby/object:Gem::Version
585
586
  version: '3'
586
587
  - !ruby/object:Gem::Dependency
587
- name: google-api-client
588
+ name: google-apis-playcustomapp_v1
588
589
  requirement: !ruby/object:Gem::Requirement
589
590
  requirements:
590
- - - ">="
591
- - !ruby/object:Gem::Version
592
- version: 0.37.0
593
- - - "<"
591
+ - - "~>"
594
592
  - !ruby/object:Gem::Version
595
- version: 0.39.0
593
+ version: '0.1'
596
594
  type: :runtime
597
595
  prerelease: false
598
596
  version_requirements: !ruby/object:Gem::Requirement
599
597
  requirements:
600
- - - ">="
598
+ - - "~>"
601
599
  - !ruby/object:Gem::Version
602
- version: 0.37.0
603
- - - "<"
600
+ version: '0.1'
601
+ - !ruby/object:Gem::Dependency
602
+ name: google-apis-androidpublisher_v3
603
+ requirement: !ruby/object:Gem::Requirement
604
+ requirements:
605
+ - - "~>"
604
606
  - !ruby/object:Gem::Version
605
- version: 0.39.0
607
+ version: '0.1'
608
+ type: :runtime
609
+ prerelease: false
610
+ version_requirements: !ruby/object:Gem::Requirement
611
+ requirements:
612
+ - - "~>"
613
+ - !ruby/object:Gem::Version
614
+ version: '0.1'
606
615
  - !ruby/object:Gem::Dependency
607
616
  name: google-cloud-storage
608
617
  requirement: !ruby/object:Gem::Requirement
609
618
  requirements:
610
- - - ">="
611
- - !ruby/object:Gem::Version
612
- version: 1.15.0
613
- - - "<"
619
+ - - "~>"
614
620
  - !ruby/object:Gem::Version
615
- version: 2.0.0
621
+ version: '1.31'
616
622
  type: :runtime
617
623
  prerelease: false
618
624
  version_requirements: !ruby/object:Gem::Requirement
619
625
  requirements:
620
- - - ">="
621
- - !ruby/object:Gem::Version
622
- version: 1.15.0
623
- - - "<"
626
+ - - "~>"
624
627
  - !ruby/object:Gem::Version
625
- version: 2.0.0
628
+ version: '1.31'
626
629
  - !ruby/object:Gem::Dependency
627
630
  name: emoji_regex
628
631
  requirement: !ruby/object:Gem::Requirement
@@ -1851,7 +1854,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1851
1854
  requirements:
1852
1855
  - - ">="
1853
1856
  - !ruby/object:Gem::Version
1854
- version: '2.4'
1857
+ version: '2.5'
1855
1858
  required_rubygems_version: !ruby/object:Gem::Requirement
1856
1859
  requirements:
1857
1860
  - - ">="