fastlane 2.183.1 → 2.185.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +102 -95
  3. data/cert/lib/cert/runner.rb +3 -7
  4. data/deliver/lib/deliver/commands_generator.rb +1 -1
  5. data/deliver/lib/deliver/detect_values.rb +5 -3
  6. data/deliver/lib/deliver/download_screenshots.rb +1 -1
  7. data/deliver/lib/deliver/html_generator.rb +2 -2
  8. data/deliver/lib/deliver/module.rb +6 -0
  9. data/deliver/lib/deliver/options.rb +36 -51
  10. data/deliver/lib/deliver/runner.rb +8 -11
  11. data/deliver/lib/deliver/setup.rb +1 -1
  12. data/deliver/lib/deliver/submit_for_review.rb +1 -1
  13. data/deliver/lib/deliver/upload_metadata.rb +20 -6
  14. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  15. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/adb.rb +1 -4
  17. data/fastlane/lib/fastlane/actions/adb_devices.rb +0 -1
  18. data/fastlane/lib/fastlane/actions/add_git_tag.rb +4 -4
  19. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +10 -15
  20. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
  21. data/fastlane/lib/fastlane/actions/appetize.rb +0 -7
  22. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +0 -11
  23. data/fastlane/lib/fastlane/actions/appium.rb +40 -65
  24. data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
  25. data/fastlane/lib/fastlane/actions/artifactory.rb +5 -6
  26. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +6 -11
  27. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +2 -2
  28. data/fastlane/lib/fastlane/actions/badge.rb +9 -13
  29. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +1 -3
  30. data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
  31. data/fastlane/lib/fastlane/actions/carthage.rb +2 -16
  32. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
  33. data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
  34. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
  35. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
  36. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
  37. data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
  38. data/fastlane/lib/fastlane/actions/cocoapods.rb +9 -15
  39. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -3
  40. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
  41. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
  42. data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
  43. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
  44. data/fastlane/lib/fastlane/actions/create_keychain.rb +9 -10
  45. data/fastlane/lib/fastlane/actions/create_pull_request.rb +0 -9
  46. data/fastlane/lib/fastlane/actions/danger.rb +6 -11
  47. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
  48. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +35 -16
  49. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +10 -4
  50. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  51. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
  52. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +5 -1
  53. data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
  54. data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
  55. data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
  56. data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -15
  57. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  58. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
  59. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
  60. data/fastlane/lib/fastlane/environment_printer.rb +1 -0
  61. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
  62. data/fastlane/lib/fastlane/helper/git_helper.rb +12 -7
  63. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  64. data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
  65. data/fastlane/lib/fastlane/swift_fastlane_function.rb +8 -5
  66. data/fastlane/lib/fastlane/version.rb +1 -1
  67. data/fastlane/swift/Deliverfile.swift +1 -1
  68. data/fastlane/swift/DeliverfileProtocol.swift +20 -20
  69. data/fastlane/swift/Fastlane.swift +4096 -3668
  70. data/fastlane/swift/Gymfile.swift +1 -1
  71. data/fastlane/swift/GymfileProtocol.swift +1 -1
  72. data/fastlane/swift/Matchfile.swift +1 -1
  73. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  74. data/fastlane/swift/OptionalConfigValue.swift +2 -32
  75. data/fastlane/swift/Precheckfile.swift +1 -1
  76. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  77. data/fastlane/swift/Scanfile.swift +1 -1
  78. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  79. data/fastlane/swift/Screengrabfile.swift +1 -1
  80. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  81. data/fastlane/swift/Snapshotfile.swift +1 -1
  82. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  83. data/fastlane/swift/formatting/Brewfile.lock.json +11 -11
  84. data/fastlane_core/lib/fastlane_core/build_watcher.rb +26 -3
  85. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
  86. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +5 -3
  87. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
  88. data/fastlane_core/lib/fastlane_core/helper.rb +12 -0
  89. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
  90. data/fastlane_core/lib/fastlane_core/project.rb +7 -3
  91. data/match/lib/match/importer.rb +6 -10
  92. data/match/lib/match/migrate.rb +2 -3
  93. data/match/lib/match/nuke.rb +3 -7
  94. data/match/lib/match/options.rb +1 -0
  95. data/match/lib/match/runner.rb +2 -3
  96. data/match/lib/match/spaceship_ensure.rb +3 -0
  97. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  98. data/match/lib/match/storage/s3_storage.rb +2 -2
  99. data/pilot/lib/pilot/build_manager.rb +7 -1
  100. data/pilot/lib/pilot/manager.rb +3 -7
  101. data/pilot/lib/pilot/options.rb +10 -2
  102. data/precheck/lib/precheck/runner.rb +8 -7
  103. data/sigh/lib/assets/resign.sh +81 -61
  104. data/sigh/lib/sigh/download_all.rb +4 -8
  105. data/sigh/lib/sigh/runner.rb +4 -8
  106. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  107. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +36 -4
  108. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
  109. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
  110. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  111. data/spaceship/lib/spaceship/connect_api/models/build.rb +2 -0
  112. data/spaceship/lib/spaceship/connect_api/token.rb +6 -0
  113. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
  114. data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -6
  115. data/supply/lib/supply/client.rb +2 -2
  116. data/supply/lib/supply/uploader.rb +2 -2
  117. metadata +20 -22
  118. data/supply/lib/supply/.client.rb.swp +0 -0
  119. data/supply/lib/supply/.listing.rb.swp +0 -0
  120. data/supply/lib/supply/.uploader.rb.swp +0 -0
@@ -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
@@ -69,7 +69,7 @@ module Snapshot
69
69
  # Check each device to see if it is an iOS device
70
70
  all_ios = devices.map do |device|
71
71
  device = device.downcase
72
- device.include?('iphone') || device.include?('ipad')
72
+ device.include?('iphone') || device.include?('ipad') || device.include?('ipod')
73
73
  end
74
74
  # Return true if all devices are iOS devices
75
75
  return true unless all_ios.include?(false)
@@ -6,23 +6,29 @@ module Spaceship
6
6
 
7
7
  # Rating
8
8
  attr_accessor :alcohol_tobacco_or_drug_use_or_references
9
+ attr_accessor :contests
9
10
  attr_accessor :gambling_simulated
10
11
  attr_accessor :medical_or_treatment_information
11
12
  attr_accessor :profanity_or_crude_humor
12
13
  attr_accessor :sexual_content_graphic_and_nudity
14
+ attr_accessor :sexual_content_or_nudity
13
15
  attr_accessor :horror_or_fear_themes
14
16
  attr_accessor :mature_or_suggestive_themes
15
17
  attr_accessor :violence_cartoon_or_fantasy
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 :gambling
23
+ attr_accessor :seventeen_plus
21
24
  attr_accessor :unrestricted_web_access
22
25
 
23
26
  # KidsAge
24
27
  attr_accessor :kids_age_band
25
28
 
29
+ # Deprecated as of App Store Connect API 1.3
30
+ attr_accessor :gambling_and_contests
31
+
26
32
  module Rating
27
33
  NONE = "NONE"
28
34
  INFREQUENT_OR_MILD = "INFREQUENT_OR_MILD"
@@ -37,10 +43,12 @@ module Spaceship
37
43
 
38
44
  attr_mapping({
39
45
  "alcoholTobaccoOrDrugUseOrReferences" => "alcohol_tobacco_or_drug_use_or_references",
40
- "gamblingAndContests" => "gambling_and_contests",
46
+ "contests" => "contests",
47
+ "gambling" => "gambling",
41
48
  "gamblingSimulated" => "gambling_simulated",
42
49
  "medicalOrTreatmentInformation" => "medical_or_treatment_information",
43
50
  "profanityOrCrudeHumor" => "profanity_or_crude_humor",
51
+ "seventeenPlus" => "seventeen_plus",
44
52
  "sexualContentGraphicAndNudity" => "sexual_content_graphic_and_nudity",
45
53
  "sexualContentOrNudity" => "sexual_content_or_nudity",
46
54
  "horrorOrFearThemes" => "horror_or_fear_themes",
@@ -49,7 +57,10 @@ module Spaceship
49
57
  "violenceCartoonOrFantasy" => "violence_cartoon_or_fantasy",
50
58
  "violenceRealisticProlongedGraphicOrSadistic" => "violence_realistic_prolonged_graphic_or_sadistic",
51
59
  "violenceRealistic" => "violence_realistic",
52
- "kidsAgeBand" => "kids_age_band"
60
+ "kidsAgeBand" => "kids_age_band",
61
+
62
+ # Deprecated as of App Store Connect API 1.3
63
+ "gamblingAndContests" => "gambling_and_contests",
53
64
  })
54
65
 
55
66
  def self.type
@@ -83,6 +94,27 @@ module Spaceship
83
94
  1 => true
84
95
  }
85
96
 
97
+ def self.map_deprecation_if_possible(attributes)
98
+ attributes = attributes.dup
99
+ messages = []
100
+ errors = []
101
+
102
+ value = attributes.delete('gamblingAndContests')
103
+ return attributes, messages, errors if value.nil?
104
+
105
+ messages << "Age Rating 'gamblingAndContests' has been deprecated and split into 'gambling' and 'contests'"
106
+
107
+ attributes['gambling'] = value
108
+ if value == true
109
+ errors << "'gamblingAndContests' could not be mapped to 'contests' - 'contests' requires a value of 'NONE', 'INFREQUENT_OR_MILD', or 'FREQUENT_OR_INTENSE'"
110
+ attributes['contests'] = value
111
+ else
112
+ attributes['contests'] = 'NONE'
113
+ end
114
+
115
+ return attributes, messages, errors
116
+ end
117
+
86
118
  def self.map_key_from_itc(key)
87
119
  key = key.gsub("MZGenre.", "")
88
120
  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)
@@ -39,12 +39,7 @@ module Spaceship
39
39
  # Example:
40
40
  # name: DES5c148586daa451e55afb017aa62418f91
41
41
  # value: HSARMTKNSRVTWFlaF/ek8asaa9lymMA0dN8JQ6pY7B3F5kdqTxJvMT19EVEFX8EQudB/uNwBHOHzaa30KYTU/eCP/UF7vGTgxs6PAnlVWKscWssOVHfP2IKWUPaa4Dn+I6ilA7eAFQsiaaVT
42
- cookies = YAML.safe_load(
43
- itc_cookie_content,
44
- [HTTP::Cookie, Time], # classes allowlist
45
- [], # symbols allowlist
46
- true # allow YAML aliases
47
- )
42
+ cookies = load_cookies(itc_cookie_content)
48
43
 
49
44
  # We remove all the un-needed cookies
50
45
  cookies.select! do |cookie|
@@ -72,6 +67,24 @@ module Spaceship
72
67
  return self
73
68
  end
74
69
 
70
+ def load_cookies(content)
71
+ # When Ruby 2.5 support is dropped, we can safely get rid of the latter branch.
72
+ if YAML.name == 'Psych' && Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1')
73
+ YAML.safe_load(
74
+ content,
75
+ permitted_classes: [HTTP::Cookie, Time],
76
+ aliases: true
77
+ )
78
+ else
79
+ YAML.safe_load(
80
+ content,
81
+ [HTTP::Cookie, Time], # classes allowlist
82
+ [], # symbols allowlist
83
+ true # allow YAML aliases
84
+ )
85
+ end
86
+ end
87
+
75
88
  def session_string
76
89
  FastlaneCore::UI.user_error!("`#{__method__}` method called before calling `run` in `SpaceauthRunner`") unless @yaml
77
90
  @yaml
@@ -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.183.1
4
+ version: 2.185.1
5
5
  platform: ruby
6
6
  authors:
7
- - Satoshi Namai
8
- - Andrew McBurney
9
- - Maksym Grebenets
10
- - Helmut Januschka
11
- - Kohki Miki
12
- - Roger Oba
13
7
  - Jimmy Dee
14
- - Aaron Brager
15
8
  - Jorge Revuelta H
16
- - Jérôme Lacoste
9
+ - Maksym Grebenets
10
+ - Aaron Brager
11
+ - Jan Piotrowski
17
12
  - Joshua Liebowitz
18
- - Max Ott
19
- - Felix Krause
20
- - Stefan Natchev
21
- - Manu Wallner
13
+ - Helmut Januschka
14
+ - Manish Rathi
22
15
  - Fumiya Nakamura
23
- - Danielle Tomlinson
24
- - Luka Mirosevic
25
- - Josh Holtz
26
- - Daniel Jankowski
27
16
  - Olivier Halligon
17
+ - Josh Holtz
18
+ - Felix Krause
28
19
  - Iulian Onofrei
29
- - Jan Piotrowski
30
20
  - Matthew Ellis
21
+ - Manu Wallner
22
+ - Jérôme Lacoste
23
+ - Kohki Miki
24
+ - Roger Oba
25
+ - Stefan Natchev
26
+ - Luka Mirosevic
27
+ - Satoshi Namai
28
+ - Andrew McBurney
29
+ - Max Ott
30
+ - Danielle Tomlinson
31
+ - Daniel Jankowski
31
32
  autorequire:
32
33
  bindir: bin
33
34
  cert_chain: []
34
- date: 2021-05-17 00:00:00.000000000 Z
35
+ date: 2021-06-14 00:00:00.000000000 Z
35
36
  dependencies:
36
37
  - !ruby/object:Gem::Dependency
37
38
  name: xcodeproj
@@ -1813,9 +1814,6 @@ files:
1813
1814
  - spaceship/lib/spaceship/upgrade_2fa_later_client.rb
1814
1815
  - supply/README.md
1815
1816
  - supply/lib/supply.rb
1816
- - supply/lib/supply/.client.rb.swp
1817
- - supply/lib/supply/.listing.rb.swp
1818
- - supply/lib/supply/.uploader.rb.swp
1819
1817
  - supply/lib/supply/apk_listing.rb
1820
1818
  - supply/lib/supply/client.rb
1821
1819
  - supply/lib/supply/commands_generator.rb
Binary file
Binary file
Binary file