fastlane 2.59.0.beta.20170921010003 → 2.59.0.beta.20170922010003

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: f43e68a1b7a10b52c03e78971736a6fe79cb4ff0
4
- data.tar.gz: 138a1a8990bf2700b86b44c725918fe177aac06f
3
+ metadata.gz: 8c6b24f4429b6c46f4b45cac2169327c6417ef9e
4
+ data.tar.gz: 295e5c859dbecc23f1b02fee47acf35adb2d05ed
5
5
  SHA512:
6
- metadata.gz: bb7fa83016c5f057808488415ec136f0245eace7444c0d0bcfc920f353f9319c22b162e7ee73ceaa5b967700337ea3ad60835783ccec28418f6c7524f04b033f
7
- data.tar.gz: 3c383475bf9ee360f28618e392d84a49fe65a91ead7919bd147ccfc63be2255d67b8397f90a952ff351ee83e6e0db168b3991c3344a7d7e214ee22930c1cf170
6
+ metadata.gz: 236e050395ef38d37a22d0cfccaeb8b54287e81962aae09c99038d864b0aabfd5d3c069edc108aa9a2906e89a109e0c37fa23e699f953e89ff03c107fbc6b4fa
7
+ data.tar.gz: d8e40f2b77fd979c8b278251c45aecbf61697b6f76a3be81a57e5787c7b83e9e05b756eeda284a659c078d18430b545b7dd3cb89cc814fd66063c77c097dc77a
@@ -64,8 +64,8 @@ module Fastlane
64
64
 
65
65
  if download_url
66
66
  result = self.download download_url
67
- path = write_dsym(result, app.bundle_id, train_number, build_number, output_directory)
68
- UI.success("🔑 Successfully downloaded dSYM file for #{train_number} - #{build_number} to '#{path}'")
67
+ path = write_dsym(result, app.bundle_id, train_number, build.build_version, output_directory)
68
+ UI.success("🔑 Successfully downloaded dSYM file for #{train_number} - #{build.build_version} to '#{path}'")
69
69
 
70
70
  Actions.lane_context[SharedValues::DSYM_PATHS] ||= []
71
71
  Actions.lane_context[SharedValues::DSYM_PATHS] << File.expand_path(path)
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.59.0.beta.20170921010003'.freeze
2
+ VERSION = '2.59.0.beta.20170922010003'.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
  end
@@ -125,6 +125,7 @@ module Gym
125
125
  next unless specified_configuration == build_configuration.name
126
126
 
127
127
  bundle_identifier = build_configuration.resolve_build_setting("PRODUCT_BUNDLE_IDENTIFIER")
128
+ next unless bundle_identifier
128
129
  provisioning_profile_specifier = build_configuration.resolve_build_setting("PROVISIONING_PROFILE_SPECIFIER")
129
130
  provisioning_profile_uuid = build_configuration.resolve_build_setting("PROVISIONING_PROFILE")
130
131
 
@@ -608,6 +608,10 @@ module Spaceship
608
608
  # Check if the failure is due to missing permissions (iTunes Connect)
609
609
  if body["messages"] && body["messages"]["error"].include?("Forbidden")
610
610
  raise_insuffient_permission_error!
611
+ elsif body["messages"] && body["messages"]["error"].include?("insufficient privileges")
612
+ # Passing a specific `caller_location` here to make sure we return the correct method
613
+ # With the default location the error would say that `parse_response` is the caller
614
+ raise_insuffient_permission_error!(caller_location: 3)
611
615
  elsif body.to_s.include?("Internal Server Error - Read")
612
616
  raise InternalServerError, "Received an internal server error from iTunes Connect / Developer Portal, please try again later"
613
617
  elsif (body["resultString"] || "").include?("Program License Agreement")
@@ -616,12 +620,12 @@ module Spaceship
616
620
  end
617
621
 
618
622
  # This also gets called from subclasses
619
- def raise_insuffient_permission_error!(additional_error_string: nil)
623
+ def raise_insuffient_permission_error!(additional_error_string: nil, caller_location: 2)
620
624
  # get the method name of the request that failed
621
625
  # `block in` is used very often for requests when surrounded for paging or retrying blocks
622
626
  # The ! is part of some methods when they modify or delete a resource, so we don't want to show it
623
627
  # Using `sub` instead of `delete` as we don't want to allow multiple matches
624
- calling_method_name = caller_locations(2, 2).first.label.sub("block in", "").delete("!").strip
628
+ calling_method_name = caller_locations(caller_location, 2).first.label.sub("block in", "").delete("!").strip
625
629
  begin
626
630
  team_id = "(Team ID #{self.team_id}) "
627
631
  rescue
@@ -5,6 +5,7 @@ module Spaceship::TestFlight
5
5
  # is test information about the application
6
6
 
7
7
  attr_accessor :test_info
8
+ attr_accessor :beta_review_info
8
9
 
9
10
  def self.find(app_id: nil)
10
11
  raw_app_test_info = client.get_app_test_info(app_id: app_id)
@@ -19,6 +20,14 @@ module Spaceship::TestFlight
19
20
  raw_data.set(['details'], value.raw_data)
20
21
  end
21
22
 
23
+ def beta_review_info
24
+ Spaceship::TestFlight::BetaReviewInfo.new(raw_data['betaReviewInfo'])
25
+ end
26
+
27
+ def beta_review_info=(value)
28
+ raw_data.set(['betaReviewInfo'], value.raw_data)
29
+ end
30
+
22
31
  # saves the changes to the App Test Info object to TestFlight
23
32
  def save_for_app!(app_id: nil)
24
33
  client.put_app_test_info(app_id: app_id, app_test_info: self)
@@ -1,7 +1,7 @@
1
1
  module Spaceship::TestFlight
2
2
  class BetaReviewInfo < Base
3
3
  attr_accessor :contact_first_name, :contact_last_name, :contact_phone, :contact_email
4
- attr_accessor :demo_account_name, :demo_account_password, :demo_account_required
4
+ attr_accessor :demo_account_name, :demo_account_password, :demo_account_required, :notes
5
5
 
6
6
  attr_mapping({
7
7
  'contactFirstName' => :contact_first_name,
@@ -10,7 +10,8 @@ module Spaceship::TestFlight
10
10
  'contactEmail' => :contact_email,
11
11
  'demoAccountName' => :demo_account_name,
12
12
  'demoAccountPassword' => :demo_account_password,
13
- 'demoAccountRequired' => :demo_account_required
13
+ 'demoAccountRequired' => :demo_account_required,
14
+ 'notes' => :notes
14
15
  })
15
16
  end
16
17
  end
@@ -179,6 +179,10 @@ module Spaceship::TestFlight
179
179
  client.post_for_testflight_review(app_id: app_id, build_id: id, build: self)
180
180
  end
181
181
 
182
+ def expire!
183
+ client.expire_build(app_id: app_id, build_id: id, build: self)
184
+ end
185
+
182
186
  def add_group!(group)
183
187
  client.add_group_to_build(app_id: app_id, group_id: group.id, build_id: id)
184
188
  end
@@ -68,6 +68,17 @@ module Spaceship::TestFlight
68
68
  handle_response(response)
69
69
  end
70
70
 
71
+ def expire_build(app_id: nil, build_id: nil, build: nil)
72
+ assert_required_params(__method__, binding)
73
+
74
+ response = request(:post) do |req|
75
+ req.url "providers/#{team_id}/apps/#{app_id}/builds/#{build_id}/expire"
76
+ req.body = build.to_json
77
+ req.headers['Content-Type'] = 'application/json'
78
+ end
79
+ handle_response(response)
80
+ end
81
+
71
82
  ##
72
83
  # @!group Groups API
73
84
  ##
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.59.0.beta.20170921010003
4
+ version: 2.59.0.beta.20170922010003
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-09-21 00:00:00.000000000 Z
18
+ date: 2017-09-22 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier