fastlane 2.16.0 → 2.17.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/cert/lib/cert/commands_generator.rb +4 -2
- data/deliver/lib/deliver/commands_generator.rb +18 -2
- data/deliver/lib/deliver/detect_values.rb +4 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/spaceship/lib/spaceship/portal/portal_client.rb +21 -49
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +13 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2018da1149a04271e1861829b2c3174e3fbffa9
|
4
|
+
data.tar.gz: 009843a49c26bc5e69a8741563dce459efea763c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b5fac2721f6284bf23a447e2463d9d7c5ad2a51e44e1c72441b5a6fd5ce9c468d8070881370111fbfe9e19188e62277596c0c5440383455d422df741205dc60
|
7
|
+
data.tar.gz: fa94f1bc432ccd8ab9257a7478d8dfed2ce5267a04a671b3ab7b18206d0dd560a8c37de9199006a8ca6e9ef8f0ba06013d977bf506e8484fb940b5b5d4acb5ed
|
@@ -22,12 +22,12 @@ module Cert
|
|
22
22
|
|
23
23
|
global_option('--verbose') { FastlaneCore::Globals.verbose = true }
|
24
24
|
|
25
|
-
FastlaneCore::CommanderGenerator.new.generate(Cert::Options.available_options)
|
26
|
-
|
27
25
|
command :create do |c|
|
28
26
|
c.syntax = 'fastlane cert create'
|
29
27
|
c.description = 'Create new iOS code signing certificates'
|
30
28
|
|
29
|
+
FastlaneCore::CommanderGenerator.new.generate(Cert::Options.available_options, command: c)
|
30
|
+
|
31
31
|
c.action do |args, options|
|
32
32
|
Cert.config = FastlaneCore::Configuration.create(Cert::Options.available_options, options.__hash__)
|
33
33
|
Cert::Runner.new.launch
|
@@ -38,6 +38,8 @@ module Cert
|
|
38
38
|
c.syntax = 'fastlane cert revoke_expired'
|
39
39
|
c.description = 'Revoke expired iOS code signing certificates'
|
40
40
|
|
41
|
+
FastlaneCore::CommanderGenerator.new.generate(Cert::Options.available_options, command: c)
|
42
|
+
|
41
43
|
c.action do |args, options|
|
42
44
|
Cert.config = FastlaneCore::Configuration.create(Cert::Options.available_options, options.__hash__)
|
43
45
|
Cert::Runner.new.revoke_expired_certs!
|
@@ -37,8 +37,6 @@ module Deliver
|
|
37
37
|
program :help, 'GitHub', 'https://github.com/fastlane/fastlane/tree/master/deliver'
|
38
38
|
program :help_formatter, :compact
|
39
39
|
|
40
|
-
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options)
|
41
|
-
|
42
40
|
global_option('--verbose') { FastlaneCore::Globals.verbose = true }
|
43
41
|
|
44
42
|
always_trace!
|
@@ -46,6 +44,9 @@ module Deliver
|
|
46
44
|
command :run do |c|
|
47
45
|
c.syntax = 'fastlane deliver'
|
48
46
|
c.description = 'Upload metadata and binary to iTunes Connect'
|
47
|
+
|
48
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
49
|
+
|
49
50
|
c.action do |args, options|
|
50
51
|
options = FastlaneCore::Configuration.create(deliverfile_options, options.__hash__)
|
51
52
|
loaded = options.load_configuration_file("Deliverfile")
|
@@ -62,9 +63,13 @@ module Deliver
|
|
62
63
|
Deliver::Runner.new(options).run
|
63
64
|
end
|
64
65
|
end
|
66
|
+
|
65
67
|
command :submit_build do |c|
|
66
68
|
c.syntax = 'fastlane deliver submit_build'
|
67
69
|
c.description = 'Submit a specific build-nr for review, use latest for the latest build'
|
70
|
+
|
71
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
72
|
+
|
68
73
|
c.action do |args, options|
|
69
74
|
options = FastlaneCore::Configuration.create(deliverfile_options, options.__hash__)
|
70
75
|
options.load_configuration_file("Deliverfile")
|
@@ -73,9 +78,13 @@ module Deliver
|
|
73
78
|
Deliver::Runner.new(options).run
|
74
79
|
end
|
75
80
|
end
|
81
|
+
|
76
82
|
command :init do |c|
|
77
83
|
c.syntax = 'fastlane deliver init'
|
78
84
|
c.description = 'Create the initial `deliver` configuration based on an existing app'
|
85
|
+
|
86
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
87
|
+
|
79
88
|
c.action do |args, options|
|
80
89
|
if File.exist?("Deliverfile") or File.exist?("fastlane/Deliverfile")
|
81
90
|
UI.important("You already have a running deliver setup in this directory")
|
@@ -92,6 +101,9 @@ module Deliver
|
|
92
101
|
command :generate_summary do |c|
|
93
102
|
c.syntax = 'fastlane deliver generate_summary'
|
94
103
|
c.description = 'Generate HTML Summary without uploading/downloading anything'
|
104
|
+
|
105
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
106
|
+
|
95
107
|
c.action do |args, options|
|
96
108
|
options = FastlaneCore::Configuration.create(deliverfile_options, options.__hash__)
|
97
109
|
options.load_configuration_file("Deliverfile")
|
@@ -106,6 +118,8 @@ module Deliver
|
|
106
118
|
c.syntax = 'fastlane deliver download_screenshots'
|
107
119
|
c.description = "Downloads all existing screenshots from iTunes Connect and stores them in the screenshots folder"
|
108
120
|
|
121
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
122
|
+
|
109
123
|
c.action do |args, options|
|
110
124
|
options = FastlaneCore::Configuration.create(deliverfile_options(skip_verification: true), options.__hash__)
|
111
125
|
options.load_configuration_file("Deliverfile")
|
@@ -120,6 +134,8 @@ module Deliver
|
|
120
134
|
c.syntax = 'fastlane deliver download_metadata'
|
121
135
|
c.description = "Downloads existing metadata and stores it locally. This overwrites the local files."
|
122
136
|
|
137
|
+
FastlaneCore::CommanderGenerator.new.generate(deliverfile_options, command: c)
|
138
|
+
|
123
139
|
c.action do |args, options|
|
124
140
|
options = FastlaneCore::Configuration.create(deliverfile_options(skip_verification: true), options.__hash__)
|
125
141
|
options.load_configuration_file("Deliverfile")
|
@@ -20,7 +20,8 @@ module Deliver
|
|
20
20
|
|
21
21
|
options[:app_identifier] = identifier if identifier.to_s.length > 0
|
22
22
|
options[:app_identifier] ||= UI.input("The Bundle Identifier of your App: ")
|
23
|
-
rescue
|
23
|
+
rescue => ex
|
24
|
+
UI.error(ex)
|
24
25
|
UI.user_error!("Could not infer your App's Bundle Identifier")
|
25
26
|
end
|
26
27
|
|
@@ -54,7 +55,8 @@ module Deliver
|
|
54
55
|
elsif options[:pkg]
|
55
56
|
options[:app_version] ||= FastlaneCore::PkgFileAnalyser.fetch_app_version(options[:pkg])
|
56
57
|
end
|
57
|
-
rescue
|
58
|
+
rescue => ex
|
59
|
+
UI.error(ex)
|
58
60
|
UI.user_error!("Could not infer your app's version")
|
59
61
|
end
|
60
62
|
|
@@ -26,7 +26,7 @@ module Spaceship
|
|
26
26
|
# @return (Array) A list of all available teams
|
27
27
|
def teams
|
28
28
|
return @teams if @teams
|
29
|
-
req = request(:post, "
|
29
|
+
req = request(:post, "account/listTeams.action")
|
30
30
|
@teams = parse_response(req, 'teams').sort_by do |team|
|
31
31
|
[
|
32
32
|
team['name'],
|
@@ -363,16 +363,15 @@ module Spaceship
|
|
363
363
|
def create_device!(device_name, device_id, mac: false)
|
364
364
|
ensure_csrf(Spaceship::Device)
|
365
365
|
|
366
|
-
req = request(:post)
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
end
|
366
|
+
req = request(:post, "account/#{platform_slug(mac)}/device/addDevices.action", {
|
367
|
+
teamId: team_id,
|
368
|
+
deviceClasses: mac ? 'mac' : 'iphone',
|
369
|
+
deviceNumbers: device_id,
|
370
|
+
deviceNames: device_name,
|
371
|
+
register: 'single'
|
372
|
+
})
|
374
373
|
|
375
|
-
parse_response(req, '
|
374
|
+
parse_response(req, 'devices').first
|
376
375
|
end
|
377
376
|
|
378
377
|
def disable_device!(device_id, device_udid, mac: false)
|
@@ -452,16 +451,18 @@ module Spaceship
|
|
452
451
|
#####################################################
|
453
452
|
|
454
453
|
def provisioning_profiles(mac: false)
|
455
|
-
|
456
|
-
|
457
|
-
r.params = {
|
454
|
+
paging do |page_number|
|
455
|
+
req = request(:post, "account/#{platform_slug(mac)}/profile/listProvisioningProfiles.action", {
|
458
456
|
teamId: team_id,
|
457
|
+
pageNumber: page_number,
|
458
|
+
pageSize: page_size,
|
459
|
+
sort: 'name=asc',
|
459
460
|
includeInactiveProfiles: true,
|
460
461
|
onlyCountLists: true
|
461
|
-
}
|
462
|
-
end
|
462
|
+
})
|
463
463
|
|
464
|
-
|
464
|
+
parse_response(req, 'provisioningProfiles')
|
465
|
+
end
|
465
466
|
end
|
466
467
|
|
467
468
|
def provisioning_profile_details(provisioning_profile_id: nil, mac: false)
|
@@ -473,9 +474,7 @@ module Spaceship
|
|
473
474
|
end
|
474
475
|
|
475
476
|
def create_provisioning_profile!(name, distribution_method, app_id, certificate_ids, device_ids, mac: false, sub_platform: nil)
|
476
|
-
ensure_csrf(Spaceship::ProvisioningProfile)
|
477
|
-
fetch_csrf_token_for_provisioning
|
478
|
-
end
|
477
|
+
ensure_csrf(Spaceship::ProvisioningProfile)
|
479
478
|
|
480
479
|
params = {
|
481
480
|
teamId: team_id,
|
@@ -492,9 +491,7 @@ module Spaceship
|
|
492
491
|
end
|
493
492
|
|
494
493
|
def download_provisioning_profile(profile_id, mac: false)
|
495
|
-
ensure_csrf(Spaceship::ProvisioningProfile)
|
496
|
-
fetch_csrf_token_for_provisioning
|
497
|
-
end
|
494
|
+
ensure_csrf(Spaceship::ProvisioningProfile)
|
498
495
|
|
499
496
|
r = request(:get, "account/#{platform_slug(mac)}/profile/downloadProfileContent", {
|
500
497
|
teamId: team_id,
|
@@ -509,9 +506,7 @@ module Spaceship
|
|
509
506
|
end
|
510
507
|
|
511
508
|
def delete_provisioning_profile!(profile_id, mac: false)
|
512
|
-
ensure_csrf(Spaceship::ProvisioningProfile)
|
513
|
-
fetch_csrf_token_for_provisioning
|
514
|
-
end
|
509
|
+
ensure_csrf(Spaceship::ProvisioningProfile)
|
515
510
|
|
516
511
|
r = request(:post, "account/#{platform_slug(mac)}/profile/deleteProvisioningProfile.action", {
|
517
512
|
teamId: team_id,
|
@@ -521,9 +516,7 @@ module Spaceship
|
|
521
516
|
end
|
522
517
|
|
523
518
|
def repair_provisioning_profile!(profile_id, name, distribution_method, app_id, certificate_ids, device_ids, mac: false, sub_platform: nil)
|
524
|
-
ensure_csrf(Spaceship::ProvisioningProfile)
|
525
|
-
fetch_csrf_token_for_provisioning
|
526
|
-
end
|
519
|
+
ensure_csrf(Spaceship::ProvisioningProfile)
|
527
520
|
|
528
521
|
params = {
|
529
522
|
teamId: team_id,
|
@@ -541,27 +534,6 @@ module Spaceship
|
|
541
534
|
parse_response(r, 'provisioningProfile')
|
542
535
|
end
|
543
536
|
|
544
|
-
# We need a custom way to fetch the csrf token for the provisioning profile requests, since
|
545
|
-
# we use a separate API endpoint (host of Xcode API) to fetch the provisioning profiles
|
546
|
-
# All we do is fetch one profile (if exists) to get a valid csrf token with its time stamp
|
547
|
-
# This method is being called from all requests that modify, create or downloading provisioning
|
548
|
-
# profiles.
|
549
|
-
# Source https://github.com/fastlane/fastlane/issues/5903
|
550
|
-
def fetch_csrf_token_for_provisioning(mac: false)
|
551
|
-
req = request(:post) do |r|
|
552
|
-
r.url "https://developer.apple.com/services-account/#{PROTOCOL_VERSION}/account/#{platform_slug(mac)}/profile/listProvisioningProfiles.action"
|
553
|
-
r.params = {
|
554
|
-
teamId: team_id,
|
555
|
-
pageSize: 1,
|
556
|
-
pageNumber: 1,
|
557
|
-
sort: "name=asc"
|
558
|
-
}
|
559
|
-
end
|
560
|
-
|
561
|
-
parse_response(req, 'provisioningProfiles')
|
562
|
-
return nil
|
563
|
-
end
|
564
|
-
|
565
537
|
private
|
566
538
|
|
567
539
|
# This is a cache of entity type (App, AppGroup, Certificate, Device) to csrf_tokens
|
@@ -174,9 +174,6 @@ module Spaceship
|
|
174
174
|
raise "Can't find class '#{attrs['distributionMethod']}'"
|
175
175
|
end
|
176
176
|
|
177
|
-
# eagerload the Apps using the same client if we have to.
|
178
|
-
attrs['appId'] = App.set_client(@client).factory(attrs['appId'])
|
179
|
-
|
180
177
|
klass.client = @client
|
181
178
|
obj = klass.new(attrs)
|
182
179
|
|
@@ -258,14 +255,18 @@ module Spaceship
|
|
258
255
|
# If you're calling this from a subclass (like AdHoc), this will
|
259
256
|
# only return the profiles that are of this type
|
260
257
|
# @param mac (Bool) (optional): Pass true to get all Mac provisioning profiles
|
261
|
-
# @param xcode
|
258
|
+
# @param xcode DEPRECATED
|
262
259
|
def all(mac: false, xcode: false)
|
263
260
|
profiles = client.provisioning_profiles(mac: mac).map do |profile|
|
264
261
|
self.factory(profile)
|
265
262
|
end
|
266
263
|
|
267
264
|
# filter out the profiles managed by xcode
|
268
|
-
|
265
|
+
if xcode
|
266
|
+
warn('Apple API no longer returns XCode managed Provisioning Profiles')
|
267
|
+
else
|
268
|
+
profiles.delete_if(&:managed_by_xcode?)
|
269
|
+
end
|
269
270
|
|
270
271
|
return profiles if self == ProvisioningProfile
|
271
272
|
|
@@ -474,7 +475,13 @@ module Spaceship
|
|
474
475
|
end
|
475
476
|
end
|
476
477
|
|
477
|
-
|
478
|
+
@certificates
|
479
|
+
end
|
480
|
+
|
481
|
+
def app
|
482
|
+
fetch_details
|
483
|
+
|
484
|
+
App.set_client(client).new(profile_details['appId'])
|
478
485
|
end
|
479
486
|
|
480
487
|
# @return (Bool) Is this current provisioning profile adhoc?
|
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.
|
4
|
+
version: 2.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2017-02-
|
17
|
+
date: 2017-02-15 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: slack-notifier
|