supply 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2962e8c36a67b8e1fc920269e1052c3f3392de08
4
- data.tar.gz: 5313215b362d0c842128f7f6d49614a10cbb6948
3
+ metadata.gz: eff55accd696bce7ea7f682dbe1f1201abaab960
4
+ data.tar.gz: 6904059222901364058d75845490675f9a001df2
5
5
  SHA512:
6
- metadata.gz: 9430225bf759727b2d9c3a72dcd434c11bc5883ec2e52e53e8a580b6cad19607c0387f8d00323a014b2dd0c799e0dff279e39b88afe046e8373a8cb1d664c9b6
7
- data.tar.gz: 89fd60fe08bb2b6bba279ee7eeb2f88432ea1602aa4bc25d22296c201b1d57d26c045d556a102c24288d7e87b36960c9e1b56e3f9af12589f8e5e53885265c3d
6
+ metadata.gz: 8443859f5876dd6dd7bc1015f91ab49a96cc0c96a28045e5ff4402be07b6fb3d77e4385b94551df679b8506994760274331c52a80aa3b208a99c5ca64dee35e1
7
+ data.tar.gz: 9d879c1ae4f98e4a119970306277f807d5d3cf38a7312f8e1401ab8ac09353da6b52967299031d4f3afad94af87e483865c434be9cde9ee36e002c3805d087e2
data/README.md CHANGED
@@ -1,24 +1,24 @@
1
1
  <h3 align="center">
2
- <a href="https://github.com/fastlane/fastlane">
3
- <img src="assets/fastlane.png" width="150" />
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="150" />
4
4
  <br />
5
5
  fastlane
6
6
  </a>
7
7
  </h3>
8
8
  <p align="center">
9
- <a href="https://github.com/fastlane/deliver">deliver</a> &bull;
10
- <a href="https://github.com/fastlane/snapshot">snapshot</a> &bull;
11
- <a href="https://github.com/fastlane/frameit">frameit</a> &bull;
12
- <a href="https://github.com/fastlane/pem">pem</a> &bull;
13
- <a href="https://github.com/fastlane/sigh">sigh</a> &bull;
14
- <a href="https://github.com/fastlane/produce">produce</a> &bull;
15
- <a href="https://github.com/fastlane/cert">cert</a> &bull;
16
- <a href="https://github.com/fastlane/spaceship">spaceship</a> &bull;
17
- <a href="https://github.com/fastlane/pilot">pilot</a> &bull;
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
- <a href="https://github.com/fastlane/gym">gym</a> &bull;
20
- <a href="https://github.com/fastlane/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/match">match</a>
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
22
22
  </p>
23
23
  -------
24
24
 
@@ -30,9 +30,9 @@ supply
30
30
  ============
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
- [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/supply/blob/master/LICENSE)
33
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/supply/LICENSE)
34
34
  [![Gem](https://img.shields.io/gem/v/supply.svg?style=flat)](http://rubygems.org/gems/supply)
35
- [![Build Status](https://img.shields.io/travis/fastlane/supply/master.svg?style=flat)](https://travis-ci.org/KrauseFx/supply)
35
+ [![Build Status](https://img.shields.io/circleci/project/fastlane/fastlane/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
36
36
 
37
37
  ###### Command line tool for updating Android apps and their metadata on the Google Play Store
38
38
 
@@ -41,12 +41,12 @@ Get in contact with the developer on Twitter: [@FastlaneTools](https://twitter.c
41
41
 
42
42
  -------
43
43
  <p align="center">
44
- <a href="#features">Features</a> &bull;
45
- <a href="#installation">Installation</a> &bull;
46
- <a href="#setup">Setup</a> &bull;
47
- <a href="#quick-start">Quick Start</a> &bull;
48
- <a href="#available-commands">Commands</a> &bull;
49
- <a href="#uploading-an-apk">Uploading an APK</a> &bull;
44
+ <a href="#features">Features</a> &bull;
45
+ <a href="#installation">Installation</a> &bull;
46
+ <a href="#setup">Setup</a> &bull;
47
+ <a href="#quick-start">Quick Start</a> &bull;
48
+ <a href="#available-commands">Commands</a> &bull;
49
+ <a href="#uploading-an-apk">Uploading an APK</a> &bull;
50
50
  <a href="#images-and-screenshots">Images</a>
51
51
  </p>
52
52
 
@@ -161,7 +161,7 @@ You can add changelog files under the `changelogs/` directory for each locale. T
161
161
  ```
162
162
  └── fastlane
163
163
  └── metadata
164
- └── android
164
+ └── android
165
165
  ├── en-US
166
166
  │ └── changelogs
167
167
  │ ├── 100000.txt
@@ -176,19 +176,18 @@ You can add changelog files under the `changelogs/` directory for each locale. T
176
176
  ### [`fastlane`](https://fastlane.tools) Toolchain
177
177
 
178
178
  - [`fastlane`](https://fastlane.tools): Connect all deployment tools into one streamlined workflow
179
- - [`deliver`](https://github.com/fastlane/deliver): Upload screenshots, metadata and your app to the App Store
180
- - [`snapshot`](https://github.com/fastlane/snapshot): Automate taking localized screenshots of your iOS app on every device
181
- - [`frameit`](https://github.com/fastlane/frameit): Quickly put your screenshots into the right device frames
182
- - [`pem`](https://github.com/fastlane/pem): Automatically generate and renew your push notification profiles
183
- - [`sigh`](https://github.com/fastlane/sigh): Because you would rather spend your time building stuff than fighting provisioning
184
- - [`produce`](https://github.com/fastlane/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
185
- - [`cert`](https://github.com/fastlane/cert): Automatically create and maintain iOS code signing certificates
186
- - [`codes`](https://github.com/fastlane/codes): Create promo codes for iOS Apps using the command line
187
- - [`spaceship`](https://github.com/fastlane/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
188
- - [`pilot`](https://github.com/fastlane/pilot): The best way to manage your TestFlight testers and builds from your terminal
189
- - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
190
- - [`gym`](https://github.com/fastlane/gym): Building your iOS apps has never been easier
191
- - [`match`](https://github.com/fastlane/match): Easily sync your certificates and profiles across your team using git
179
+ - [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
180
+ - [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
181
+ - [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
182
+ - [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
183
+ - [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
184
+ - [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
185
+ - [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
186
+ - [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
187
+ - [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
188
+ - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
189
+ - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
190
+ - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
192
191
 
193
192
  ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
194
193
 
@@ -196,7 +195,7 @@ You can add changelog files under the `changelogs/` directory for each locale. T
196
195
  Please submit an issue on GitHub and provide information about your setup
197
196
 
198
197
  # Code of Conduct
199
- Help us keep `supply` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
198
+ Help us keep `supply` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
200
199
 
201
200
  ## License
202
201
 
data/lib/supply/client.rb CHANGED
@@ -52,7 +52,7 @@ module Supply
52
52
 
53
53
  auth_client = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: key_io, scope: scope)
54
54
 
55
- Helper.log.debug "Fetching a new access token from Google..."
55
+ UI.verbose("Fetching a new access token from Google...")
56
56
 
57
57
  auth_client.fetch_access_token!
58
58
 
@@ -76,7 +76,7 @@ module Supply
76
76
 
77
77
  # Begin modifying a certain package
78
78
  def begin_edit(package_name: nil)
79
- raise "You currently have an active edit" if @current_edit
79
+ UI.user_error!("You currently have an active edit") if @current_edit
80
80
 
81
81
  self.current_edit = android_publisher.insert_edit(package_name)
82
82
 
@@ -280,7 +280,7 @@ module Supply
280
280
  private
281
281
 
282
282
  def ensure_active_edit!
283
- raise "You need to have an active edit, make sure to call `begin_edit`" unless @current_edit
283
+ UI.user_error!("You need to have an active edit, make sure to call `begin_edit`") unless @current_edit
284
284
  end
285
285
  end
286
286
  end
@@ -22,7 +22,7 @@ module Supply
22
22
  program :description, Supply::DESCRIPTION
23
23
  program :help, 'Author', 'Felix Krause <supply@krausefx.com>'
24
24
  program :help, 'Website', 'https://fastlane.tools'
25
- program :help, 'GitHub', 'https://github.com/fastlane/supply'
25
+ program :help, 'GitHub', 'https://github.com/fastlane/fastlane/tree/master/supply'
26
26
  program :help_formatter, :compact
27
27
 
28
28
  always_trace!
@@ -37,18 +37,17 @@ module Supply
37
37
  env_name: "SUPPLY_KEY",
38
38
  short_option: "-k",
39
39
  conflicting_options: [:json_key],
40
- optional: true, # deprecated
40
+ deprecated: 'Use --json_key instead',
41
41
  description: "The p12 File used to authenticate with Google",
42
42
  default_value: Dir["*.p12"].first || CredentialsManager::AppfileConfig.try_fetch_value(:keyfile),
43
43
  verify_block: proc do |value|
44
- UI.important("DEPRECATED --key OPTION. Use --json_key instead")
45
44
  UI.user_error! "Could not find p12 file at path '#{File.expand_path(value)}'" unless File.exist?(File.expand_path(value))
46
45
  end),
47
46
  FastlaneCore::ConfigItem.new(key: :issuer,
48
47
  env_name: "SUPPLY_ISSUER",
49
48
  short_option: "-i",
50
49
  conflicting_options: [:json_key],
51
- optional: true, # deprecated
50
+ deprecated: 'Use --json_key instead',
52
51
  description: "The issuer of the p12 file (email address of the service account)",
53
52
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:issuer),
54
53
  verify_block: proc do |value|
data/lib/supply/setup.rb CHANGED
@@ -2,7 +2,7 @@ module Supply
2
2
  class Setup
3
3
  def perform_download
4
4
  if File.exist?(metadata_path)
5
- Helper.log.info "Metadata already exists at path '#{metadata_path}'".yellow
5
+ UI.important("Metadata already exists at path '#{metadata_path}'")
6
6
  return
7
7
  end
8
8
 
@@ -22,7 +22,7 @@ module Supply
22
22
 
23
23
  client.abort_current_edit
24
24
 
25
- Helper.log.info "Successfully stored metadata in '#{metadata_path}'".green
25
+ UI.success("Successfully stored metadata in '#{metadata_path}'")
26
26
  end
27
27
 
28
28
  def store_metadata(listing)
@@ -31,8 +31,8 @@ module Supply
31
31
 
32
32
  Supply::AVAILABLE_METADATA_FIELDS.each do |key|
33
33
  path = File.join(containing, "#{key}.txt")
34
- Helper.log.info "Writing to #{path}..."
35
- File.write(path, listing.send(key))
34
+ UI.message("Writing to #{path}...")
35
+ File.open(path, 'w:UTF-8') { |file| file.write(listing.send(key)) }
36
36
  end
37
37
  end
38
38
 
@@ -44,12 +44,12 @@ module Supply
44
44
  IMAGES_TYPES.each do |image_type|
45
45
  if ['featureGraphic'].include?(image_type)
46
46
  # we don't get all files in full resolution :(
47
- Helper.log.info "Due to the limit of the Google Play API `supply` can't download your existing feature graphics..."
47
+ UI.message("Due to the limit of the Google Play API `supply` can't download your existing feature graphics...")
48
48
  next
49
49
  end
50
50
 
51
51
  begin
52
- Helper.log.info "Downloading #{image_type} for #{listing.language}..."
52
+ UI.message("Downloading #{image_type} for #{listing.language}...")
53
53
 
54
54
  url = client.fetch_images(image_type: image_type, language: listing.language).last
55
55
  next unless url
@@ -57,8 +57,8 @@ module Supply
57
57
  path = File.join(metadata_path, listing.language, IMAGES_FOLDER_NAME, "#{image_type}.png")
58
58
  File.write(path, Net::HTTP.get(URI.parse(url)))
59
59
  rescue => ex
60
- Helper.log.error ex.to_s
61
- Helper.log.error "Error downloading '#{image_type}' for #{listing.language}...".red
60
+ UI.error(ex.to_s)
61
+ UI.error("Error downloading '#{image_type}' for #{listing.language}...")
62
62
  end
63
63
  end
64
64
  end
@@ -71,7 +71,7 @@ module Supply
71
71
  FileUtils.mkdir_p(File.join(containing, IMAGES_FOLDER_NAME, screenshot_type))
72
72
  end
73
73
 
74
- Helper.log.info "Due to the limit of the Google Play API `supply` can't download your existing screenshots..."
74
+ UI.message("Due to the limit of the Google Play API `supply` can't download your existing screenshots...")
75
75
  end
76
76
 
77
77
  def store_apk_listing(apk_listing)
@@ -81,7 +81,7 @@ module Supply
81
81
  end
82
82
 
83
83
  path = File.join(containing, "#{apk_listing.apk_version_code}.txt")
84
- Helper.log.info "Writing to #{path}..."
84
+ UI.message("Writing to #{path}...")
85
85
  File.write(path, apk_listing.recent_changes)
86
86
  end
87
87
 
@@ -5,14 +5,14 @@ module Supply
5
5
 
6
6
  client.begin_edit(package_name: Supply.config[:package_name])
7
7
 
8
- raise "No local metadata found, make sure to run `supply init` to setup supply".red unless metadata_path || Supply.config[:apk]
8
+ UI.user_error!("No local metadata found, make sure to run `supply init` to setup supply") unless metadata_path || Supply.config[:apk]
9
9
 
10
10
  if metadata_path
11
11
  UI.user_error!("Could not find folder #{metadata_path}") unless File.directory? metadata_path
12
12
 
13
13
  all_languages.each do |language|
14
14
  next if language.start_with?('.') # e.g. . or .. or hidden folders
15
- Helper.log.info "Preparing to upload for language '#{language}'..."
15
+ UI.message("Preparing to upload for language '#{language}'...")
16
16
 
17
17
  listing = client.listing_for_language(language)
18
18
 
@@ -25,9 +25,9 @@ module Supply
25
25
 
26
26
  upload_binary unless Supply.config[:skip_upload_apk]
27
27
 
28
- Helper.log.info "Uploading all changes to Google Play..."
28
+ UI.message("Uploading all changes to Google Play...")
29
29
  client.commit_current_edit!
30
- Helper.log.info "Successfully finished the upload to Google Play".green
30
+ UI.success("Successfully finished the upload to Google Play")
31
31
  end
32
32
 
33
33
  def upload_changelogs(language)
@@ -39,7 +39,7 @@ module Supply
39
39
  def upload_changelog(language, apk_version_code)
40
40
  path = File.join(metadata_path, language, Supply::CHANGELOGS_FOLDER_NAME, "#{apk_version_code}.txt")
41
41
  if File.exist?(path)
42
- Helper.log.info "Updating changelog for code version '#{apk_version_code}' and language '#{language}'..."
42
+ UI.message("Updating changelog for code version '#{apk_version_code}' and language '#{language}'...")
43
43
  apk_listing = ApkListing.new(File.read(path), language, apk_version_code)
44
44
  client.update_apk_listing_for_language(apk_listing)
45
45
  end
@@ -50,7 +50,12 @@ module Supply
50
50
  path = File.join(metadata_path, language, "#{key}.txt")
51
51
  listing.send("#{key}=".to_sym, File.read(path)) if File.exist?(path)
52
52
  end
53
- listing.save
53
+ begin
54
+ listing.save
55
+ rescue Encoding::InvalidByteSequenceError => ex
56
+ message = (ex.message || '').capitalize
57
+ UI.user_error!("Metadata must be UTF-8 encoded. #{message}")
58
+ end
54
59
  end
55
60
 
56
61
  def upload_images(language)
@@ -59,7 +64,7 @@ module Supply
59
64
  path = Dir.glob(search, File::FNM_CASEFOLD).last
60
65
  next unless path
61
66
 
62
- Helper.log.info "Uploading image file #{path}..."
67
+ UI.message("Uploading image file #{path}...")
63
68
  client.upload_image(image_path: File.expand_path(path),
64
69
  image_type: image_type,
65
70
  language: language)
@@ -75,7 +80,7 @@ module Supply
75
80
  client.clear_screenshots(image_type: screenshot_type, language: language)
76
81
 
77
82
  paths.sort.each do |path|
78
- Helper.log.info "Uploading screenshot #{path}..."
83
+ UI.message("Uploading screenshot #{path}...")
79
84
  client.upload_image(image_path: File.expand_path(path),
80
85
  image_type: screenshot_type,
81
86
  language: language)
@@ -87,10 +92,10 @@ module Supply
87
92
  apk_path = Supply.config[:apk]
88
93
 
89
94
  if apk_path
90
- Helper.log.info "Preparing apk at path '#{apk_path}' for upload..."
95
+ UI.message("Preparing apk at path '#{apk_path}' for upload...")
91
96
  apk_version_code = client.upload_apk(apk_path)
92
97
 
93
- Helper.log.info "Updating track '#{Supply.config[:track]}'..."
98
+ UI.message("Updating track '#{Supply.config[:track]}'...")
94
99
  if Supply.config[:track].eql? "rollout"
95
100
  client.update_track(Supply.config[:track], Supply.config[:rollout], apk_version_code)
96
101
  else
@@ -107,7 +112,7 @@ module Supply
107
112
  end
108
113
 
109
114
  else
110
- Helper.log.info "No apk file found, you can pass the path to your apk using the `apk` option"
115
+ UI.message("No apk file found, you can pass the path to your apk using the `apk` option")
111
116
  end
112
117
  end
113
118
 
@@ -149,8 +154,8 @@ module Supply
149
154
  type = obb_expansion_file_type(path)
150
155
  next unless type
151
156
  if expansion_paths[type]
152
- Helper.log.warn("Can only upload one '#{type}' apk expansion. Skipping obb upload entirely.")
153
- Helper.log.warn("If you'd like this to work differently, please submit an issue.")
157
+ UI.important("Can only upload one '#{type}' apk expansion. Skipping obb upload entirely.")
158
+ UI.important("If you'd like this to work differently, please submit an issue.")
154
159
  return {}
155
160
  end
156
161
  expansion_paths[type] = path
@@ -159,7 +164,7 @@ module Supply
159
164
  end
160
165
 
161
166
  def upload_obb(obb_path, expansion_file_type, apk_version_code)
162
- Helper.log.info "Uploading obb file #{obb_path}..."
167
+ UI.message("Uploading obb file #{obb_path}...")
163
168
  client.upload_obb(obb_file_path: obb_path,
164
169
  apk_version_code: apk_version_code,
165
170
  expansion_file_type: expansion_file_type)
@@ -1,4 +1,4 @@
1
1
  module Supply
2
- VERSION = "0.5.2".freeze
2
+ VERSION = "0.5.3".freeze
3
3
  DESCRIPTION = "Command line tool for updating Android apps and their metadata on the Google Play Store"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: supply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-02 00:00:00.000000000 Z
11
+ date: 2016-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-api-client
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.35.0
33
+ version: 0.40.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.35.0
40
+ version: 0.40.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: credentials_manager
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 3.1.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec_junit_formatter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.3
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.3
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: pry
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +184,14 @@ dependencies:
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: 0.35.1
187
+ version: 0.38.0
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: 0.35.1
194
+ version: 0.38.0
181
195
  description: Command line tool for updating Android apps and their metadata on the
182
196
  Google Play Store
183
197
  email: