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

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