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 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
  - - ">="