fastlane 2.29.0.beta.20170502010055 → 2.29.0.beta.20170503010035

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 539747f341885d0f76b91a8a9530efb0890768ac
4
- data.tar.gz: 710a6bbfd47cee97b6d21cf63988a068848369ce
3
+ metadata.gz: 5af3635f331af53664a682ac1e0f327148b59255
4
+ data.tar.gz: 4c2519637d6f99b4279568c023afcbcdcf1d1320
5
5
  SHA512:
6
- metadata.gz: 21b72adb90392e473ecc127f83594985256ce9074cc92511c6fa61dcb8dea203d681a7a774bc61c7a6a304b48ca886c8168388237f3e8b74d8cf74be70b558f6
7
- data.tar.gz: bfd74ad36166a8a2683c1730a086345132a39ec56c765e0308a9a1ae60787af4659b4219179439e53b52069a229f8cc91047b3ac0c2eb2ce3aa98bf042b9bc88
6
+ metadata.gz: cba9b945d5edb104026efdbad536bd114c43c41756e3bcd16132fc9be5accbe09fffaebd3d2ecd069400b1687bca9aadbb7156a0f5d6e7df1adee4eac7d1fb5c
7
+ data.tar.gz: e1dcbf6170ab99f30dbef56f0257a165caf265e7713241d257280ad4fb5828deb98481a5558f1bfd0ec0e3bbc5b435d751ae192e635c36c82e44da4ab5f1c0c9
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.29.0.beta.20170502010055'.freeze
2
+ VERSION = '2.29.0.beta.20170503010035'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -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
- # xcode might hang here and retrying fixes the problem, see fastlane#4059
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] = schemes.first if is_workspace
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"
@@ -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 raw hashes representing user reviews for the given store front (and optional versionId)
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
- r = request(:get, "ra/apps/#{app_id}/reviews?platform=#{platform}&storefront=#{storefront}&versionId=#{versionId}")
328
- parse_response(r, 'data')['reviews']
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.20170502010055
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-02 00:00:00.000000000 Z
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
- - match/lib
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
- - credentials_manager/lib
1367
+ - pilot/lib
1368
+ - deliver/lib
1372
1369
  - fastlane/lib
1370
+ - cert/lib
1373
1371
  - frameit/lib
1374
- - scan/lib
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
  - - ">="