fastlane 2.29.0.beta.20170502010055 → 2.29.0.beta.20170503010035
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/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +9 -2
- data/gym/lib/gym/generators/build_command_generator.rb +2 -0
- data/gym/lib/gym/options.rb +5 -0
- data/spaceship/lib/spaceship/tunes/app_ratings.rb +74 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +13 -2
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5af3635f331af53664a682ac1e0f327148b59255
|
4
|
+
data.tar.gz: 4c2519637d6f99b4279568c023afcbcdcf1d1320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cba9b945d5edb104026efdbad536bd114c43c41756e3bcd16132fc9be5accbe09fffaebd3d2ecd069400b1687bca9aadbb7156a0f5d6e7df1adee4eac7d1fb5c
|
7
|
+
data.tar.gz: e1dcbf6170ab99f30dbef56f0257a165caf265e7713241d257280ad4fb5828deb98481a5558f1bfd0ec0e3bbc5b435d751ae192e635c36c82e44da4ab5f1c0c9
|
@@ -296,9 +296,16 @@ module FastlaneCore
|
|
296
296
|
# @param [String] The key of which we want the value for (e.g. "PRODUCT_NAME")
|
297
297
|
def build_settings(key: nil, optional: true)
|
298
298
|
unless @build_settings
|
299
|
+
if is_workspace
|
300
|
+
if schemes.count == 0
|
301
|
+
UI.user_error!("Could not find any schemes for Xcode workspace at path '#{self.path}'. Please make sure that the schemes you want to use are marked as `Shared` from Xcode.")
|
302
|
+
end
|
303
|
+
options[:scheme] ||= schemes.first
|
304
|
+
end
|
305
|
+
|
299
306
|
command = build_xcodebuild_showbuildsettings_command
|
300
307
|
|
301
|
-
#
|
308
|
+
# Xcode might hang here and retrying fixes the problem, see fastlane#4059
|
302
309
|
begin
|
303
310
|
timeout = FastlaneCore::Project.xcode_build_settings_timeout
|
304
311
|
retries = FastlaneCore::Project.xcode_build_settings_retries
|
@@ -332,7 +339,7 @@ module FastlaneCore
|
|
332
339
|
|
333
340
|
# Returns the build settings and sets the default scheme to the options hash
|
334
341
|
def default_build_settings(key: nil, optional: true)
|
335
|
-
options[:scheme]
|
342
|
+
options[:scheme] ||= schemes.first if is_workspace
|
336
343
|
build_settings(key: key, optional: optional)
|
337
344
|
end
|
338
345
|
|
@@ -41,6 +41,7 @@ module Gym
|
|
41
41
|
options << "-derivedDataPath '#{config[:derived_data_path]}'" if config[:derived_data_path]
|
42
42
|
options << "-resultBundlePath '#{result_bundle_path}'" if config[:result_bundle]
|
43
43
|
options << config[:xcargs] if config[:xcargs]
|
44
|
+
options << "OTHER_SWIFT_FLAGS=\"\$(inherited) -Xfrontend -debug-time-function-bodies\"" if config[:analyze_build_time]
|
44
45
|
|
45
46
|
options
|
46
47
|
end
|
@@ -64,6 +65,7 @@ module Gym
|
|
64
65
|
def pipe
|
65
66
|
pipe = []
|
66
67
|
pipe << "| tee #{xcodebuild_log_path.shellescape}"
|
68
|
+
pipe << "| grep .[0-9]ms | grep -v ^0.[0-9]ms | sort -nr > culprits.txt" if Gym.config[:analyze_build_time]
|
67
69
|
unless Gym.config[:disable_xcpretty]
|
68
70
|
formatter = Gym.config[:xcpretty_formatter]
|
69
71
|
pipe << "| xcpretty"
|
data/gym/lib/gym/options.rb
CHANGED
@@ -277,6 +277,11 @@ module Gym
|
|
277
277
|
verify_block: proc do |value|
|
278
278
|
UI.user_error!("Report output location not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
279
279
|
end),
|
280
|
+
FastlaneCore::ConfigItem.new(key: :analyze_build_time,
|
281
|
+
env_name: "GYM_ANALYZE_BUILD_TIME",
|
282
|
+
description: "Analyze the project build time and store the output in culprits.txt file",
|
283
|
+
optional: true,
|
284
|
+
is_string: false),
|
280
285
|
FastlaneCore::ConfigItem.new(key: :xcpretty_utf,
|
281
286
|
env_name: "XCPRETTY_UTF",
|
282
287
|
description: "Have xcpretty use unicode encoding when reporting builds",
|
@@ -47,9 +47,81 @@ module Spaceship
|
|
47
47
|
instance_variable_set(:@store_fronts, unfolded_store_fronts)
|
48
48
|
end
|
49
49
|
|
50
|
-
# @return (Array) of
|
50
|
+
# @return (Array) of Review Objects
|
51
51
|
def reviews(store_front, versionId = '')
|
52
|
-
client.get_reviews(application.apple_id, application.platform, store_front, versionId)
|
52
|
+
raw_reviews = client.get_reviews(application.apple_id, application.platform, store_front, versionId)
|
53
|
+
raw_reviews.map do |review|
|
54
|
+
review["value"]["application"] = self.application
|
55
|
+
AppReview.factory(review["value"])
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
class DeveloperResponse < TunesBase
|
61
|
+
attr_reader :id
|
62
|
+
attr_reader :response
|
63
|
+
attr_reader :last_modified
|
64
|
+
attr_reader :hidden
|
65
|
+
attr_reader :state
|
66
|
+
attr_accessor :application
|
67
|
+
attr_accessor :review_id
|
68
|
+
|
69
|
+
attr_mapping({
|
70
|
+
'responseId' => :id,
|
71
|
+
'response' => :response,
|
72
|
+
'lastModified' => :last_modified,
|
73
|
+
'isHidden' => :hidden,
|
74
|
+
'pendingState' => :state
|
75
|
+
})
|
76
|
+
end
|
77
|
+
|
78
|
+
class AppReview < TunesBase
|
79
|
+
attr_accessor :application
|
80
|
+
attr_reader :rating
|
81
|
+
attr_reader :id
|
82
|
+
attr_reader :title
|
83
|
+
attr_reader :review
|
84
|
+
attr_reader :nickname
|
85
|
+
attr_reader :store_front
|
86
|
+
attr_reader :app_version
|
87
|
+
attr_reader :last_modified
|
88
|
+
attr_reader :helpful_views
|
89
|
+
attr_reader :total_views
|
90
|
+
attr_reader :edited
|
91
|
+
attr_reader :raw_developer_response
|
92
|
+
attr_accessor :developer_response
|
93
|
+
|
94
|
+
attr_mapping({
|
95
|
+
'id' => :id,
|
96
|
+
'rating' => :rating,
|
97
|
+
'title' => :title,
|
98
|
+
'review' => :review,
|
99
|
+
'nickname' => :nickname,
|
100
|
+
'storeFront' => :store_front,
|
101
|
+
'appVersionString' => :app_version,
|
102
|
+
'lastModified' => :last_modified,
|
103
|
+
'helpfulViews' => :helpful_views,
|
104
|
+
'totalViews' => :total_views,
|
105
|
+
'developerResponse' => :raw_developer_response,
|
106
|
+
'edited' => :edited
|
107
|
+
})
|
108
|
+
class << self
|
109
|
+
# Create a new object based on a hash.
|
110
|
+
# This is used to create a new object based on the server response.
|
111
|
+
def factory(attrs)
|
112
|
+
obj = self.new(attrs)
|
113
|
+
response_attrs = {}
|
114
|
+
response_attrs = obj.raw_developer_response if obj.raw_developer_response
|
115
|
+
response_attrs[:application] = obj.application
|
116
|
+
response_attrs[:review_id] = obj.id
|
117
|
+
obj.developer_response = DeveloperResponse.factory(response_attrs)
|
118
|
+
return obj
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def responded?
|
123
|
+
return true if raw_developer_response
|
124
|
+
false
|
53
125
|
end
|
54
126
|
end
|
55
127
|
|
@@ -324,8 +324,19 @@ module Spaceship
|
|
324
324
|
end
|
325
325
|
|
326
326
|
def get_reviews(app_id, platform, storefront, versionId = '')
|
327
|
-
|
328
|
-
|
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
|
329
340
|
end
|
330
341
|
|
331
342
|
#####################################################
|
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.29.0.beta.
|
4
|
+
version: 2.29.0.beta.20170503010035
|
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-
|
18
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: slack-notifier
|
@@ -1356,23 +1356,23 @@ metadata:
|
|
1356
1356
|
post_install_message:
|
1357
1357
|
rdoc_options: []
|
1358
1358
|
require_paths:
|
1359
|
-
- deliver/lib
|
1360
|
-
- cert/lib
|
1361
|
-
- produce/lib
|
1362
1359
|
- snapshot/lib
|
1363
|
-
-
|
1364
|
-
- pilot/lib
|
1365
|
-
- fastlane_core/lib
|
1366
|
-
- supply/lib
|
1360
|
+
- produce/lib
|
1367
1361
|
- gym/lib
|
1362
|
+
- fastlane_core/lib
|
1363
|
+
- scan/lib
|
1364
|
+
- match/lib
|
1368
1365
|
- spaceship/lib
|
1369
|
-
- screengrab/lib
|
1370
1366
|
- sigh/lib
|
1371
|
-
-
|
1367
|
+
- pilot/lib
|
1368
|
+
- deliver/lib
|
1372
1369
|
- fastlane/lib
|
1370
|
+
- cert/lib
|
1373
1371
|
- frameit/lib
|
1374
|
-
-
|
1372
|
+
- supply/lib
|
1373
|
+
- credentials_manager/lib
|
1375
1374
|
- pem/lib
|
1375
|
+
- screengrab/lib
|
1376
1376
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1377
1377
|
requirements:
|
1378
1378
|
- - ">="
|