fastlane 2.127.0.beta.20190709200015 → 2.127.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|