fastlane 2.68.1 → 2.68.2

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: 572a013cd15bc30801de30f0fe654ac9f04199f4
4
- data.tar.gz: ffcc2c9e252d116243010af5c523fb400af9be76
3
+ metadata.gz: 8964dde63cba5a4b1698b0bac40dbe8f18c2213e
4
+ data.tar.gz: 623c111554aa9940a85c76fd4216fc91c9786283
5
5
  SHA512:
6
- metadata.gz: e40d6207de613550a4b4a76aefa92e26ff877c631be4ee464f84692a0ed23a8a6bd85640d2119615004a04bf77a1da654260375e9a14d8d1a612f379c888c49b
7
- data.tar.gz: f95e163db65895bf33dd5f01cc5dbc7727f69cc3fd7b1996222c233852f3785a038ef491ec87618bdb48078e4816721b29acdb4e4cde2b2cd614dd9e736aa7fe
6
+ metadata.gz: 65d60acb15635c58d2a1b630cada88efa1cf17c4e90060f628ac394037af364be08417aa28d65f0decb2f75f9715db934cc57fc85b7294799b267a0e16b742d0
7
+ data.tar.gz: f397c43b76d932a8e1d2143cae0f6f24a1cb881d0a46c440235ab7003c2a1d143b741357b0f02587a0274372aa485a5c058a661a8958319dfd8b886bbcaeef50
@@ -195,7 +195,7 @@ module Fastlane
195
195
  versionNumber: "9.1",
196
196
  deviceName: "iPhone 6"
197
197
  },
198
- appium_lib {
198
+ appium_lib: {
199
199
  wait: 10
200
200
  }
201
201
  )'
@@ -61,7 +61,7 @@ module Fastlane
61
61
  lane :beta do |values|
62
62
  # Fabric generated this lane for deployment to Crashlytics Beta
63
63
  # set 'export_method' to 'ad-hoc' if your Crashlytics Beta distribution uses ad-hoc provisioning
64
- gym(scheme: '#{@beta_info.schemes.first}', export_method: '#{@beta_info.export_method}')
64
+ build_app(scheme: '#{@beta_info.schemes.first}', export_method: '#{@beta_info.export_method}')
65
65
 
66
66
  emails = values[:test_email] ? values[:test_email] : #{beta_info_emails} # You can list more emails here
67
67
  groups = values[:test_email] ? nil : #{beta_info_groups} # You can define groups on the web and reference them here
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.68.1'.freeze
2
+ VERSION = '2.68.2'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -135,7 +135,10 @@ module Gym
135
135
  hash = normalize_export_options(Gym.config[:export_options])
136
136
  else
137
137
  # Reads options from file
138
- hash = Plist.parse_xml(Gym.config[:export_options])
138
+ plist_file_path = Gym.config[:export_options]
139
+ UI.user_error!("Couldn't find plist file at path #{File.expand_path(plist_file_path)}") unless File.exist?(plist_file_path)
140
+ hash = Plist.parse_xml(plist_file_path)
141
+ UI.user_error!("Couldn't read provided plist at path #{File.expand_path(plist_file_path)}") if hash.nil?
139
142
  # Convert keys to symbols
140
143
  hash = keys_to_symbols(hash)
141
144
  end
@@ -191,8 +191,8 @@ module Spaceship
191
191
  # Certificate.factory(attrs)
192
192
  # #=> #<PushCertificate ... >
193
193
  #
194
- def factory(attrs)
195
- self.new(attrs)
194
+ def factory(attrs, existing_client = nil)
195
+ self.new(attrs, existing_client)
196
196
  end
197
197
  end
198
198
 
@@ -210,12 +210,12 @@ module Spaceship
210
210
  # attributes that are defined by `attr_mapping`
211
211
  #
212
212
  # Do not override `initialize` in your own models.
213
- def initialize(attrs = {})
213
+ def initialize(attrs = {}, existing_client = nil)
214
214
  attrs.each do |key, val|
215
215
  self.send("#{key}=", val) if respond_to?("#{key}=")
216
216
  end
217
217
  self.raw_data = DataHash.new(attrs)
218
- @client = self.class.client
218
+ @client = existing_client || self.class.client
219
219
  self.setup
220
220
  end
221
221
 
@@ -417,11 +417,32 @@ module Spaceship
417
417
  # This method is used for both the Apple Dev Portal and iTunes Connect
418
418
  # This will also handle 2 step verification
419
419
  def send_shared_login_request(user, password)
420
- # First we see if we have a stored cookie for 2 step enabled accounts
421
- # this is needed as it stores the information on if this computer is a
422
- # trusted one. In general I think spaceship clients should be trusted
423
- load_session_from_file
420
+ # Check if we have a cached/valid session here
421
+ # Fixes
422
+ # - https://github.com/fastlane/fastlane/issues/10812
423
+ # - https://github.com/fastlane/fastlane/issues/10793
424
+ #
425
+ # Before 4th December 2017 we didn't load existing session from the disk
426
+ # but changed it, because Apple introduced a rate limit, which is fine by itself
427
+ # but unfortunately it also rate limits successful logins, meaning if you call multiple
428
+ # tools in a lane (e.g. call match 5 times), this would mean it locks you out of the account
429
+ # for a while.
430
+ # By loading existing sessions and checking if they're valid, we're sending less login requests
431
+ # More context on why this change was necessary https://github.com/fastlane/fastlane/pull/11108
432
+ #
433
+ if load_session_from_file
434
+ # Check if the session is still valid here
435
+ begin
436
+ # We use the olympus session to determine if the old session is still valid
437
+ # As this will raise an exception if the old session has expired
438
+ # If the old session is still valid, we don't have to do anything else in this method
439
+ return true if fetch_olympus_session.count > 0
440
+ rescue
441
+ end
442
+ end
443
+
424
444
  # If this is a CI, the user can pass the session via environment variable
445
+ # This is used for 2FA related sessions
425
446
  load_session_from_env
426
447
 
427
448
  data = {
@@ -109,7 +109,11 @@ module Spaceship
109
109
 
110
110
  def send_login_request(user, password)
111
111
  clear_user_cached_data
112
- send_shared_login_request(user, password)
112
+ result = send_shared_login_request(user, password)
113
+
114
+ store_cookie
115
+
116
+ return result
113
117
  end
114
118
 
115
119
  # Sometimes we get errors or info nested in our data
@@ -753,7 +757,7 @@ module Spaceship
753
757
  # so we cache it
754
758
  # @return [UserDetail] the response
755
759
  def user_detail_data
756
- @_cached_user_detail_data ||= Spaceship::Tunes::UserDetail.factory(user_details_data)
760
+ @_cached_user_detail_data ||= Spaceship::Tunes::UserDetail.factory(user_details_data, self)
757
761
  end
758
762
 
759
763
  #####################################################
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.68.1
4
+ version: 2.68.2
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-12-04 00:00:00.000000000 Z
18
+ date: 2017-12-05 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier