fastlane 2.123.0.beta.20190507200014 → 2.123.0.beta.20190508200056

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: 714d78ecd9db9feaf14e5f1f4a1e1eb60ef518aa
4
- data.tar.gz: 247f87bf9ea9ee1a1d36a4cf91a7582520cadd0c
3
+ metadata.gz: 44ba9c053828aa330fdf2b970e8877979f5c6aaa
4
+ data.tar.gz: 3146fe676e7313faace99f3159a772f2f8724e5a
5
5
  SHA512:
6
- metadata.gz: de4fa0b8654b8dcb82c30ed03070e1af68a61dbf323ed4da50f9c7c8f7d186bfb178bd466816a51b90006f61259efee035d205ac8ab6274991e6d541a0d25b61
7
- data.tar.gz: b6fe8945643fe778bfd23a06c300cd5ad6e9a50ef4099deafd2f86a003eef07f94e873872a08c72f057954794408768818cbbb34ab22460244e7fd42eadc605b
6
+ metadata.gz: a2a08a63a529b9d0c56309cc075ea867e1ac3d04ebc039c69b622bdbe93a765e921a563af6b20a5cfd507c560dc7575bcc38f0d971fcaca759ea748d0f68ee91
7
+ data.tar.gz: 60119ef1dc886d456b9f02c7cfefe84999b16436289c524777556df6226c95531fabb53c051ff17b77a86de85eecbf83db03c7277d082dff01ea7451ff943a9b
@@ -225,3 +225,7 @@ _pilot_ uses the [CredentialsManager](https://github.com/fastlane/fastlane/tree/
225
225
 
226
226
  ## Provider Short Name
227
227
  If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. _pilot_ will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the `itc_provider` option.
228
+
229
+ ## Use an Application Specific Password to upload
230
+
231
+ _pilot_/`upload_to_testflight` can use an [Application Specific Password via the `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD` envirionment variable](https://docs.fastlane.tools/best-practices/continuous-integration/#application-specific-passwords) to upload a binary if both the `skip_waiting_for_build_processing` and `apple_id` options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.123.0.beta.20190507200014'.freeze
2
+ VERSION = '2.123.0.beta.20190508200056'.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
@@ -10,7 +10,10 @@ require_relative 'manager'
10
10
  module Pilot
11
11
  class BuildManager < Manager
12
12
  def upload(options)
13
- start(options)
13
+ # Only need to login before upload if no apple_id was given
14
+ # 'login' will be deferred until before waiting for build processing
15
+ should_login_in_start = options[:apple_id].nil?
16
+ start(options, should_login: should_login_in_start)
14
17
 
15
18
  options[:changelog] = self.class.sanitize_changelog(options[:changelog]) if options[:changelog]
16
19
 
@@ -24,18 +27,18 @@ module Pilot
24
27
  end
25
28
  end
26
29
 
27
- UI.success("Ready to upload new build to TestFlight (App: #{app.apple_id})...")
30
+ UI.success("Ready to upload new build to TestFlight (App: #{fetch_apple_id})...")
28
31
 
29
32
  dir = Dir.mktmpdir
30
33
 
31
34
  platform = fetch_app_platform
32
- package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: app.apple_id,
33
- ipa_path: config[:ipa],
35
+ package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: fetch_apple_id,
36
+ ipa_path: options[:ipa],
34
37
  package_path: dir,
35
38
  platform: platform)
36
39
 
37
40
  transporter = transporter_for_selected_team(options)
38
- result = transporter.upload(app.apple_id, package_path)
41
+ result = transporter.upload(fetch_apple_id, package_path)
39
42
 
40
43
  unless result
41
44
  UI.user_error!("Error uploading ipa file, for more information see above")
@@ -49,6 +52,9 @@ module Pilot
49
52
  return
50
53
  end
51
54
 
55
+ # Calling login again here is needed if login was not called during 'start'
56
+ login unless should_login_in_start
57
+
52
58
  UI.message("If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option")
53
59
  latest_build = wait_for_build_processing_to_be_complete
54
60
  distribute(options, build: latest_build)
@@ -58,7 +64,7 @@ module Pilot
58
64
  platform = fetch_app_platform
59
65
  app_version = FastlaneCore::IpaFileAnalyser.fetch_app_version(config[:ipa])
60
66
  app_build = FastlaneCore::IpaFileAnalyser.fetch_app_build(config[:ipa])
61
- latest_build = FastlaneCore::BuildWatcher.wait_for_build_processing_to_be_complete(app_id: app.apple_id, platform: platform, train_version: app_version, build_version: app_build, poll_interval: config[:wait_processing_interval])
67
+ latest_build = FastlaneCore::BuildWatcher.wait_for_build_processing_to_be_complete(app_id: app.apple_id, platform: platform, train_version: app_version, build_version: app_build, poll_interval: config[:wait_processing_interval], strict_build_watch: config[:wait_for_uploaded_build])
62
68
 
63
69
  unless latest_build.train_version == app_version && latest_build.build_version == app_build
64
70
  UI.important("Uploaded app #{app_version} - #{app_build}, but received build #{latest_build.train_version} - #{latest_build.build_version}.")
@@ -220,7 +226,8 @@ module Pilot
220
226
  # If there are fewer than two teams, don't infer the provider.
221
227
  def transporter_for_selected_team(options)
222
228
  generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider])
223
- return generic_transporter unless options[:itc_provider].nil? && Spaceship::Tunes.client.teams.count > 1
229
+ return generic_transporter if options[:itc_provider] || Spaceship::Tunes.client.nil?
230
+ return generic_transporter unless Spaceship::Tunes.client.teams.count > 1
224
231
 
225
232
  begin
226
233
  team = Spaceship::Tunes.client.teams.find { |t| t['contentProvider']['contentProviderId'].to_s == Spaceship::Tunes.client.team_id }
@@ -10,10 +10,10 @@ require_relative 'module'
10
10
 
11
11
  module Pilot
12
12
  class Manager
13
- def start(options)
13
+ def start(options, should_login: true)
14
14
  return if @config # to not login multiple times
15
15
  @config = options
16
- login
16
+ login if should_login
17
17
  end
18
18
 
19
19
  def login
@@ -27,7 +27,7 @@ module Pilot
27
27
 
28
28
  # The app object we're currently using
29
29
  def app
30
- @apple_id ||= fetch_app_id
30
+ @apple_id ||= fetch_apple_id
31
31
 
32
32
  @app ||= Spaceship::Tunes::Application.find(@apple_id)
33
33
  unless @app
@@ -42,19 +42,20 @@ module Pilot
42
42
  # Config Related
43
43
  ################
44
44
 
45
- def fetch_app_id
45
+ def fetch_apple_id
46
+ @apple_id ||= config[:apple_id]
46
47
  return @apple_id if @apple_id
47
48
  config[:app_identifier] = fetch_app_identifier
48
49
 
49
50
  if config[:app_identifier]
50
51
  @app ||= Spaceship::Tunes::Application.find(config[:app_identifier])
51
52
  UI.user_error!("Couldn't find app '#{config[:app_identifier]}' on the account of '#{config[:username]}' on App Store Connect") unless @app
52
- app_id ||= @app.apple_id
53
+ apple_id ||= @app.apple_id
53
54
  end
54
55
 
55
- app_id ||= UI.input("Could not automatically find the app ID, please enter it here (e.g. 956814360): ")
56
+ apple_id ||= UI.input("Could not automatically find the app ID, please enter it here (e.g. 956814360): ")
56
57
 
57
- return app_id
58
+ return apple_id
58
59
  end
59
60
 
60
61
  def fetch_app_identifier
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.123.0.beta.20190507200014
4
+ version: 2.123.0.beta.20190508200056
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Dee
@@ -27,7 +27,7 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-05-07 00:00:00.000000000 Z
30
+ date: 2019-05-08 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -1706,24 +1706,24 @@ metadata:
1706
1706
  post_install_message:
1707
1707
  rdoc_options: []
1708
1708
  require_paths:
1709
- - produce/lib
1710
- - match/lib
1711
1709
  - screengrab/lib
1712
- - credentials_manager/lib
1713
- - gym/lib
1714
- - spaceship/lib
1715
- - pilot/lib
1716
- - fastlane/lib
1717
- - pem/lib
1718
1710
  - deliver/lib
1719
- - cert/lib
1711
+ - supply/lib
1712
+ - pilot/lib
1713
+ - precheck/lib
1714
+ - scan/lib
1715
+ - credentials_manager/lib
1716
+ - frameit/lib
1717
+ - match/lib
1720
1718
  - snapshot/lib
1719
+ - cert/lib
1720
+ - produce/lib
1721
+ - fastlane/lib
1721
1722
  - sigh/lib
1723
+ - pem/lib
1724
+ - gym/lib
1725
+ - spaceship/lib
1722
1726
  - fastlane_core/lib
1723
- - precheck/lib
1724
- - supply/lib
1725
- - frameit/lib
1726
- - scan/lib
1727
1727
  required_ruby_version: !ruby/object:Gem::Requirement
1728
1728
  requirements:
1729
1729
  - - ">="