fastlane 2.28.9 → 2.29.0.beta.20170421010107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|