fastlane 2.68.1 → 2.68.2

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: 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