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

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