fastlane 2.28.9 → 2.29.0.beta.20170421010107

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/deliver/lib/assets/summary.html.erb +0 -3
  4. data/deliver/lib/deliver/options.rb +2 -2
  5. data/deliver/lib/deliver/upload_metadata.rb +1 -2
  6. data/fastlane/README.md +2 -6
  7. data/fastlane/lib/fastlane/actions/artifactory.rb +1 -17
  8. data/fastlane/lib/fastlane/actions/crashlytics.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -17
  11. data/fastlane/lib/fastlane/actions/hockey.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +3 -3
  13. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +10 -16
  14. data/fastlane/lib/fastlane/version.rb +1 -1
  15. data/fastlane_core/lib/fastlane_core/build_watcher.rb +21 -39
  16. data/fastlane_core/lib/fastlane_core/helper.rb +5 -7
  17. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -4
  18. data/fastlane_core/lib/fastlane_core/print_table.rb +9 -4
  19. data/fastlane_core/lib/fastlane_core/project.rb +4 -16
  20. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +7 -11
  21. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +2 -2
  22. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +0 -2
  23. data/fastlane_core/lib/fastlane_core/ui/ui.rb +2 -0
  24. data/gym/lib/gym/generators/build_command_generator.rb +0 -2
  25. data/gym/lib/gym/options.rb +0 -10
  26. data/gym/lib/gym/runner.rb +0 -2
  27. data/gym/lib/gym/xcode.rb +3 -1
  28. data/pilot/lib/pilot/build_manager.rb +17 -44
  29. data/pilot/lib/pilot/commands_generator.rb +1 -2
  30. data/pilot/lib/pilot/options.rb +2 -3
  31. data/pilot/lib/pilot/tester_manager.rb +44 -58
  32. data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
  33. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  34. data/spaceship/lib/spaceship/test_flight.rb +0 -2
  35. data/spaceship/lib/spaceship/test_flight/base.rb +0 -12
  36. data/spaceship/lib/spaceship/test_flight/build.rb +8 -22
  37. data/spaceship/lib/spaceship/test_flight/client.rb +40 -121
  38. data/spaceship/lib/spaceship/test_flight/group.rb +7 -49
  39. data/spaceship/lib/spaceship/test_flight/test_info.rb +0 -4
  40. data/spaceship/lib/spaceship/tunes/app_ratings.rb +2 -74
  41. data/spaceship/lib/spaceship/tunes/app_status.rb +2 -4
  42. data/spaceship/lib/spaceship/tunes/application.rb +1 -1
  43. data/spaceship/lib/spaceship/tunes/iap_detail.rb +11 -48
  44. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +5 -24
  45. data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -14
  46. data/supply/lib/supply/setup.rb +2 -2
  47. metadata +16 -33
  48. data/spaceship/lib/spaceship/test_flight/app_test_info.rb +0 -27
  49. data/spaceship/lib/spaceship/test_flight/tester.rb +0 -34
@@ -70,43 +70,6 @@ module Spaceship
70
70
  return parsed_versions
71
71
  end
72
72
 
73
- # transforms user-set versions to iTC ones
74
- def versions=(value = {})
75
- if value.kind_of?(Array)
76
- # input that comes from iTC api
77
- return
78
- end
79
- new_versions = []
80
- value.each do |language, current_version|
81
- new_versions << {
82
- "value" => {
83
- "name" => { "value" => current_version[:name] },
84
- "description" => { "value" => current_version[:description] },
85
- "localeCode" => language.to_s
86
- }
87
- }
88
- end
89
-
90
- raw_data.set(["versions"], [{ reviewNotes: { value: @review_notes }, contentHosting: raw_data['versions'].first['contentHosting'], "details" => { "value" => new_versions }, "id" => raw_data["versions"].first["id"] }])
91
- end
92
-
93
- # transforms user-set intervals to iTC ones
94
- def pricing_intervals=(value = [])
95
- new_intervals = []
96
- value.each do |current_interval|
97
- new_intervals << {
98
- "value" => {
99
- "tierStem" => current_interval[:tier],
100
- "priceTierEndDate" => current_interval[:end_date],
101
- "priceTierEffectiveDate" => current_interval[:begin_date],
102
- "grandfathered" => current_interval[:grandfathered],
103
- "country" => current_interval[:country]
104
- }
105
- }
106
- end
107
- raw_data.set(["pricingIntervals"], new_intervals)
108
- end
109
-
110
73
  # @return (Array) pricing intervals
111
74
  # @example:
112
75
  # [
@@ -147,26 +110,26 @@ module Spaceship
147
110
  versions_array = []
148
111
  versions.each do |language, value|
149
112
  versions_array << {
150
- "value" => {
151
- "description" => { "value" => value[:description] },
152
- "name" => { "value" => value[:name] },
153
- "localeCode" => language.to_s
113
+ value: {
114
+ description: { value: value[:description] },
115
+ name: { value: value[:name] },
116
+ localeCode: language.to_s
154
117
  }
155
118
  }
156
119
  end
157
120
 
158
- raw_data.set(["versions"], [{ reviewNotes: { value: @review_notes }, contentHosting: raw_data['versions'].first[:contentHosting], "details" => { "value" => versions_array }, id: raw_data["versions"].first["id"] }])
121
+ raw_data.set(["versions"], [{ reviewNotes: @review_notes, details: { value: versions_array } }])
159
122
 
160
123
  # transform pricingDetails
161
124
  intervals_array = []
162
125
  pricing_intervals.each do |interval|
163
126
  intervals_array << {
164
- "value" => {
165
- "tierStem" => interval[:tier],
166
- "priceTierEffectiveDate" => interval[:begin_date],
167
- "priceTierEndDate" => interval[:end_date],
168
- "country" => interval[:country] || "WW",
169
- "grandfathered" => interval[:grandfathered]
127
+ value: {
128
+ tierStem: interval[:tier],
129
+ priceTierEffectiveDate: interval[:begin_date],
130
+ priceTierEndDate: interval[:end_date],
131
+ country: interval[:country] || "WW",
132
+ grandfathered: interval[:grandfathered]
170
133
  }
171
134
  }
172
135
  end
@@ -22,25 +22,6 @@ module Spaceship
22
22
  end
23
23
  end
24
24
 
25
- def versions=(value = {})
26
- if value.kind_of?(Array)
27
- # input that comes from iTC api
28
- return
29
- end
30
- new_versions = []
31
- value.each do |language, current_version|
32
- new_versions << {
33
- "value" => {
34
- "subscriptionName" => { "value" => current_version[:subscription_name] },
35
- "name" => { "value" => current_version[:name] },
36
- "localeCode" => { "value" => language }
37
- }
38
- }
39
- end
40
-
41
- raw_data.set(["details"], { "value" => new_versions })
42
- end
43
-
44
25
  # @return (Hash) localized names
45
26
  def versions
46
27
  parsed_versions = {}
@@ -61,15 +42,15 @@ module Spaceship
61
42
  versions_array = []
62
43
  versions.each do |language_code, value|
63
44
  versions_array << {
64
- "value" => {
65
- "subscriptionName" => { "value" => value[:subscription_name] },
66
- "name" => { "value" => value[:name] },
67
- "localeCode" => { "value" => language_code.to_s }
45
+ value: {
46
+ subscriptionName: { value: value[:subscription_name] },
47
+ name: { value: value[:name] },
48
+ localeCode: { value: language_code.to_s }
68
49
  }
69
50
  }
70
51
  end
71
52
 
72
- raw_data.set(["details"], { "value" => versions_array })
53
+ raw_data.set(["details"], { value: versions_array })
73
54
 
74
55
  client.update_iap_family!(app_id: application.apple_id, family_id: self.family_id, data: raw_data)
75
56
  end
@@ -265,7 +265,7 @@ module Spaceship
265
265
  # @param bundle_id (String): The bundle ID must match the one you used in Xcode. It
266
266
  # can't be changed after you submit your first build.
267
267
  def create_application!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil)
268
- puts "The `version` parameter is deprecated. Use `Spaceship::Tunes::Application.ensure_version!` method instead" if version
268
+ UI.deprecated("The `version` parameter is deprecated. Use `Spaceship::Tunes::Application.ensure_version!` method instead") if version
269
269
 
270
270
  # First, we need to fetch the data from Apple, which we then modify with the user's values
271
271
  primary_language ||= "English"
@@ -324,19 +324,8 @@ module Spaceship
324
324
  end
325
325
 
326
326
  def get_reviews(app_id, platform, storefront, versionId = '')
327
- index = 0
328
- per_page = 100 # apple default
329
- all_reviews = []
330
- loop do
331
- r = request(:get, "ra/apps/#{app_id}/platforms/#{platform}/reviews?storefront=#{storefront}&versionId=#{versionId}&index=#{index}")
332
- all_reviews.concat(parse_response(r, 'data')['reviews'])
333
- if all_reviews.count < parse_response(r, 'data')['reviewCount']
334
- index += per_page
335
- else
336
- break
337
- end
338
- end
339
- all_reviews
327
+ r = request(:get, "ra/apps/#{app_id}/reviews?platform=#{platform}&storefront=#{storefront}&versionId=#{versionId}")
328
+ parse_response(r, 'data')['reviews']
340
329
  end
341
330
 
342
331
  #####################################################
@@ -44,7 +44,7 @@ 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
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphics. Please copy your feature graphics into `metadata/android/en-US/images/`")
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
 
@@ -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
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/en-US/images/`")
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.28.9
4
+ version: 2.29.0.beta.20170421010107
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-05-05 00:00:00.000000000 Z
18
+ date: 2017-04-21 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -743,20 +743,6 @@ dependencies:
743
743
  - - "~>"
744
744
  - !ruby/object:Gem::Version
745
745
  version: 0.8.1
746
- - !ruby/object:Gem::Dependency
747
- name: sinatra
748
- requirement: !ruby/object:Gem::Requirement
749
- requirements:
750
- - - "~>"
751
- - !ruby/object:Gem::Version
752
- version: 1.4.8
753
- type: :development
754
- prerelease: false
755
- version_requirements: !ruby/object:Gem::Requirement
756
- requirements:
757
- - - "~>"
758
- - !ruby/object:Gem::Version
759
- version: 1.4.8
760
746
  description: The easiest way to automate beta deployments and releases for your iOS
761
747
  and Android apps
762
748
  email:
@@ -1285,7 +1271,6 @@ files:
1285
1271
  - spaceship/lib/spaceship/portal/website_push.rb
1286
1272
  - spaceship/lib/spaceship/spaceauth_runner.rb
1287
1273
  - spaceship/lib/spaceship/test_flight.rb
1288
- - spaceship/lib/spaceship/test_flight/app_test_info.rb
1289
1274
  - spaceship/lib/spaceship/test_flight/base.rb
1290
1275
  - spaceship/lib/spaceship/test_flight/beta_review_info.rb
1291
1276
  - spaceship/lib/spaceship/test_flight/build.rb
@@ -1294,7 +1279,6 @@ files:
1294
1279
  - spaceship/lib/spaceship/test_flight/export_compliance.rb
1295
1280
  - spaceship/lib/spaceship/test_flight/group.rb
1296
1281
  - spaceship/lib/spaceship/test_flight/test_info.rb
1297
- - spaceship/lib/spaceship/test_flight/tester.rb
1298
1282
  - spaceship/lib/spaceship/tunes/app_details.rb
1299
1283
  - spaceship/lib/spaceship/tunes/app_image.rb
1300
1284
  - spaceship/lib/spaceship/tunes/app_ratings.rb
@@ -1357,23 +1341,23 @@ metadata:
1357
1341
  post_install_message:
1358
1342
  rdoc_options: []
1359
1343
  require_paths:
1360
- - cert/lib
1361
- - credentials_manager/lib
1344
+ - frameit/lib
1362
1345
  - deliver/lib
1363
- - fastlane/lib
1346
+ - supply/lib
1347
+ - cert/lib
1348
+ - screengrab/lib
1364
1349
  - fastlane_core/lib
1365
- - frameit/lib
1366
- - gym/lib
1367
1350
  - match/lib
1368
- - pem/lib
1369
- - pilot/lib
1370
- - produce/lib
1351
+ - snapshot/lib
1352
+ - gym/lib
1353
+ - credentials_manager/lib
1371
1354
  - scan/lib
1372
- - screengrab/lib
1355
+ - produce/lib
1373
1356
  - sigh/lib
1374
- - snapshot/lib
1357
+ - fastlane/lib
1375
1358
  - spaceship/lib
1376
- - supply/lib
1359
+ - pem/lib
1360
+ - pilot/lib
1377
1361
  required_ruby_version: !ruby/object:Gem::Requirement
1378
1362
  requirements:
1379
1363
  - - ">="
@@ -1381,15 +1365,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1381
1365
  version: 2.0.0
1382
1366
  required_rubygems_version: !ruby/object:Gem::Requirement
1383
1367
  requirements:
1384
- - - ">="
1368
+ - - ">"
1385
1369
  - !ruby/object:Gem::Version
1386
- version: '0'
1370
+ version: 1.3.1
1387
1371
  requirements: []
1388
1372
  rubyforge_project:
1389
- rubygems_version: 2.5.2
1373
+ rubygems_version: 2.4.5.2
1390
1374
  signing_key:
1391
1375
  specification_version: 4
1392
1376
  summary: The easiest way to automate beta deployments and releases for your iOS and
1393
1377
  Android apps
1394
1378
  test_files: []
1395
- has_rdoc:
@@ -1,27 +0,0 @@
1
- module Spaceship::TestFlight
2
- class AppTestInfo < Base
3
- # AppTestInfo wraps a test_info and beta_review_info in the format required to manage test_info
4
- # for an application. Note that this structure, although looking similar to build test_info
5
- # is test information about the application
6
-
7
- attr_accessor :test_info
8
-
9
- def self.find(app_id: nil)
10
- raw_app_test_info = client.get_app_test_info(app_id: app_id)
11
- self.new(raw_app_test_info)
12
- end
13
-
14
- def test_info
15
- Spaceship::TestFlight::TestInfo.new(raw_data['details'])
16
- end
17
-
18
- def test_info=(value)
19
- raw_data.set(['details'], value.raw_data)
20
- end
21
-
22
- # saves the changes to the App Test Info object to TestFlight
23
- def save_for_app!(app_id: nil)
24
- client.put_app_test_info(app_id: app_id, app_test_info: self)
25
- end
26
- end
27
- end
@@ -1,34 +0,0 @@
1
- module Spaceship::TestFlight
2
- class Tester < Base
3
- # @return (String) The identifier of this tester, provided by iTunes Connect
4
- # @example
5
- # "60f858b4-60a8-428a-963a-f943a3d68d17"
6
- attr_accessor :tester_id
7
-
8
- # @return (String) The email of this tester
9
- # @example
10
- # "tester@spaceship.com"
11
- attr_accessor :email
12
-
13
- attr_mapping(
14
- 'id' => :tester_id,
15
- 'email' => :email
16
- )
17
-
18
- # @return (Array) Returns all beta testers available for this account
19
- def self.all(app_id: nil)
20
- client.testers_for_app(app_id: app_id).map { |data| self.new(data) }
21
- end
22
-
23
- # @return (Spaceship::TestFlight::Tester) Returns the tester matching the parameter
24
- # as either the Tester id or email
25
- # @param email (String) (required): Value used to filter the tester, case insensitive
26
- def self.find(app_id: nil, email: nil)
27
- self.all(app_id: app_id).find { |tester| tester.email == email }
28
- end
29
-
30
- def remove_from_app!(app_id: nil)
31
- client.delete_tester_from_app(app_id: app_id, tester_id: self.tester_id)
32
- end
33
- end
34
- end