fastlane 2.130.0.beta.20190825200030 → 2.131.0.beta.20190830200038
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/README.md +68 -68
- data/fastlane/lib/fastlane/actions/register_devices.rb +38 -22
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +29 -18
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +11 -9
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/gym/lib/gym/generators/build_command_generator.rb +5 -1
- data/gym/lib/gym/options.rb +5 -0
- data/sigh/lib/sigh/download_all.rb +48 -8
- data/spaceship/lib/spaceship/tunes/availability.rb +40 -8
- data/spaceship/lib/spaceship/tunes/b2b_organization.rb +50 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +1 -1
- metadata +27 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e579d1381d263975b91f2275bb548330fc4fb066
|
4
|
+
data.tar.gz: 569a8ffbd1a4b5624b0ce3f99cce3d0493122bab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a2bbc4fb0fc475e603d53a108e8dc01910e39f91031b90ef30d20b8e442a7095360f585439800fe357f9d1ea5b36f6499f6b85ccb237fbb62a624f387f0211d
|
7
|
+
data.tar.gz: 716cae39edb3848e64506801e91c40ba6a0c68e3cac27bdc525cb24f4ce71b53d0866c0d747352f2d8d1e40c9fd4b8e5984cf4fa9e00f425b62d2eb106f30614
|
data/README.md
CHANGED
@@ -40,17 +40,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
40
40
|
</a>
|
41
41
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='joshua-liebowitz'>
|
44
|
+
<a href='https://github.com/taquitos'>
|
45
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='jan-piotrowski'>
|
50
|
+
<a href='https://github.com/janpio'>
|
51
|
+
<img src='https://github.com/janpio.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
54
|
+
</td>
|
55
|
+
<td id='aaron-brager'>
|
56
|
+
<a href='https://github.com/getaaron'>
|
57
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
58
|
+
</a>
|
59
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
54
60
|
</td>
|
55
61
|
<td id='jimmy-dee'>
|
56
62
|
<a href='https://github.com/jdee'>
|
@@ -58,37 +64,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
58
64
|
</a>
|
59
65
|
<h4 align='center'>Jimmy Dee</h4>
|
60
66
|
</td>
|
61
|
-
<td id='matthew-ellis'>
|
62
|
-
<a href='https://github.com/matthewellis'>
|
63
|
-
<img src='https://github.com/matthewellis.png?size=140'>
|
64
|
-
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
66
|
-
</td>
|
67
67
|
</tr>
|
68
68
|
<tr>
|
69
|
-
<td id='luka-mirosevic'>
|
70
|
-
<a href='https://github.com/lmirosevic'>
|
71
|
-
<img src='https://github.com/lmirosevic.png?size=140'>
|
72
|
-
</a>
|
73
|
-
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
74
|
-
</td>
|
75
|
-
<td id='iulian-onofrei'>
|
76
|
-
<a href='https://github.com/revolter'>
|
77
|
-
<img src='https://github.com/revolter.png?size=140'>
|
78
|
-
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
80
|
-
</td>
|
81
69
|
<td id='manu-wallner'>
|
82
70
|
<a href='https://github.com/milch'>
|
83
71
|
<img src='https://github.com/milch.png?size=140'>
|
84
72
|
</a>
|
85
73
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
86
74
|
</td>
|
87
|
-
<td id='
|
88
|
-
<a href='https://github.com/
|
89
|
-
<img src='https://github.com/
|
75
|
+
<td id='jérôme-lacoste'>
|
76
|
+
<a href='https://github.com/lacostej'>
|
77
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
90
78
|
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
80
|
+
</td>
|
81
|
+
<td id='stefan-natchev'>
|
82
|
+
<a href='https://github.com/snatchev'>
|
83
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
84
|
+
</a>
|
85
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
86
|
+
</td>
|
87
|
+
<td id='josh-holtz'>
|
88
|
+
<a href='https://github.com/joshdholtz'>
|
89
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
90
|
+
</a>
|
91
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
92
92
|
</td>
|
93
93
|
<td id='jorge-revuelta-h'>
|
94
94
|
<a href='https://github.com/minuscorp'>
|
@@ -98,18 +98,38 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
98
98
|
</td>
|
99
99
|
</tr>
|
100
100
|
<tr>
|
101
|
+
<td id='luka-mirosevic'>
|
102
|
+
<a href='https://github.com/lmirosevic'>
|
103
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
104
|
+
</a>
|
105
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
106
|
+
</td>
|
107
|
+
<td id='olivier-halligon'>
|
108
|
+
<a href='https://github.com/AliSoftware'>
|
109
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
110
|
+
</a>
|
111
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
112
|
+
</td>
|
113
|
+
<td id='helmut-januschka'>
|
114
|
+
<a href='https://github.com/hjanuschka'>
|
115
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
116
|
+
</a>
|
117
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
118
|
+
</td>
|
119
|
+
<td id='felix-krause'>
|
120
|
+
<a href='https://github.com/KrauseFx'>
|
121
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
122
|
+
</a>
|
123
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
124
|
+
</td>
|
101
125
|
<td id='fumiya-nakamura'>
|
102
126
|
<a href='https://github.com/nafu'>
|
103
127
|
<img src='https://github.com/nafu.png?size=140'>
|
104
128
|
</a>
|
105
129
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
106
130
|
</td>
|
107
|
-
|
108
|
-
<
|
109
|
-
<img src='https://github.com/snatchev.png?size=140'>
|
110
|
-
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
112
|
-
</td>
|
131
|
+
</tr>
|
132
|
+
<tr>
|
113
133
|
<td id='danielle-tomlinson'>
|
114
134
|
<a href='https://github.com/endocrimes'>
|
115
135
|
<img src='https://github.com/endocrimes.png?size=140'>
|
@@ -122,43 +142,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
122
142
|
</a>
|
123
143
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
124
144
|
</td>
|
125
|
-
<td id='
|
126
|
-
<a href='https://github.com/
|
127
|
-
<img src='https://github.com/
|
128
|
-
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
130
|
-
</td>
|
131
|
-
</tr>
|
132
|
-
<tr>
|
133
|
-
<td id='joshua-liebowitz'>
|
134
|
-
<a href='https://github.com/taquitos'>
|
135
|
-
<img src='https://github.com/taquitos.png?size=140'>
|
136
|
-
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
138
|
-
</td>
|
139
|
-
<td id='jan-piotrowski'>
|
140
|
-
<a href='https://github.com/janpio'>
|
141
|
-
<img src='https://github.com/janpio.png?size=140'>
|
142
|
-
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
144
|
-
</td>
|
145
|
-
<td id='felix-krause'>
|
146
|
-
<a href='https://github.com/KrauseFx'>
|
147
|
-
<img src='https://github.com/KrauseFx.png?size=140'>
|
145
|
+
<td id='andrew-mcburney'>
|
146
|
+
<a href='https://github.com/armcburney'>
|
147
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
148
148
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
149
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
150
150
|
</td>
|
151
|
-
<td id='
|
152
|
-
<a href='https://github.com/
|
153
|
-
<img src='https://github.com/
|
151
|
+
<td id='matthew-ellis'>
|
152
|
+
<a href='https://github.com/matthewellis'>
|
153
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
154
154
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
156
156
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
157
|
+
<td id='iulian-onofrei'>
|
158
|
+
<a href='https://github.com/revolter'>
|
159
|
+
<img src='https://github.com/revolter.png?size=140'>
|
160
160
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
161
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
162
162
|
</td>
|
163
163
|
</tr>
|
164
164
|
</table>
|
@@ -7,41 +7,53 @@ module Fastlane
|
|
7
7
|
[:ios, :mac].include?(platform)
|
8
8
|
end
|
9
9
|
|
10
|
+
def self.file_column_headers
|
11
|
+
['Device ID', 'Device Name', 'Device Platform']
|
12
|
+
end
|
13
|
+
|
10
14
|
def self.run(params)
|
11
|
-
|
15
|
+
if params[:devices]
|
16
|
+
new_devices = params[:devices].map do |name, udid|
|
17
|
+
[udid, name]
|
18
|
+
end
|
19
|
+
elsif params[:devices_file]
|
20
|
+
require 'csv'
|
12
21
|
|
13
|
-
|
14
|
-
|
22
|
+
devices_file = CSV.read(File.expand_path(File.join(params[:devices_file])), col_sep: "\t")
|
23
|
+
unless devices_file.first == file_column_headers.first(2) || devices_file.first == file_column_headers
|
24
|
+
UI.user_error!("Please provide a file according to the Apple Sample UDID file (https://developer.apple.com/account/resources/downloads/Multiple-Upload-Samples.zip)")
|
25
|
+
end
|
15
26
|
|
16
|
-
|
27
|
+
new_devices = devices_file.drop(1).map do |row|
|
28
|
+
UI.user_error!("Invalid device line, please provide a file according to the Apple Sample UDID file (https://developer.apple.com/account/resources/downloads/Multiple-Upload-Samples.zip)") unless (2..3).cover?(row.count)
|
29
|
+
row
|
30
|
+
end
|
31
|
+
else
|
32
|
+
UI.user_error!("You must pass either a valid `devices` or `devices_file`. Please check the readme.")
|
33
|
+
end
|
17
34
|
|
35
|
+
require 'spaceship'
|
18
36
|
credentials = CredentialsManager::AccountManager.new(user: params[:username])
|
19
37
|
Spaceship.login(credentials.user, credentials.password)
|
20
38
|
Spaceship.select_team
|
21
39
|
|
22
40
|
UI.message("Fetching list of currently registered devices...")
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
elsif devices_file
|
31
|
-
require 'csv'
|
41
|
+
all_platforms = Set[params[:platform]]
|
42
|
+
new_devices.each do |device|
|
43
|
+
next if device[2].nil?
|
44
|
+
all_platforms.add(device[2])
|
45
|
+
end
|
46
|
+
supported_platforms = all_platforms.select { |platform| self.is_supported?(platform.to_sym) }
|
32
47
|
|
33
|
-
|
34
|
-
UI.user_error!("Please provide a file according to the Apple Sample UDID file (https://devimages.apple.com.edgekey.net/downloads/devices/Multiple-Upload-Samples.zip)") unless devices_file.first == ['Device ID', 'Device Name']
|
48
|
+
existing_devices = supported_platforms.map { |platform| Spaceship::Device.all(mac: platform == "mac") }.flatten
|
35
49
|
|
36
|
-
|
37
|
-
|
50
|
+
device_objs = new_devices.map do |device|
|
51
|
+
next if existing_devices.map(&:udid).include?(device[0])
|
38
52
|
|
39
|
-
|
53
|
+
device_platform_supported = !device[2].nil? && self.is_supported?(device[2].to_sym)
|
54
|
+
mac = (device_platform_supported ? device[2] : params[:platform]) == "mac"
|
40
55
|
|
41
|
-
|
42
|
-
end
|
43
|
-
else
|
44
|
-
UI.user_error!("You must pass either a valid `devices` or `devices_file`. Please check the readme.")
|
56
|
+
try_create_device(name: device[1], udid: device[0], mac: mac)
|
45
57
|
end
|
46
58
|
|
47
59
|
UI.success("Successfully registered new devices.")
|
@@ -55,6 +67,10 @@ module Fastlane
|
|
55
67
|
UI.crash!("Failed to register new device (name: #{name}, UDID: #{udid})")
|
56
68
|
end
|
57
69
|
|
70
|
+
#####################################################
|
71
|
+
# @!group Documentation
|
72
|
+
#####################################################
|
73
|
+
|
58
74
|
def self.description
|
59
75
|
"Registers new devices to the Apple Dev Portal"
|
60
76
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.131.0.beta.20190830200038'.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
|
@@ -494,6 +494,7 @@ func buildApp(workspace: String? = nil,
|
|
494
494
|
exportXcargs: String? = nil,
|
495
495
|
skipBuildArchive: Bool? = nil,
|
496
496
|
skipArchive: Bool? = nil,
|
497
|
+
skipCodesigning: Bool? = nil,
|
497
498
|
buildPath: String? = nil,
|
498
499
|
archivePath: String? = nil,
|
499
500
|
derivedDataPath: String? = nil,
|
@@ -501,20 +502,20 @@ func buildApp(workspace: String? = nil,
|
|
501
502
|
resultBundlePath: String? = nil,
|
502
503
|
buildlogPath: String = "~/Library/Logs/gym",
|
503
504
|
sdk: String? = nil,
|
504
|
-
toolchain:
|
505
|
+
toolchain: String? = nil,
|
505
506
|
destination: String? = nil,
|
506
507
|
exportTeamId: String? = nil,
|
507
508
|
xcargs: String? = nil,
|
508
509
|
xcconfig: String? = nil,
|
509
510
|
suppressXcodeOutput: Bool? = nil,
|
510
|
-
disableXcpretty:
|
511
|
-
xcprettyTestFormat:
|
511
|
+
disableXcpretty: Bool? = nil,
|
512
|
+
xcprettyTestFormat: Bool? = nil,
|
512
513
|
xcprettyFormatter: String? = nil,
|
513
514
|
xcprettyReportJunit: String? = nil,
|
514
515
|
xcprettyReportHtml: String? = nil,
|
515
516
|
xcprettyReportJson: String? = nil,
|
516
|
-
analyzeBuildTime:
|
517
|
-
xcprettyUtf:
|
517
|
+
analyzeBuildTime: Bool? = nil,
|
518
|
+
xcprettyUtf: Bool? = nil,
|
518
519
|
skipProfileDetection: Bool = false) {
|
519
520
|
let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
520
521
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -533,6 +534,7 @@ func buildApp(workspace: String? = nil,
|
|
533
534
|
RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
|
534
535
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
535
536
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
537
|
+
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
536
538
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
537
539
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
538
540
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -574,6 +576,7 @@ func buildIosApp(workspace: String? = nil,
|
|
574
576
|
exportXcargs: String? = nil,
|
575
577
|
skipBuildArchive: Bool? = nil,
|
576
578
|
skipArchive: Bool? = nil,
|
579
|
+
skipCodesigning: Bool? = nil,
|
577
580
|
buildPath: String? = nil,
|
578
581
|
archivePath: String? = nil,
|
579
582
|
derivedDataPath: String? = nil,
|
@@ -581,20 +584,20 @@ func buildIosApp(workspace: String? = nil,
|
|
581
584
|
resultBundlePath: String? = nil,
|
582
585
|
buildlogPath: String = "~/Library/Logs/gym",
|
583
586
|
sdk: String? = nil,
|
584
|
-
toolchain:
|
587
|
+
toolchain: String? = nil,
|
585
588
|
destination: String? = nil,
|
586
589
|
exportTeamId: String? = nil,
|
587
590
|
xcargs: String? = nil,
|
588
591
|
xcconfig: String? = nil,
|
589
592
|
suppressXcodeOutput: Bool? = nil,
|
590
|
-
disableXcpretty:
|
591
|
-
xcprettyTestFormat:
|
593
|
+
disableXcpretty: Bool? = nil,
|
594
|
+
xcprettyTestFormat: Bool? = nil,
|
592
595
|
xcprettyFormatter: String? = nil,
|
593
596
|
xcprettyReportJunit: String? = nil,
|
594
597
|
xcprettyReportHtml: String? = nil,
|
595
598
|
xcprettyReportJson: String? = nil,
|
596
|
-
analyzeBuildTime:
|
597
|
-
xcprettyUtf:
|
599
|
+
analyzeBuildTime: Bool? = nil,
|
600
|
+
xcprettyUtf: Bool? = nil,
|
598
601
|
skipProfileDetection: Bool = false) {
|
599
602
|
let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
600
603
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -613,6 +616,7 @@ func buildIosApp(workspace: String? = nil,
|
|
613
616
|
RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
|
614
617
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
615
618
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
619
|
+
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
616
620
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
617
621
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
618
622
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -1206,6 +1210,7 @@ func danger(useBundleExec: Bool = true,
|
|
1206
1210
|
githubApiToken: String? = nil,
|
1207
1211
|
failOnErrors: Bool = false,
|
1208
1212
|
newComment: Bool = false,
|
1213
|
+
removePreviousComments: Bool = false,
|
1209
1214
|
base: String? = nil,
|
1210
1215
|
head: String? = nil,
|
1211
1216
|
pr: String? = nil) {
|
@@ -1216,6 +1221,7 @@ func danger(useBundleExec: Bool = true,
|
|
1216
1221
|
RubyCommand.Argument(name: "github_api_token", value: githubApiToken),
|
1217
1222
|
RubyCommand.Argument(name: "fail_on_errors", value: failOnErrors),
|
1218
1223
|
RubyCommand.Argument(name: "new_comment", value: newComment),
|
1224
|
+
RubyCommand.Argument(name: "remove_previous_comments", value: removePreviousComments),
|
1219
1225
|
RubyCommand.Argument(name: "base", value: base),
|
1220
1226
|
RubyCommand.Argument(name: "head", value: head),
|
1221
1227
|
RubyCommand.Argument(name: "pr", value: pr)])
|
@@ -1393,7 +1399,8 @@ func downloadDsyms(username: String,
|
|
1393
1399
|
version: String? = nil,
|
1394
1400
|
buildNumber: String? = nil,
|
1395
1401
|
minVersion: String? = nil,
|
1396
|
-
outputDirectory: String? = nil
|
1402
|
+
outputDirectory: String? = nil,
|
1403
|
+
waitForDsymProcessing: Bool = false) {
|
1397
1404
|
let command = RubyCommand(commandID: "", methodName: "download_dsyms", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
|
1398
1405
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
1399
1406
|
RubyCommand.Argument(name: "team_id", value: teamId),
|
@@ -1402,7 +1409,8 @@ func downloadDsyms(username: String,
|
|
1402
1409
|
RubyCommand.Argument(name: "version", value: version),
|
1403
1410
|
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
1404
1411
|
RubyCommand.Argument(name: "min_version", value: minVersion),
|
1405
|
-
RubyCommand.Argument(name: "output_directory", value: outputDirectory)
|
1412
|
+
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
1413
|
+
RubyCommand.Argument(name: "wait_for_dsym_processing", value: waitForDsymProcessing)])
|
1406
1414
|
_ = runner.executeCommand(command)
|
1407
1415
|
}
|
1408
1416
|
func downloadFromPlayStore(packageName: String,
|
@@ -1812,6 +1820,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
1812
1820
|
exportXcargs: Any? = gymfile.exportXcargs,
|
1813
1821
|
skipBuildArchive: Bool? = gymfile.skipBuildArchive,
|
1814
1822
|
skipArchive: Bool? = gymfile.skipArchive,
|
1823
|
+
skipCodesigning: Bool? = gymfile.skipCodesigning,
|
1815
1824
|
buildPath: Any? = gymfile.buildPath,
|
1816
1825
|
archivePath: Any? = gymfile.archivePath,
|
1817
1826
|
derivedDataPath: Any? = gymfile.derivedDataPath,
|
@@ -1825,14 +1834,14 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
1825
1834
|
xcargs: Any? = gymfile.xcargs,
|
1826
1835
|
xcconfig: Any? = gymfile.xcconfig,
|
1827
1836
|
suppressXcodeOutput: Bool? = gymfile.suppressXcodeOutput,
|
1828
|
-
disableXcpretty:
|
1829
|
-
xcprettyTestFormat:
|
1837
|
+
disableXcpretty: Bool? = gymfile.disableXcpretty,
|
1838
|
+
xcprettyTestFormat: Bool? = gymfile.xcprettyTestFormat,
|
1830
1839
|
xcprettyFormatter: Any? = gymfile.xcprettyFormatter,
|
1831
1840
|
xcprettyReportJunit: Any? = gymfile.xcprettyReportJunit,
|
1832
1841
|
xcprettyReportHtml: Any? = gymfile.xcprettyReportHtml,
|
1833
1842
|
xcprettyReportJson: Any? = gymfile.xcprettyReportJson,
|
1834
|
-
analyzeBuildTime:
|
1835
|
-
xcprettyUtf:
|
1843
|
+
analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
|
1844
|
+
xcprettyUtf: Bool? = gymfile.xcprettyUtf,
|
1836
1845
|
skipProfileDetection: Bool = gymfile.skipProfileDetection) {
|
1837
1846
|
let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1838
1847
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -1851,6 +1860,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
1851
1860
|
RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
|
1852
1861
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
1853
1862
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
1863
|
+
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
1854
1864
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
1855
1865
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
1856
1866
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -3306,7 +3316,7 @@ func slather(buildDirectory: String? = nil,
|
|
3306
3316
|
verbose: Bool? = nil,
|
3307
3317
|
useBundleExec: Bool = false,
|
3308
3318
|
binaryBasename: Bool = false,
|
3309
|
-
binaryFile: String? = nil,
|
3319
|
+
binaryFile: [String]? = nil,
|
3310
3320
|
arch: String? = nil,
|
3311
3321
|
sourceFiles: Bool = false,
|
3312
3322
|
decimals: Bool = false) {
|
@@ -4399,6 +4409,7 @@ let precheckfile: Precheckfile = Precheckfile()
|
|
4399
4409
|
let scanfile: Scanfile = Scanfile()
|
4400
4410
|
let screengrabfile: Screengrabfile = Screengrabfile()
|
4401
4411
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
4412
|
+
|
4402
4413
|
// Please don't remove the lines below
|
4403
4414
|
// They are used to detect outdated files
|
4404
|
-
// FastlaneRunnerAPIVersion [0.9.
|
4415
|
+
// FastlaneRunnerAPIVersion [0.9.56]
|
@@ -16,6 +16,7 @@ protocol GymfileProtocol: class {
|
|
16
16
|
var exportXcargs: String? { get }
|
17
17
|
var skipBuildArchive: Bool? { get }
|
18
18
|
var skipArchive: Bool? { get }
|
19
|
+
var skipCodesigning: Bool? { get }
|
19
20
|
var buildPath: String? { get }
|
20
21
|
var archivePath: String? { get }
|
21
22
|
var derivedDataPath: String? { get }
|
@@ -29,14 +30,14 @@ protocol GymfileProtocol: class {
|
|
29
30
|
var xcargs: String? { get }
|
30
31
|
var xcconfig: String? { get }
|
31
32
|
var suppressXcodeOutput: Bool? { get }
|
32
|
-
var disableXcpretty:
|
33
|
-
var xcprettyTestFormat:
|
33
|
+
var disableXcpretty: Bool? { get }
|
34
|
+
var xcprettyTestFormat: Bool? { get }
|
34
35
|
var xcprettyFormatter: String? { get }
|
35
36
|
var xcprettyReportJunit: String? { get }
|
36
37
|
var xcprettyReportHtml: String? { get }
|
37
38
|
var xcprettyReportJson: String? { get }
|
38
|
-
var analyzeBuildTime:
|
39
|
-
var xcprettyUtf:
|
39
|
+
var analyzeBuildTime: Bool? { get }
|
40
|
+
var xcprettyUtf: Bool? { get }
|
40
41
|
var skipProfileDetection: Bool { get }
|
41
42
|
}
|
42
43
|
|
@@ -58,6 +59,7 @@ extension GymfileProtocol {
|
|
58
59
|
var exportXcargs: String? { return nil }
|
59
60
|
var skipBuildArchive: Bool? { return nil }
|
60
61
|
var skipArchive: Bool? { return nil }
|
62
|
+
var skipCodesigning: Bool? { return nil }
|
61
63
|
var buildPath: String? { return nil }
|
62
64
|
var archivePath: String? { return nil }
|
63
65
|
var derivedDataPath: String? { return nil }
|
@@ -71,17 +73,17 @@ extension GymfileProtocol {
|
|
71
73
|
var xcargs: String? { return nil }
|
72
74
|
var xcconfig: String? { return nil }
|
73
75
|
var suppressXcodeOutput: Bool? { return nil }
|
74
|
-
var disableXcpretty:
|
75
|
-
var xcprettyTestFormat:
|
76
|
+
var disableXcpretty: Bool? { return nil }
|
77
|
+
var xcprettyTestFormat: Bool? { return nil }
|
76
78
|
var xcprettyFormatter: String? { return nil }
|
77
79
|
var xcprettyReportJunit: String? { return nil }
|
78
80
|
var xcprettyReportHtml: String? { return nil }
|
79
81
|
var xcprettyReportJson: String? { return nil }
|
80
|
-
var analyzeBuildTime:
|
81
|
-
var xcprettyUtf:
|
82
|
+
var analyzeBuildTime: Bool? { return nil }
|
83
|
+
var xcprettyUtf: Bool? { return nil }
|
82
84
|
var skipProfileDetection: Bool { return false }
|
83
85
|
}
|
84
86
|
|
85
87
|
// Please don't remove the lines below
|
86
88
|
// They are used to detect outdated files
|
87
|
-
// FastlaneRunnerAPIVersion [0.9.
|
89
|
+
// FastlaneRunnerAPIVersion [0.9.5]
|
@@ -1 +1 @@
|
|
1
|
-
{"Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","ArgumentProcessor.swift":"Runner Code","main.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
|
1
|
+
{"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","ArgumentProcessor.swift":"Runner Code","main.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
|
@@ -72,7 +72,7 @@ module FastlaneCore
|
|
72
72
|
# @return [boolean] true if building in a known CI environment
|
73
73
|
def self.ci?
|
74
74
|
# Check for Jenkins, Travis CI, ... environment variables
|
75
|
-
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CIRCLECI', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD'].each do |current|
|
75
|
+
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CIRCLECI', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION'].each do |current|
|
76
76
|
return true if ENV.key?(current)
|
77
77
|
end
|
78
78
|
return false
|
@@ -58,7 +58,11 @@ module Gym
|
|
58
58
|
|
59
59
|
def setting
|
60
60
|
setting = []
|
61
|
-
|
61
|
+
if Gym.config[:skip_codesigning]
|
62
|
+
setting << "CODE_SIGN_IDENTITY='' CODE_SIGNING_REQUIRED=NO CODE_SIGN_ENTITLEMENTS='' CODE_SIGNING_ALLOWED=NO"
|
63
|
+
elsif Gym.config[:codesigning_identity]
|
64
|
+
setting << "CODE_SIGN_IDENTITY=#{Gym.config[:codesigning_identity].shellescape}"
|
65
|
+
end
|
62
66
|
setting
|
63
67
|
end
|
64
68
|
|
data/gym/lib/gym/options.rb
CHANGED
@@ -134,6 +134,11 @@ module Gym
|
|
134
134
|
description: "After building, don't archive, effectively not including -archivePath param",
|
135
135
|
type: Boolean,
|
136
136
|
optional: true),
|
137
|
+
FastlaneCore::ConfigItem.new(key: :skip_codesigning,
|
138
|
+
env_name: "GYM_SKIP_CODESIGNING",
|
139
|
+
description: "Build without codesigning",
|
140
|
+
type: Boolean,
|
141
|
+
optional: true),
|
137
142
|
# Very optional
|
138
143
|
FastlaneCore::ConfigItem.new(key: :build_path,
|
139
144
|
env_name: "GYM_BUILD_PATH",
|
@@ -12,7 +12,42 @@ module Sigh
|
|
12
12
|
Spaceship.select_team
|
13
13
|
UI.message("Successfully logged in")
|
14
14
|
|
15
|
-
|
15
|
+
case Sigh.config[:platform].to_s
|
16
|
+
when 'ios'
|
17
|
+
download_profiles(Spaceship.provisioning_profile.all(xcode: download_xcode_profiles))
|
18
|
+
xcode_profiles_downloaded?(xcode: download_xcode_profiles, supported: true)
|
19
|
+
when 'macos'
|
20
|
+
download_profiles(Spaceship.provisioning_profile.all(mac: true, xcode: download_xcode_profiles))
|
21
|
+
xcode_profiles_downloaded?(xcode: download_xcode_profiles, supported: true)
|
22
|
+
when 'tvos'
|
23
|
+
download_profiles(Spaceship.provisioning_profile.all_tvos)
|
24
|
+
xcode_profiles_downloaded?(xcode: download_xcode_profiles, supported: false)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# @param xcode [Bool] Whether or not the user passed the download_xcode_profiles flag
|
29
|
+
# @param supported [Bool] Whether or not this platform supports downloading xcode profiles at all
|
30
|
+
def xcode_profiles_downloaded?(xcode: false, supported: false)
|
31
|
+
if supported
|
32
|
+
if xcode
|
33
|
+
UI.message("This run also included all Xcode managed provisioning profiles, as you used the `--download_xcode_profiles` flag")
|
34
|
+
elsif !xcode
|
35
|
+
UI.message("All Xcode managed provisioning profiles were ignored on this, to include them use the `--download_xcode_profiles` flag")
|
36
|
+
end
|
37
|
+
|
38
|
+
elsif !supported
|
39
|
+
if xcode
|
40
|
+
UI.important("Downloading Xcode managed profiles is not supported for platform #{Sigh.config[:platform]}")
|
41
|
+
return
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# @param profiles [Array] Array of all the provisioning profiles we want to download
|
47
|
+
def download_profiles(profiles)
|
48
|
+
UI.important("No profiles available for download") if profiles.empty?
|
49
|
+
|
50
|
+
profiles.each do |profile|
|
16
51
|
if profile.valid?
|
17
52
|
UI.message("Downloading profile '#{profile.name}'...")
|
18
53
|
download_profile(profile)
|
@@ -20,19 +55,24 @@ module Sigh
|
|
20
55
|
UI.important("Skipping invalid/expired profile '#{profile.name}'")
|
21
56
|
end
|
22
57
|
end
|
23
|
-
|
24
|
-
if download_xcode_profiles
|
25
|
-
UI.message("This run also included all Xcode managed provisioning profiles, as you used the `--download_xcode_profiles` flag")
|
26
|
-
else
|
27
|
-
UI.message("All Xcode managed provisioning profiles were ignored on this, to include them use the `--download_xcode_profiles` flag")
|
28
|
-
end
|
29
58
|
end
|
30
59
|
|
60
|
+
# @param profile [ProvisioningProfile] A profile we plan to download and store
|
31
61
|
def download_profile(profile)
|
32
62
|
FileUtils.mkdir_p(Sigh.config[:output_path])
|
33
63
|
|
34
64
|
type_name = profile.class.pretty_type
|
35
|
-
profile_name = "#{type_name}_#{profile.uuid}_#{profile.app.bundle_id}
|
65
|
+
profile_name = "#{type_name}_#{profile.uuid}_#{profile.app.bundle_id}"
|
66
|
+
|
67
|
+
if Sigh.config[:platform].to_s == 'tvos'
|
68
|
+
profile_name += "_tvos"
|
69
|
+
end
|
70
|
+
|
71
|
+
if Sigh.config[:platform].to_s == 'macos'
|
72
|
+
profile_name += '.provisionprofile'
|
73
|
+
else
|
74
|
+
profile_name += '.mobileprovision'
|
75
|
+
end
|
36
76
|
|
37
77
|
output_path = File.join(Sigh.config[:output_path], profile_name)
|
38
78
|
File.open(output_path, "wb") do |f|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'territory'
|
2
2
|
require_relative 'b2b_user'
|
3
|
+
require_relative 'b2b_organization'
|
3
4
|
module Spaceship
|
4
5
|
module Tunes
|
5
6
|
class Availability < TunesBase
|
@@ -27,6 +28,9 @@ module Spaceship
|
|
27
28
|
# @return (Array of Spaceship::Tunes::B2bUser objects) A list of users
|
28
29
|
attr_accessor :b2b_users
|
29
30
|
|
31
|
+
# @return (Array of Spaceship::Tunes::B2bOrganization objects) A list of b2b orgs
|
32
|
+
attr_accessor :b2b_organizations
|
33
|
+
|
30
34
|
attr_mapping(
|
31
35
|
'theWorld' => :include_future_territories,
|
32
36
|
'preOrder.clearedForPreOrder.value' => :cleared_for_preorder,
|
@@ -47,12 +51,12 @@ module Spaceship
|
|
47
51
|
# Base::DataHash sets values for paths that don't exist
|
48
52
|
obj = self.new(
|
49
53
|
'preOrder' => {
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
54
|
+
'clearedForPreOrder' => {
|
55
|
+
'value' => false
|
56
|
+
},
|
57
|
+
'appAvailableDate' => {
|
58
|
+
'value' => nil
|
59
|
+
}
|
56
60
|
}
|
57
61
|
)
|
58
62
|
|
@@ -66,8 +70,8 @@ module Spaceship
|
|
66
70
|
obj.include_future_territories = params.fetch(:include_future_territories, true)
|
67
71
|
obj.cleared_for_preorder = params.fetch(:cleared_for_preorder, false)
|
68
72
|
obj.app_available_date = params.fetch(:app_available_date, nil)
|
69
|
-
obj.b2b_unavailable =
|
70
|
-
obj.b2b_app_enabled =
|
73
|
+
obj.b2b_unavailable = params.fetch(:b2b_unavailable, false)
|
74
|
+
obj.b2b_app_enabled = params.fetch(:b2b_app_enabled, false)
|
71
75
|
obj.educational_discount = params.fetch(:educational_discount, true)
|
72
76
|
return obj
|
73
77
|
end
|
@@ -80,6 +84,10 @@ module Spaceship
|
|
80
84
|
@b2b_users || raw_data['b2bUsers'].map { |user| B2bUser.new(user) }
|
81
85
|
end
|
82
86
|
|
87
|
+
def b2b_organizations
|
88
|
+
@b2b_organizations || raw_data['b2bOrganizations'].map { |user| B2bOrganization.new(user) }
|
89
|
+
end
|
90
|
+
|
83
91
|
def b2b_app_enabled
|
84
92
|
@b2b_app_enabled.nil? ? raw_data['b2bAppEnabled'] : @b2b_app_enabled
|
85
93
|
end
|
@@ -127,6 +135,30 @@ module Spaceship
|
|
127
135
|
|
128
136
|
return self
|
129
137
|
end
|
138
|
+
|
139
|
+
# Updates users for b2b enabled apps
|
140
|
+
def update_dep_organizations(organization_list = [])
|
141
|
+
raise "Cannot add dep organizations if b2b is not enabled" unless b2b_app_enabled
|
142
|
+
|
143
|
+
added_orgs = b2b_organizations
|
144
|
+
|
145
|
+
# Returns if list is unchanged
|
146
|
+
return self if (added_orgs - organization_list) == (organization_list - added_orgs)
|
147
|
+
|
148
|
+
orgs_to_add = organization_list.reject { |organization| added_orgs.include?(organization) }
|
149
|
+
orgs_to_remove = added_orgs.nil? ? organization_list : added_orgs.reject { |organization| organization_list.include?(organization) }
|
150
|
+
|
151
|
+
@b2b_organizations = b2b_organizations.reject { |organization| orgs_to_remove.include?(organization) }
|
152
|
+
@b2b_organizations.concat(orgs_to_add)
|
153
|
+
@b2b_organizations.concat(orgs_to_remove.map do |organization|
|
154
|
+
B2bOrganization.from_id_info(dep_id: organization.dep_customer_id,
|
155
|
+
dep_name: organization.name,
|
156
|
+
dep_org_id: organization.dep_organization_id,
|
157
|
+
type: false)
|
158
|
+
end)
|
159
|
+
|
160
|
+
return self
|
161
|
+
end
|
130
162
|
end
|
131
163
|
end
|
132
164
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative 'tunes_base'
|
2
|
+
module Spaceship
|
3
|
+
module Tunes
|
4
|
+
class B2bOrganization < TunesBase
|
5
|
+
# @return (String) add or remove
|
6
|
+
attr_accessor :type
|
7
|
+
|
8
|
+
# @return (String) customer id
|
9
|
+
attr_accessor :dep_customer_id
|
10
|
+
|
11
|
+
# @return (String) organization id
|
12
|
+
attr_accessor :dep_organization_id
|
13
|
+
|
14
|
+
# @return (String) organization name
|
15
|
+
attr_accessor :name
|
16
|
+
|
17
|
+
# enum for types
|
18
|
+
class TYPE
|
19
|
+
ADD = "ADD"
|
20
|
+
REMOVE = "REMOVE"
|
21
|
+
NO_CHANGE = "NO_CHANGE"
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_mapping(
|
25
|
+
'value.type' => :type,
|
26
|
+
'value.depCustomerId' => :dep_customer_id,
|
27
|
+
'value.organizationId' => :dep_organization_id,
|
28
|
+
'value.name' => :name
|
29
|
+
)
|
30
|
+
|
31
|
+
def self.from_id_info(dep_id: nil, dep_org_id: nil, dep_name: nil, type: TYPE::NO_CHANGE)
|
32
|
+
self.new({ "value" => { "type" => type, "depCustomerId" => dep_id, "organizationId" => dep_org_id, "name" => dep_name } })
|
33
|
+
end
|
34
|
+
|
35
|
+
def ==(other)
|
36
|
+
other.class == self.class && other.state == self.state
|
37
|
+
end
|
38
|
+
|
39
|
+
def state
|
40
|
+
return [type, dep_customer_id, name]
|
41
|
+
end
|
42
|
+
|
43
|
+
alias eql? ==
|
44
|
+
|
45
|
+
def hash
|
46
|
+
state.hash
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -718,7 +718,7 @@ module Spaceship
|
|
718
718
|
data["preOrder"]["clearedForPreOrder"] = { "value" => cleared_for_preorder, "isEditable" => true, "isRequired" => true, "errorKeys" => nil }
|
719
719
|
data["preOrder"]["appAvailableDate"] = { "value" => app_available_date, "isEditable" => true, "isRequired" => true, "errorKeys" => nil }
|
720
720
|
data["b2bUsers"] = availability.b2b_app_enabled ? availability.b2b_users.map { |user| { "value" => { "add" => user.add, "delete" => user.delete, "dsUsername" => user.ds_username } } } : []
|
721
|
-
|
721
|
+
data["b2bOrganizations"] = availability.b2b_app_enabled ? availability.b2b_organizations.map { |org| { "value" => { "type" => org.type, "depCustomerId" => org.dep_customer_id, "organizationId" => org.dep_organization_id, "name" => org.name } } } : []
|
722
722
|
# send the changes back to Apple
|
723
723
|
r = request(:post) do |req|
|
724
724
|
req.url("ra/apps/#{app_id}/pricing/intervals")
|
metadata
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.131.0.beta.20190830200038
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
-
|
9
|
-
- Aaron Brager
|
7
|
+
- Felix Krause
|
8
|
+
- Matthew Ellis
|
10
9
|
- Joshua Liebowitz
|
11
10
|
- Fumiya Nakamura
|
11
|
+
- Danielle Tomlinson
|
12
12
|
- Kohki Miki
|
13
|
-
- Jan Piotrowski
|
14
|
-
- Jimmy Dee
|
15
|
-
- Andrew McBurney
|
16
|
-
- Maksym Grebenets
|
17
13
|
- Stefan Natchev
|
18
|
-
-
|
14
|
+
- Jimmy Dee
|
15
|
+
- Luka Mirosevic
|
19
16
|
- Jérôme Lacoste
|
17
|
+
- Josh Holtz
|
18
|
+
- Maksym Grebenets
|
19
|
+
- Helmut Januschka
|
20
20
|
- Iulian Onofrei
|
21
|
-
-
|
21
|
+
- Aaron Brager
|
22
|
+
- Andrew McBurney
|
22
23
|
- Manu Wallner
|
23
|
-
-
|
24
|
-
-
|
25
|
-
-
|
26
|
-
- Josh Holtz
|
24
|
+
- Jan Piotrowski
|
25
|
+
- Jorge Revuelta H
|
26
|
+
- Olivier Halligon
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-08-
|
30
|
+
date: 2019-08-30 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1690,6 +1690,7 @@ files:
|
|
1690
1690
|
- spaceship/lib/spaceship/tunes/app_version_states_history.rb
|
1691
1691
|
- spaceship/lib/spaceship/tunes/application.rb
|
1692
1692
|
- spaceship/lib/spaceship/tunes/availability.rb
|
1693
|
+
- spaceship/lib/spaceship/tunes/b2b_organization.rb
|
1693
1694
|
- spaceship/lib/spaceship/tunes/b2b_user.rb
|
1694
1695
|
- spaceship/lib/spaceship/tunes/build.rb
|
1695
1696
|
- spaceship/lib/spaceship/tunes/build_details.rb
|
@@ -1745,24 +1746,24 @@ metadata:
|
|
1745
1746
|
post_install_message:
|
1746
1747
|
rdoc_options: []
|
1747
1748
|
require_paths:
|
1749
|
+
- deliver/lib
|
1748
1750
|
- produce/lib
|
1749
|
-
-
|
1750
|
-
-
|
1751
|
-
- pem/lib
|
1751
|
+
- precheck/lib
|
1752
|
+
- frameit/lib
|
1752
1753
|
- supply/lib
|
1754
|
+
- fastlane_core/lib
|
1755
|
+
- cert/lib
|
1756
|
+
- pilot/lib
|
1753
1757
|
- screengrab/lib
|
1754
|
-
-
|
1758
|
+
- sigh/lib
|
1755
1759
|
- scan/lib
|
1756
|
-
- cert/lib
|
1757
|
-
- fastlane/lib
|
1758
|
-
- snapshot/lib
|
1759
1760
|
- credentials_manager/lib
|
1760
|
-
-
|
1761
|
+
- gym/lib
|
1761
1762
|
- spaceship/lib
|
1762
|
-
-
|
1763
|
-
- fastlane_core/lib
|
1763
|
+
- snapshot/lib
|
1764
1764
|
- match/lib
|
1765
|
-
-
|
1765
|
+
- fastlane/lib
|
1766
|
+
- pem/lib
|
1766
1767
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1767
1768
|
requirements:
|
1768
1769
|
- - ">="
|