fastlane 2.22.0.beta.20170321010023 → 2.22.0
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 +4 -4
- data/fastlane/lib/fastlane/commands_generator.rb +4 -2
- data/fastlane/lib/fastlane/setup/setup.rb +2 -2
- data/fastlane/lib/fastlane/setup/setup_ios.rb +11 -3
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +3 -1
- data/spaceship/lib/spaceship/client.rb +16 -4
- data/spaceship/lib/spaceship/portal/app.rb +1 -0
- metadata +16 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc85c3d22a331b29160c003ee7b6eebd036602f6
|
4
|
+
data.tar.gz: 16c1810bd73be99209335cc62e74d07e44be16c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80ebbeb5b7f3f160a095e04b91417cfd8d1d6dd5418c6b1af396c91bdfff26a632e3bf860a54dc892ac05d1ad5a92f36221f4b55b3c118364cee1fec2883655a
|
7
|
+
data.tar.gz: 83d5ef7998fb3cbc6bcc6321f8a9ffb57f83cc989ceae2d73a664c2515607ec2852d8fca585e2dc221b7e6d2995fbc2a679640dd2eb5e7d53ce22fc0e777848e
|
@@ -111,6 +111,8 @@ module Fastlane
|
|
111
111
|
c.syntax = 'fastlane init'
|
112
112
|
c.description = 'Helps you with your initial fastlane setup'
|
113
113
|
|
114
|
+
c.option '-u STRING', '--user STRING', String, 'iOS projects only: Your Apple ID'
|
115
|
+
|
114
116
|
CrashlyticsBetaCommandLineHandler.apply_options(c)
|
115
117
|
|
116
118
|
c.action do |args, options|
|
@@ -118,7 +120,7 @@ module Fastlane
|
|
118
120
|
beta_info = CrashlyticsBetaCommandLineHandler.info_from_options(options)
|
119
121
|
Fastlane::CrashlyticsBeta.new(beta_info, Fastlane::CrashlyticsBetaUi.new).run
|
120
122
|
else
|
121
|
-
Fastlane::Setup.new.run
|
123
|
+
Fastlane::Setup.new.run(user: options.user)
|
122
124
|
end
|
123
125
|
end
|
124
126
|
end
|
@@ -309,7 +311,7 @@ module Fastlane
|
|
309
311
|
def ensure_fastfile
|
310
312
|
return true if FastlaneCore::FastlaneFolder.setup?
|
311
313
|
|
312
|
-
create = UI.confirm('Could not find fastlane in current directory. Would you like to set
|
314
|
+
create = UI.confirm('Could not find fastlane in current directory. Make sure to have your fastlane configuration files inside a folder called "fastlane". Would you like to set fastlane up?')
|
313
315
|
Fastlane::Setup.new.run if create
|
314
316
|
return false
|
315
317
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Fastlane
|
2
2
|
class Setup
|
3
3
|
# Start the setup process
|
4
|
-
def run
|
4
|
+
def run(user: nil)
|
5
5
|
if FastlaneCore::FastlaneFolder.setup? and !Helper.is_test?
|
6
6
|
UI.important("fastlane is already set up at path #{FastlaneCore::FastlaneFolder.path}")
|
7
7
|
return
|
@@ -21,7 +21,7 @@ module Fastlane
|
|
21
21
|
end
|
22
22
|
|
23
23
|
if platform == :ios
|
24
|
-
SetupIos.new.run
|
24
|
+
SetupIos.new.run(user: user)
|
25
25
|
elsif platform == :android
|
26
26
|
SetupAndroid.new.run
|
27
27
|
else
|
@@ -14,7 +14,8 @@ module Fastlane
|
|
14
14
|
attr_accessor :app_identifier
|
15
15
|
attr_accessor :app_name
|
16
16
|
|
17
|
-
def run
|
17
|
+
def run(user: nil)
|
18
|
+
self.apple_id = user
|
18
19
|
show_infos
|
19
20
|
|
20
21
|
FastlaneCore::FastlaneFolder.create_folder! unless Helper.is_test?
|
@@ -36,7 +37,15 @@ module Fastlane
|
|
36
37
|
manual_setup
|
37
38
|
end
|
38
39
|
UI.success('Successfully finished setting up fastlane')
|
40
|
+
rescue Spaceship::Client::InsufficientPermissions, Spaceship::Client::ProgramLicenseAgreementUpdated => ex
|
41
|
+
# We don't want to fallback to manual onboarding for this
|
42
|
+
# as the user needs to first accept the agreement / get more permissions
|
43
|
+
# Let's re-raise the exception to properly show the error message
|
44
|
+
raise ex
|
39
45
|
rescue => ex # this will also be caused by Ctrl + C
|
46
|
+
UI.message("Ran into error while trying to connect to iTunes Connect / Dev Portal: #{ex}")
|
47
|
+
UI.message("Falling back to manual onboarding")
|
48
|
+
|
40
49
|
if is_manual_setup
|
41
50
|
handle_exception(exception: ex)
|
42
51
|
else
|
@@ -45,7 +54,6 @@ module Fastlane
|
|
45
54
|
try_manual_setup
|
46
55
|
end
|
47
56
|
end
|
48
|
-
# rubocop:enable Lint/RescueException
|
49
57
|
end
|
50
58
|
|
51
59
|
def handle_exception(exception: nil)
|
@@ -178,7 +186,7 @@ module Fastlane
|
|
178
186
|
def detect_if_app_is_available
|
179
187
|
require 'spaceship'
|
180
188
|
|
181
|
-
UI.important "Verifying
|
189
|
+
UI.important "Verifying that app is available on the Apple Developer Portal and iTunes Connect..."
|
182
190
|
UI.message "Starting login with user '#{self.apple_id}'"
|
183
191
|
Spaceship.login(self.apple_id, nil)
|
184
192
|
self.dev_portal_team = Spaceship.select_team
|
@@ -13,7 +13,9 @@ module FastlaneCore
|
|
13
13
|
|
14
14
|
# Path to the Fastfile inside the fastlane folder. This is nil when none is available
|
15
15
|
def self.fastfile_path
|
16
|
-
|
16
|
+
return nil if self.path.nil?
|
17
|
+
|
18
|
+
path = File.join(self.path, 'Fastfile')
|
17
19
|
return path if File.exist?(path)
|
18
20
|
return nil
|
19
21
|
end
|
@@ -51,6 +51,12 @@ module Spaceship
|
|
51
51
|
# Raised when no user credentials were passed at all
|
52
52
|
class NoUserCredentialsError < BasicPreferredInfoError; end
|
53
53
|
|
54
|
+
class ProgramLicenseAgreementUpdated < BasicPreferredInfoError
|
55
|
+
def show_github_issues
|
56
|
+
false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
54
60
|
# User doesn't have enough permission for given action
|
55
61
|
class InsufficientPermissions < BasicPreferredInfoError
|
56
62
|
TITLE = 'Insufficient permissions for your Apple ID:'.freeze
|
@@ -446,10 +452,7 @@ module Spaceship
|
|
446
452
|
content = expected_key ? response.body[expected_key] : response.body
|
447
453
|
end
|
448
454
|
if content.nil?
|
449
|
-
|
450
|
-
if response.body && response.body["messages"] && response.body["messages"]["error"].include?("Forbidden")
|
451
|
-
raise_insuffient_permission_error!
|
452
|
-
end
|
455
|
+
detect_most_common_errors_and_raise_exceptions(response.body) if response.body
|
453
456
|
raise UnexpectedResponse, response.body
|
454
457
|
elsif content.kind_of?(Hash) && (content["resultString"] || "").include?("NotAllowed")
|
455
458
|
# example content when doing a Developer Portal action with not enough permission
|
@@ -469,6 +472,15 @@ module Spaceship
|
|
469
472
|
end
|
470
473
|
end
|
471
474
|
|
475
|
+
def detect_most_common_errors_and_raise_exceptions(body)
|
476
|
+
# Check if the failure is due to missing permissions (iTunes Connect)
|
477
|
+
if body["messages"] && body["messages"]["error"].include?("Forbidden")
|
478
|
+
raise_insuffient_permission_error!
|
479
|
+
elsif (body["resultString"] || "").include?("Program License Agreement")
|
480
|
+
raise ProgramLicenseAgreementUpdated, "#{body['userString']} Please manually log into iTunes Connect to review and accept the updated agreement."
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
472
484
|
# This also gets called from subclasses
|
473
485
|
def raise_insuffient_permission_error!(additional_error_string: nil)
|
474
486
|
# get the method name of the request that failed
|
@@ -107,6 +107,7 @@ module Spaceship
|
|
107
107
|
# @param mac [Bool] Searches Mac apps if true
|
108
108
|
# @return (App) The app you're looking for. This is nil if the app can't be found.
|
109
109
|
def find(bundle_id, mac: false)
|
110
|
+
raise "`bundle_id` parameter must not be nil" if bundle_id.nil?
|
110
111
|
all(mac: mac).find do |app|
|
111
112
|
return app if app.bundle_id.casecmp(bundle_id) == 0
|
112
113
|
end
|
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.22.0
|
4
|
+
version: 2.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -1296,23 +1296,23 @@ metadata:
|
|
1296
1296
|
post_install_message:
|
1297
1297
|
rdoc_options: []
|
1298
1298
|
require_paths:
|
1299
|
-
-
|
1299
|
+
- cert/lib
|
1300
|
+
- credentials_manager/lib
|
1301
|
+
- deliver/lib
|
1302
|
+
- fastlane/lib
|
1303
|
+
- fastlane_core/lib
|
1300
1304
|
- frameit/lib
|
1301
|
-
-
|
1305
|
+
- gym/lib
|
1306
|
+
- match/lib
|
1302
1307
|
- pem/lib
|
1303
|
-
-
|
1304
|
-
- spaceship/lib
|
1308
|
+
- pilot/lib
|
1305
1309
|
- produce/lib
|
1310
|
+
- scan/lib
|
1306
1311
|
- screengrab/lib
|
1307
1312
|
- sigh/lib
|
1313
|
+
- snapshot/lib
|
1314
|
+
- spaceship/lib
|
1308
1315
|
- supply/lib
|
1309
|
-
- fastlane/lib
|
1310
|
-
- gym/lib
|
1311
|
-
- fastlane_core/lib
|
1312
|
-
- cert/lib
|
1313
|
-
- deliver/lib
|
1314
|
-
- match/lib
|
1315
|
-
- pilot/lib
|
1316
1316
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1317
1317
|
requirements:
|
1318
1318
|
- - ">="
|
@@ -1320,14 +1320,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1320
1320
|
version: 2.0.0
|
1321
1321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1322
1322
|
requirements:
|
1323
|
-
- - "
|
1323
|
+
- - ">="
|
1324
1324
|
- !ruby/object:Gem::Version
|
1325
|
-
version:
|
1325
|
+
version: '0'
|
1326
1326
|
requirements: []
|
1327
1327
|
rubyforge_project:
|
1328
|
-
rubygems_version: 2.
|
1328
|
+
rubygems_version: 2.6.10
|
1329
1329
|
signing_key:
|
1330
1330
|
specification_version: 4
|
1331
1331
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
1332
1332
|
Android apps
|
1333
1333
|
test_files: []
|
1334
|
+
has_rdoc:
|