fastlane 2.127.0.beta.20190709200015 → 2.127.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 +5 -5
- data/README.md +68 -68
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +10 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +5 -3
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/fastlane/swift/Gymfile.swift +1 -1
- 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_core/lib/fastlane_core/build_watcher.rb +26 -22
- data/pilot/lib/pilot/.manager.rb.swp +0 -0
- data/pilot/lib/pilot/.tester_manager.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +11 -5
- data/spaceship/lib/spaceship/connect_api.rb +29 -0
- data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +18 -3
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +2 -2
- data/spaceship/lib/spaceship/test_flight/build.rb +7 -4
- data/spaceship/lib/spaceship/test_flight/build_trains.rb +6 -2
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +3 -1
- metadata +37 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a193c8d123676ffdc211ad9104a26a1b16ebe969460f69f59636c2136498f065
|
|
4
|
+
data.tar.gz: 14a7a4349d0dac428a3e178c08b23552b6d9ae77003da419792fb10fd36ffe8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fb0b36d00458c86fcd8f6038ed99047a82d93d45dc207ca94c5fd2202c03823595972500c3813a04183f7a53c5e16101f0d124c4c0bc1d8d6a75f1fd5449043c
|
|
7
|
+
data.tar.gz: '08b5f21255635ba8fc68378349dc552fc2bc327a3a0697e87967adcb65d6eaa590285d3a46c8df891e74e9a3cdc17b5f0709eac5b8fb6695bf196496369950dc'
|
data/README.md
CHANGED
|
@@ -34,29 +34,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
34
34
|
<!-- This table is regenerated and resorted on each release -->
|
|
35
35
|
<table id='team'>
|
|
36
36
|
<tr>
|
|
37
|
-
<td id='
|
|
38
|
-
<a href='https://github.com/
|
|
39
|
-
<img src='https://github.com/
|
|
40
|
-
</a>
|
|
41
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
42
|
-
</td>
|
|
43
|
-
<td id='fumiya-nakamura'>
|
|
44
|
-
<a href='https://github.com/nafu'>
|
|
45
|
-
<img src='https://github.com/nafu.png?size=140'>
|
|
37
|
+
<td id='kohki-miki'>
|
|
38
|
+
<a href='https://github.com/giginet'>
|
|
39
|
+
<img src='https://github.com/giginet.png?size=140'>
|
|
46
40
|
</a>
|
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
41
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
48
42
|
</td>
|
|
49
|
-
<td id='
|
|
50
|
-
<a href='https://github.com/
|
|
51
|
-
<img src='https://github.com/
|
|
43
|
+
<td id='matthew-ellis'>
|
|
44
|
+
<a href='https://github.com/matthewellis'>
|
|
45
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
|
52
46
|
</a>
|
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
47
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
54
48
|
</td>
|
|
55
|
-
<td id='
|
|
56
|
-
<a href='https://github.com/
|
|
57
|
-
<img src='https://github.com/
|
|
49
|
+
<td id='andrew-mcburney'>
|
|
50
|
+
<a href='https://github.com/armcburney'>
|
|
51
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
|
58
52
|
</a>
|
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
53
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
60
54
|
</td>
|
|
61
55
|
<td id='josh-holtz'>
|
|
62
56
|
<a href='https://github.com/joshdholtz'>
|
|
@@ -64,37 +58,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
64
58
|
</a>
|
|
65
59
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
66
60
|
</td>
|
|
67
|
-
|
|
68
|
-
<
|
|
69
|
-
<
|
|
70
|
-
<a href='https://github.com/milch'>
|
|
71
|
-
<img src='https://github.com/milch.png?size=140'>
|
|
72
|
-
</a>
|
|
73
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
74
|
-
</td>
|
|
75
|
-
<td id='jorge-revuelta-h'>
|
|
76
|
-
<a href='https://github.com/minuscorp'>
|
|
77
|
-
<img src='https://github.com/minuscorp.png?size=140'>
|
|
78
|
-
</a>
|
|
79
|
-
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
80
|
-
</td>
|
|
81
|
-
<td id='matthew-ellis'>
|
|
82
|
-
<a href='https://github.com/matthewellis'>
|
|
83
|
-
<img src='https://github.com/matthewellis.png?size=140'>
|
|
84
|
-
</a>
|
|
85
|
-
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
86
|
-
</td>
|
|
87
|
-
<td id='iulian-onofrei'>
|
|
88
|
-
<a href='https://github.com/revolter'>
|
|
89
|
-
<img src='https://github.com/revolter.png?size=140'>
|
|
90
|
-
</a>
|
|
91
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
92
|
-
</td>
|
|
93
|
-
<td id='kohki-miki'>
|
|
94
|
-
<a href='https://github.com/giginet'>
|
|
95
|
-
<img src='https://github.com/giginet.png?size=140'>
|
|
61
|
+
<td id='stefan-natchev'>
|
|
62
|
+
<a href='https://github.com/snatchev'>
|
|
63
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
|
96
64
|
</a>
|
|
97
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
65
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
98
66
|
</td>
|
|
99
67
|
</tr>
|
|
100
68
|
<tr>
|
|
@@ -104,23 +72,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
104
72
|
</a>
|
|
105
73
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
106
74
|
</td>
|
|
107
|
-
<td id='andrew-mcburney'>
|
|
108
|
-
<a href='https://github.com/armcburney'>
|
|
109
|
-
<img src='https://github.com/armcburney.png?size=140'>
|
|
110
|
-
</a>
|
|
111
|
-
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
112
|
-
</td>
|
|
113
75
|
<td id='maksym-grebenets'>
|
|
114
76
|
<a href='https://github.com/mgrebenets'>
|
|
115
77
|
<img src='https://github.com/mgrebenets.png?size=140'>
|
|
116
78
|
</a>
|
|
117
79
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
118
80
|
</td>
|
|
119
|
-
<td id='
|
|
120
|
-
<a href='https://github.com/
|
|
121
|
-
<img src='https://github.com/
|
|
81
|
+
<td id='olivier-halligon'>
|
|
82
|
+
<a href='https://github.com/AliSoftware'>
|
|
83
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
|
122
84
|
</a>
|
|
123
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
85
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
86
|
+
</td>
|
|
87
|
+
<td id='felix-krause'>
|
|
88
|
+
<a href='https://github.com/KrauseFx'>
|
|
89
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
|
90
|
+
</a>
|
|
91
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
92
|
+
</td>
|
|
93
|
+
<td id='jimmy-dee'>
|
|
94
|
+
<a href='https://github.com/jdee'>
|
|
95
|
+
<img src='https://github.com/jdee.png?size=140'>
|
|
96
|
+
</a>
|
|
97
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
98
|
+
</td>
|
|
99
|
+
</tr>
|
|
100
|
+
<tr>
|
|
101
|
+
<td id='jorge-revuelta-h'>
|
|
102
|
+
<a href='https://github.com/minuscorp'>
|
|
103
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
|
104
|
+
</a>
|
|
105
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
124
106
|
</td>
|
|
125
107
|
<td id='aaron-brager'>
|
|
126
108
|
<a href='https://github.com/getaaron'>
|
|
@@ -128,13 +110,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
128
110
|
</a>
|
|
129
111
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
130
112
|
</td>
|
|
131
|
-
|
|
132
|
-
<
|
|
133
|
-
<
|
|
134
|
-
<a href='https://github.com/KrauseFx'>
|
|
135
|
-
<img src='https://github.com/KrauseFx.png?size=140'>
|
|
113
|
+
<td id='joshua-liebowitz'>
|
|
114
|
+
<a href='https://github.com/taquitos'>
|
|
115
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
|
136
116
|
</a>
|
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
117
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
138
118
|
</td>
|
|
139
119
|
<td id='helmut-januschka'>
|
|
140
120
|
<a href='https://github.com/hjanuschka'>
|
|
@@ -148,11 +128,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
148
128
|
</a>
|
|
149
129
|
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
150
130
|
</td>
|
|
151
|
-
|
|
152
|
-
<
|
|
153
|
-
<
|
|
131
|
+
</tr>
|
|
132
|
+
<tr>
|
|
133
|
+
<td id='iulian-onofrei'>
|
|
134
|
+
<a href='https://github.com/revolter'>
|
|
135
|
+
<img src='https://github.com/revolter.png?size=140'>
|
|
154
136
|
</a>
|
|
155
|
-
<h4 align='center'>
|
|
137
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
138
|
+
</td>
|
|
139
|
+
<td id='manu-wallner'>
|
|
140
|
+
<a href='https://github.com/milch'>
|
|
141
|
+
<img src='https://github.com/milch.png?size=140'>
|
|
142
|
+
</a>
|
|
143
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
144
|
+
</td>
|
|
145
|
+
<td id='fumiya-nakamura'>
|
|
146
|
+
<a href='https://github.com/nafu'>
|
|
147
|
+
<img src='https://github.com/nafu.png?size=140'>
|
|
148
|
+
</a>
|
|
149
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
156
150
|
</td>
|
|
157
151
|
<td id='jérôme-lacoste'>
|
|
158
152
|
<a href='https://github.com/lacostej'>
|
|
@@ -160,6 +154,12 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
160
154
|
</a>
|
|
161
155
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
162
156
|
</td>
|
|
157
|
+
<td id='danielle-tomlinson'>
|
|
158
|
+
<a href='https://github.com/endocrimes'>
|
|
159
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
|
160
|
+
</a>
|
|
161
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
162
|
+
</td>
|
|
163
163
|
</tr>
|
|
164
164
|
</table>
|
|
165
165
|
|
|
Binary file
|
|
Binary file
|
|
@@ -19,6 +19,7 @@ module Fastlane
|
|
|
19
19
|
command << " --reporter #{params[:reporter]}" if params[:reporter]
|
|
20
20
|
command << supported_option_switch(params, :quiet, "0.9.0", true)
|
|
21
21
|
command << supported_option_switch(params, :format, "0.11.0", true) if params[:mode] == :autocorrect
|
|
22
|
+
command << " --compiler-log-path #{params[:compiler_log_path].shellescape}" if params[:compiler_log_path]
|
|
22
23
|
|
|
23
24
|
if params[:files]
|
|
24
25
|
if version < Gem::Version.new('0.5.1')
|
|
@@ -71,7 +72,7 @@ module Fastlane
|
|
|
71
72
|
def self.available_options
|
|
72
73
|
[
|
|
73
74
|
FastlaneCore::ConfigItem.new(key: :mode,
|
|
74
|
-
description: "SwiftLint mode: :lint or :
|
|
75
|
+
description: "SwiftLint mode: :lint, :autocorrect or :analyze",
|
|
75
76
|
is_string: false,
|
|
76
77
|
default_value: :lint,
|
|
77
78
|
optional: true),
|
|
@@ -124,7 +125,14 @@ module Fastlane
|
|
|
124
125
|
default_value: false,
|
|
125
126
|
is_string: false,
|
|
126
127
|
type: Boolean,
|
|
127
|
-
optional: true)
|
|
128
|
+
optional: true),
|
|
129
|
+
FastlaneCore::ConfigItem.new(key: :compiler_log_path,
|
|
130
|
+
description: "Compiler log path when mode is :analyze",
|
|
131
|
+
is_string: true,
|
|
132
|
+
optional: true,
|
|
133
|
+
verify_block: proc do |value|
|
|
134
|
+
UI.user_error!("Couldn't find compiler_log_path '#{File.expand_path(value)}'") unless File.exist?(value)
|
|
135
|
+
end)
|
|
128
136
|
]
|
|
129
137
|
end
|
|
130
138
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.127.0
|
|
2
|
+
VERSION = '2.127.0'.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
|
|
@@ -3567,7 +3567,8 @@ func swiftlint(mode: String = "lint",
|
|
|
3567
3567
|
reporter: String? = nil,
|
|
3568
3568
|
quiet: Bool = false,
|
|
3569
3569
|
executable: String? = nil,
|
|
3570
|
-
format: Bool = false
|
|
3570
|
+
format: Bool = false,
|
|
3571
|
+
compilerLogPath: String? = nil) {
|
|
3571
3572
|
let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
|
|
3572
3573
|
RubyCommand.Argument(name: "path", value: path),
|
|
3573
3574
|
RubyCommand.Argument(name: "output_file", value: outputFile),
|
|
@@ -3578,7 +3579,8 @@ func swiftlint(mode: String = "lint",
|
|
|
3578
3579
|
RubyCommand.Argument(name: "reporter", value: reporter),
|
|
3579
3580
|
RubyCommand.Argument(name: "quiet", value: quiet),
|
|
3580
3581
|
RubyCommand.Argument(name: "executable", value: executable),
|
|
3581
|
-
RubyCommand.Argument(name: "format", value: format)
|
|
3582
|
+
RubyCommand.Argument(name: "format", value: format),
|
|
3583
|
+
RubyCommand.Argument(name: "compiler_log_path", value: compilerLogPath)])
|
|
3582
3584
|
_ = runner.executeCommand(command)
|
|
3583
3585
|
}
|
|
3584
3586
|
func syncCodeSigning(type: String = "development",
|
|
@@ -4393,4 +4395,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
|
|
|
4393
4395
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
|
4394
4396
|
// Please don't remove the lines below
|
|
4395
4397
|
// They are used to detect outdated files
|
|
4396
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
4398
|
+
// FastlaneRunnerAPIVersion [0.9.52]
|
|
Binary file
|
|
@@ -18,10 +18,16 @@ module FastlaneCore
|
|
|
18
18
|
UI.deprecated(":strict_build_watch is no longer a used argument on FastlaneCore::BuildWatcher.")
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
showed_info = false
|
|
21
22
|
loop do
|
|
22
|
-
matched_build
|
|
23
|
+
matched_build = matching_build(watched_app_version: app_version, watched_build_version: build_version, app_id: app_id, platform: platform)
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
if matched_build.nil? && !showed_info
|
|
26
|
+
UI.important("Read more information on why this build isn't showing up yet - https://github.com/fastlane/fastlane/issues/14997")
|
|
27
|
+
showed_info = true
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
report_status(build: matched_build)
|
|
25
31
|
|
|
26
32
|
if matched_build && matched_build.processed?
|
|
27
33
|
if return_spaceship_testflight_build
|
|
@@ -47,32 +53,30 @@ module FastlaneCore
|
|
|
47
53
|
watched_app_version = remove_version_leading_zeros(version: watched_app_version)
|
|
48
54
|
watched_build_version = remove_version_leading_zeros(version: watched_build_version)
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
)
|
|
61
|
-
matched_build = matched_builds.first
|
|
56
|
+
filter_platform = Spaceship::ConnectAPI::Platform.map(platform) if platform
|
|
57
|
+
matched_builds = Spaceship::ConnectAPI::Build.all(
|
|
58
|
+
app_id: app_id,
|
|
59
|
+
version: watched_app_version,
|
|
60
|
+
build_number: watched_build_version,
|
|
61
|
+
platform: filter_platform
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
if matched_builds.size > 1
|
|
65
|
+
raise "FastlaneCore::BuildWatcher found more than 1 matching build"
|
|
62
66
|
end
|
|
63
67
|
|
|
64
|
-
|
|
68
|
+
matched_build = matched_builds.first
|
|
69
|
+
|
|
70
|
+
return matched_build
|
|
65
71
|
end
|
|
66
72
|
|
|
67
|
-
def report_status(build: nil
|
|
68
|
-
if
|
|
69
|
-
UI.message("Waiting for App Store Connect to finish processing the new build (#{
|
|
70
|
-
elsif build && !build.processed?
|
|
71
|
-
UI.message("Waiting for App Store Connect to finish processing the new build (#{build.app_version} - #{build.version})")
|
|
73
|
+
def report_status(build: nil)
|
|
74
|
+
if build && !build.processed?
|
|
75
|
+
UI.message("Waiting for App Store Connect to finish processing the new build (#{build.app_version} - #{build.version}) for #{build.platform}")
|
|
72
76
|
elsif build && build.processed?
|
|
73
|
-
UI.success("Successfully finished processing the build #{build.app_version} - #{build.version}")
|
|
77
|
+
UI.success("Successfully finished processing the build #{build.app_version} - #{build.version} for #{build.platform}")
|
|
74
78
|
else
|
|
75
|
-
UI.message("
|
|
79
|
+
UI.message("Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)")
|
|
76
80
|
end
|
|
77
81
|
end
|
|
78
82
|
end
|
|
Binary file
|
|
Binary file
|
|
@@ -84,7 +84,7 @@ module Pilot
|
|
|
84
84
|
platform = fetch_app_platform
|
|
85
85
|
app_version = FastlaneCore::IpaFileAnalyser.fetch_app_version(config[:ipa])
|
|
86
86
|
app_build = FastlaneCore::IpaFileAnalyser.fetch_app_build(config[:ipa])
|
|
87
|
-
latest_build = FastlaneCore::BuildWatcher.wait_for_build_processing_to_be_complete(app_id: app.id, platform: platform,
|
|
87
|
+
latest_build = FastlaneCore::BuildWatcher.wait_for_build_processing_to_be_complete(app_id: app.id, platform: platform, app_version: app_version, build_version: app_build, poll_interval: config[:wait_processing_interval], return_spaceship_testflight_build: false)
|
|
88
88
|
|
|
89
89
|
unless latest_build.app_version == app_version && latest_build.version == app_build
|
|
90
90
|
UI.important("Uploaded app #{app_version} - #{app_build}, but received build #{latest_build.app_version} - #{latest_build.version}.")
|
|
@@ -100,7 +100,11 @@ module Pilot
|
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
# Get latest uploaded build if no build specified
|
|
103
|
-
build
|
|
103
|
+
if build.nil?
|
|
104
|
+
UI.important("No build specified - fetching latest build")
|
|
105
|
+
platform = Spaceship::ConnectAPI::Platform.map(fetch_app_platform)
|
|
106
|
+
build ||= Spaceship::ConnectAPI::Build.all(app_id: app.id, sort: "-uploadedDate", platform: platform, limit: 1).first
|
|
107
|
+
end
|
|
104
108
|
|
|
105
109
|
# Verify the build has all the includes that we need
|
|
106
110
|
# and fetch a new build if not
|
|
@@ -157,7 +161,7 @@ module Pilot
|
|
|
157
161
|
[
|
|
158
162
|
build.app_version,
|
|
159
163
|
build.version,
|
|
160
|
-
build.beta_build_metrics.map(&:install_count).reduce(:+)
|
|
164
|
+
(build.beta_build_metrics || []).map(&:install_count).reduce(:+)
|
|
161
165
|
]
|
|
162
166
|
end
|
|
163
167
|
|
|
@@ -293,7 +297,7 @@ module Pilot
|
|
|
293
297
|
UI.message("Distributing new build to testers: #{uploaded_build.app_version} - #{uploaded_build.version}")
|
|
294
298
|
|
|
295
299
|
# This is where we could add a check to see if encryption is required and has been updated
|
|
296
|
-
set_export_compliance_if_needed(uploaded_build, options)
|
|
300
|
+
uploaded_build = set_export_compliance_if_needed(uploaded_build, options)
|
|
297
301
|
|
|
298
302
|
if options[:groups] || options[:distribute_external]
|
|
299
303
|
if uploaded_build.ready_for_beta_submission?
|
|
@@ -332,7 +336,9 @@ module Pilot
|
|
|
332
336
|
|
|
333
337
|
UI.important("Export compliance has been set to '#{uses_non_exempt_encryption}'. Need to wait for build to finishing processing again...")
|
|
334
338
|
UI.important("Set 'ITSAppUsesNonExemptEncryption' in the 'Info.plist' to skip this step and speed up the submission")
|
|
335
|
-
wait_for_build_processing_to_be_complete
|
|
339
|
+
return wait_for_build_processing_to_be_complete
|
|
340
|
+
else
|
|
341
|
+
return uploaded_build
|
|
336
342
|
end
|
|
337
343
|
end
|
|
338
344
|
|
|
@@ -43,5 +43,34 @@ module Spaceship
|
|
|
43
43
|
class << self
|
|
44
44
|
attr_reader :token
|
|
45
45
|
end
|
|
46
|
+
|
|
47
|
+
# Defined in the App Store Connect API docs:
|
|
48
|
+
# https://developer.apple.com/documentation/appstoreconnectapi/platform
|
|
49
|
+
#
|
|
50
|
+
# Used for query param filters
|
|
51
|
+
module Platform
|
|
52
|
+
IOS = "IOS"
|
|
53
|
+
MAC_OS = "MAC_OS"
|
|
54
|
+
TV_OS = "TV_OS"
|
|
55
|
+
WATCH_OS = "WATCH_OS"
|
|
56
|
+
|
|
57
|
+
ALL = [IOS, MAC_OS, TV_OS, WATCH_OS]
|
|
58
|
+
|
|
59
|
+
def self.map(platform)
|
|
60
|
+
return platform if ALL.include?(platform)
|
|
61
|
+
|
|
62
|
+
# Map from fastlane input and Spaceship::TestFlight platform values
|
|
63
|
+
case platform.to_sym
|
|
64
|
+
when :appletvos
|
|
65
|
+
return Spaceship::ConnectAPI::Platform::TV_OS
|
|
66
|
+
when :osx
|
|
67
|
+
return Spaceship::ConnectAPI::Platform::MAC_OS
|
|
68
|
+
when :ios
|
|
69
|
+
return Spaceship::ConnectAPI::Platform::IOS
|
|
70
|
+
else
|
|
71
|
+
raise "Cannot find a matching platform for '#{platform}' - valid values are #{ALL.join(', ')}"
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
46
75
|
end
|
|
47
76
|
end
|
|
Binary file
|
|
@@ -69,6 +69,11 @@ module Spaceship
|
|
|
69
69
|
return app.bundle_id
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
+
def platform
|
|
73
|
+
raise "No pre_release_version included" unless pre_release_version
|
|
74
|
+
return pre_release_version.platform
|
|
75
|
+
end
|
|
76
|
+
|
|
72
77
|
def processed?
|
|
73
78
|
return processing_state != ProcessingState::PROCESSING
|
|
74
79
|
end
|
|
@@ -81,6 +86,7 @@ module Spaceship
|
|
|
81
86
|
# This is here temporarily until the removal of Spaceship::TestFlight
|
|
82
87
|
def to_testflight_build
|
|
83
88
|
h = {
|
|
89
|
+
'id' => id,
|
|
84
90
|
'buildVersion' => version,
|
|
85
91
|
'uploadDate' => uploaded_date,
|
|
86
92
|
'externalState' => processed? ? Spaceship::TestFlight::Build::BUILD_STATES[:active] : Spaceship::TestFlight::Build::BUILD_STATES[:processing],
|
|
@@ -96,14 +102,23 @@ module Spaceship
|
|
|
96
102
|
# API
|
|
97
103
|
#
|
|
98
104
|
|
|
99
|
-
def self.all(app_id: nil, version: nil, build_number: nil, includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
|
|
105
|
+
def self.all(app_id: nil, version: nil, build_number: nil, platform: nil, includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
|
|
100
106
|
resps = Spaceship::ConnectAPI.get_builds(
|
|
101
|
-
filter: { app: app_id, "preReleaseVersion.version" => version, version: build_number },
|
|
107
|
+
filter: { app: app_id, "preReleaseVersion.version" => version, version: build_number, processingState: "PROCESSING,FAILED,INVALID,VALID" },
|
|
102
108
|
includes: includes,
|
|
103
109
|
sort: sort,
|
|
104
110
|
limit: limit
|
|
105
111
|
).all_pages
|
|
106
|
-
|
|
112
|
+
models = resps.map(&:to_models).flatten
|
|
113
|
+
|
|
114
|
+
# Filtering after models are fetched since there is no way to do this in a query param filter
|
|
115
|
+
if platform
|
|
116
|
+
models = models.select do |build|
|
|
117
|
+
build.pre_release_version && build.pre_release_version.platform == platform
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
return models
|
|
107
122
|
end
|
|
108
123
|
|
|
109
124
|
def self.get(build_id: nil, includes: ESSENTIAL_INCLUDES)
|
|
@@ -228,7 +228,7 @@ module Spaceship
|
|
|
228
228
|
end
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
delete("betaTesters/#{beta_tester_id}/relationships/apps", nil, body)
|
|
231
|
+
Client.instance.delete("betaTesters/#{beta_tester_id}/relationships/apps", nil, body)
|
|
232
232
|
end
|
|
233
233
|
|
|
234
234
|
def delete_beta_tester_from_beta_groups(beta_tester_id: nil, beta_group_ids: [])
|
|
@@ -241,7 +241,7 @@ module Spaceship
|
|
|
241
241
|
end
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
-
delete("betaTesters/#{beta_tester_id}/relationships/betaGroups", nil, body)
|
|
244
|
+
Client.instance.delete("betaTesters/#{beta_tester_id}/relationships/betaGroups", nil, body)
|
|
245
245
|
end
|
|
246
246
|
|
|
247
247
|
#
|
|
@@ -217,8 +217,7 @@ module Spaceship
|
|
|
217
217
|
return if ready_to_test?
|
|
218
218
|
return if approved?
|
|
219
219
|
|
|
220
|
-
|
|
221
|
-
Spaceship::ConnectAPI.post_beta_app_review_submissions(build_id: build["id"])
|
|
220
|
+
Spaceship::ConnectAPI.post_beta_app_review_submissions(build_id: id)
|
|
222
221
|
end
|
|
223
222
|
|
|
224
223
|
def expire!
|
|
@@ -231,8 +230,12 @@ module Spaceship
|
|
|
231
230
|
|
|
232
231
|
# Bridges the TestFlight::Build to the App Store Connect API build
|
|
233
232
|
def find_app_store_connect_build
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
builds = Spaceship::ConnectAPI::Build.all(
|
|
234
|
+
app_id: app_id,
|
|
235
|
+
version: self.train_version,
|
|
236
|
+
build_number: self.build_version
|
|
237
|
+
)
|
|
238
|
+
return builds.find { |build| build.id == id }
|
|
236
239
|
end
|
|
237
240
|
end
|
|
238
241
|
end
|
|
@@ -13,8 +13,12 @@ module Spaceship::TestFlight
|
|
|
13
13
|
# See `Spaceship::TestFlight::Build#reload`
|
|
14
14
|
|
|
15
15
|
def self.all(app_id: nil, platform: nil, retry_count: 3)
|
|
16
|
-
|
|
17
|
-
connect_builds =
|
|
16
|
+
filter_platform = Spaceship::ConnectAPI::Platform.map(platform) if platform
|
|
17
|
+
connect_builds = Spaceship::ConnectAPI::Build.all(
|
|
18
|
+
app_id: app_id,
|
|
19
|
+
sort: "uploadedDate",
|
|
20
|
+
platform: filter_platform
|
|
21
|
+
)
|
|
18
22
|
|
|
19
23
|
trains = {}
|
|
20
24
|
connect_builds.each do |connect_build|
|
|
@@ -212,7 +212,9 @@ module Spaceship
|
|
|
212
212
|
|
|
213
213
|
maskings_count = number_with_dialcode_masked.count('•') # => 9 or 8
|
|
214
214
|
pattern = /^([0-9+]{2,4})([•]{#{maskings_count}})([0-9]{2})$/
|
|
215
|
-
|
|
215
|
+
# following regex: range from maskings_count-2 because sometimes the masked number has 1 or 2 dots more than the actual number
|
|
216
|
+
# e.g. https://github.com/fastlane/fastlane/issues/14969
|
|
217
|
+
replacement = "\\1([0-9]{#{maskings_count - 2},#{maskings_count}})\\3"
|
|
216
218
|
number_with_dialcode_regex_part = number_with_dialcode_masked.gsub(pattern, replacement)
|
|
217
219
|
# => +49([0-9]{8,9})85 or +1([0-9]{7,8})66
|
|
218
220
|
|
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.127.0
|
|
4
|
+
version: 2.127.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Matthew Ellis
|
|
8
|
-
- Helmut Januschka
|
|
9
|
-
- Jérôme Lacoste
|
|
10
|
-
- Felix Krause
|
|
11
|
-
- Jorge Revuelta H
|
|
12
7
|
- Kohki Miki
|
|
8
|
+
- Jan Piotrowski
|
|
13
9
|
- Iulian Onofrei
|
|
14
|
-
-
|
|
15
|
-
-
|
|
10
|
+
- Danielle Tomlinson
|
|
11
|
+
- Felix Krause
|
|
12
|
+
- Matthew Ellis
|
|
13
|
+
- Jérôme Lacoste
|
|
16
14
|
- Joshua Liebowitz
|
|
17
|
-
-
|
|
15
|
+
- Stefan Natchev
|
|
16
|
+
- Josh Holtz
|
|
17
|
+
- Luka Mirosevic
|
|
18
|
+
- Helmut Januschka
|
|
18
19
|
- Maksym Grebenets
|
|
19
|
-
-
|
|
20
|
+
- Aaron Brager
|
|
20
21
|
- Manu Wallner
|
|
22
|
+
- Olivier Halligon
|
|
23
|
+
- Andrew McBurney
|
|
21
24
|
- Fumiya Nakamura
|
|
22
|
-
- Jan Piotrowski
|
|
23
25
|
- Jimmy Dee
|
|
24
|
-
-
|
|
25
|
-
- Aaron Brager
|
|
26
|
-
- Luka Mirosevic
|
|
26
|
+
- Jorge Revuelta H
|
|
27
27
|
autorequire:
|
|
28
28
|
bindir: bin
|
|
29
29
|
cert_chain: []
|
|
30
|
-
date: 2019-07-
|
|
30
|
+
date: 2019-07-10 00:00:00.000000000 Z
|
|
31
31
|
dependencies:
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: slack-notifier
|
|
@@ -980,6 +980,8 @@ files:
|
|
|
980
980
|
- fastlane/lib/fastlane.rb
|
|
981
981
|
- fastlane/lib/fastlane/action.rb
|
|
982
982
|
- fastlane/lib/fastlane/action_collector.rb
|
|
983
|
+
- fastlane/lib/fastlane/actions/.slack.rb.swp
|
|
984
|
+
- fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
|
|
983
985
|
- fastlane/lib/fastlane/actions/README.md
|
|
984
986
|
- fastlane/lib/fastlane/actions/actions_helper.rb
|
|
985
987
|
- fastlane/lib/fastlane/actions/adb.rb
|
|
@@ -1304,6 +1306,7 @@ files:
|
|
|
1304
1306
|
- fastlane/swift/Fastlane.swift
|
|
1305
1307
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
|
|
1306
1308
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
|
1309
|
+
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
|
|
1307
1310
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
|
|
1308
1311
|
- fastlane/swift/FastlaneSwiftRunner/README.txt
|
|
1309
1312
|
- fastlane/swift/Gymfile.swift
|
|
@@ -1456,6 +1459,8 @@ files:
|
|
|
1456
1459
|
- pem/lib/pem/options.rb
|
|
1457
1460
|
- pilot/README.md
|
|
1458
1461
|
- pilot/lib/pilot.rb
|
|
1462
|
+
- pilot/lib/pilot/.manager.rb.swp
|
|
1463
|
+
- pilot/lib/pilot/.tester_manager.rb.swp
|
|
1459
1464
|
- pilot/lib/pilot/build_manager.rb
|
|
1460
1465
|
- pilot/lib/pilot/commands_generator.rb
|
|
1461
1466
|
- pilot/lib/pilot/features.rb
|
|
@@ -1587,6 +1592,7 @@ files:
|
|
|
1587
1592
|
- spaceship/lib/spaceship/client.rb
|
|
1588
1593
|
- spaceship/lib/spaceship/commands_generator.rb
|
|
1589
1594
|
- spaceship/lib/spaceship/connect_api.rb
|
|
1595
|
+
- spaceship/lib/spaceship/connect_api/.DS_Store
|
|
1590
1596
|
- spaceship/lib/spaceship/connect_api/client.rb
|
|
1591
1597
|
- spaceship/lib/spaceship/connect_api/model.rb
|
|
1592
1598
|
- spaceship/lib/spaceship/connect_api/models/app.rb
|
|
@@ -1735,24 +1741,24 @@ metadata:
|
|
|
1735
1741
|
post_install_message:
|
|
1736
1742
|
rdoc_options: []
|
|
1737
1743
|
require_paths:
|
|
1738
|
-
- scan/lib
|
|
1739
|
-
- spaceship/lib
|
|
1740
1744
|
- credentials_manager/lib
|
|
1741
|
-
-
|
|
1742
|
-
-
|
|
1745
|
+
- pem/lib
|
|
1746
|
+
- snapshot/lib
|
|
1747
|
+
- frameit/lib
|
|
1748
|
+
- match/lib
|
|
1743
1749
|
- fastlane_core/lib
|
|
1750
|
+
- deliver/lib
|
|
1751
|
+
- scan/lib
|
|
1752
|
+
- supply/lib
|
|
1753
|
+
- cert/lib
|
|
1754
|
+
- fastlane/lib
|
|
1755
|
+
- spaceship/lib
|
|
1756
|
+
- pilot/lib
|
|
1757
|
+
- gym/lib
|
|
1744
1758
|
- precheck/lib
|
|
1745
|
-
- frameit/lib
|
|
1746
1759
|
- screengrab/lib
|
|
1760
|
+
- sigh/lib
|
|
1747
1761
|
- produce/lib
|
|
1748
|
-
- pem/lib
|
|
1749
|
-
- cert/lib
|
|
1750
|
-
- gym/lib
|
|
1751
|
-
- supply/lib
|
|
1752
|
-
- match/lib
|
|
1753
|
-
- pilot/lib
|
|
1754
|
-
- snapshot/lib
|
|
1755
|
-
- deliver/lib
|
|
1756
1762
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
1757
1763
|
requirements:
|
|
1758
1764
|
- - ">="
|
|
@@ -1760,12 +1766,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1760
1766
|
version: 2.0.0
|
|
1761
1767
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1762
1768
|
requirements:
|
|
1763
|
-
- - "
|
|
1769
|
+
- - ">="
|
|
1764
1770
|
- !ruby/object:Gem::Version
|
|
1765
|
-
version:
|
|
1771
|
+
version: '0'
|
|
1766
1772
|
requirements: []
|
|
1767
|
-
|
|
1768
|
-
rubygems_version: 2.6.8
|
|
1773
|
+
rubygems_version: 3.0.3
|
|
1769
1774
|
signing_key:
|
|
1770
1775
|
specification_version: 4
|
|
1771
1776
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|