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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/deliver/lib/assets/summary.html.erb +0 -3
- data/deliver/lib/deliver/options.rb +2 -2
- data/deliver/lib/deliver/upload_metadata.rb +1 -2
- data/fastlane/README.md +2 -6
- data/fastlane/lib/fastlane/actions/artifactory.rb +1 -17
- data/fastlane/lib/fastlane/actions/crashlytics.rb +1 -1
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -17
- data/fastlane/lib/fastlane/actions/hockey.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +10 -16
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +21 -39
- data/fastlane_core/lib/fastlane_core/helper.rb +5 -7
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -4
- data/fastlane_core/lib/fastlane_core/print_table.rb +9 -4
- data/fastlane_core/lib/fastlane_core/project.rb +4 -16
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +7 -11
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +2 -2
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +0 -2
- data/fastlane_core/lib/fastlane_core/ui/ui.rb +2 -0
- data/gym/lib/gym/generators/build_command_generator.rb +0 -2
- data/gym/lib/gym/options.rb +0 -10
- data/gym/lib/gym/runner.rb +0 -2
- data/gym/lib/gym/xcode.rb +3 -1
- data/pilot/lib/pilot/build_manager.rb +17 -44
- data/pilot/lib/pilot/commands_generator.rb +1 -2
- data/pilot/lib/pilot/options.rb +2 -3
- data/pilot/lib/pilot/tester_manager.rb +44 -58
- data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
- data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
- data/spaceship/lib/spaceship/test_flight.rb +0 -2
- data/spaceship/lib/spaceship/test_flight/base.rb +0 -12
- data/spaceship/lib/spaceship/test_flight/build.rb +8 -22
- data/spaceship/lib/spaceship/test_flight/client.rb +40 -121
- data/spaceship/lib/spaceship/test_flight/group.rb +7 -49
- data/spaceship/lib/spaceship/test_flight/test_info.rb +0 -4
- data/spaceship/lib/spaceship/tunes/app_ratings.rb +2 -74
- data/spaceship/lib/spaceship/tunes/app_status.rb +2 -4
- data/spaceship/lib/spaceship/tunes/application.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +11 -48
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +5 -24
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -14
- data/supply/lib/supply/setup.rb +2 -2
- metadata +16 -33
- data/spaceship/lib/spaceship/test_flight/app_test_info.rb +0 -27
- 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
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
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:
|
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
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
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
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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"], {
|
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
|
-
|
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
|
-
|
328
|
-
|
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
|
#####################################################
|
data/supply/lib/supply/setup.rb
CHANGED
@@ -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
|
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
|
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.
|
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-
|
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
|
-
-
|
1361
|
-
- credentials_manager/lib
|
1344
|
+
- frameit/lib
|
1362
1345
|
- deliver/lib
|
1363
|
-
-
|
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
|
-
-
|
1369
|
-
-
|
1370
|
-
-
|
1351
|
+
- snapshot/lib
|
1352
|
+
- gym/lib
|
1353
|
+
- credentials_manager/lib
|
1371
1354
|
- scan/lib
|
1372
|
-
-
|
1355
|
+
- produce/lib
|
1373
1356
|
- sigh/lib
|
1374
|
-
-
|
1357
|
+
- fastlane/lib
|
1375
1358
|
- spaceship/lib
|
1376
|
-
-
|
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:
|
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
|