fastlane 2.157.4 → 2.158.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +76 -76
- data/deliver/lib/deliver/runner.rb +2 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +8 -2
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +5 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/precheck/lib/precheck/options.rb +9 -0
- data/precheck/lib/precheck/rule_processor.rb +94 -60
- data/precheck/lib/precheck/runner.rb +6 -4
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +21 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +12 -0
- metadata +16 -17
- data/fastlane/lib/fastlane/actions/.ensure_git_status_clean.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 788ea487bca43498edde1360e40fe59761bc470b5028f3b7f6bcccf25f8348a9
|
4
|
+
data.tar.gz: 7333608271e41308100b68c9c56d572751b07feeed59d45ee72f0e972eff296d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d173dc0f428264f2eaba63baf543e849525871cf7981f769fa72aa1ee8896b0b042b262ef0a0d3687423892ae9d2cfd5e28487100a887d78b703af83f847de2
|
7
|
+
data.tar.gz: ecfee323ba2035466bbb7efa6fd34a3af1339046ddc93f13de6a88dae9d65b4a65960bed69baa08b738e193cd050e66363699e682f051e0e4e5b5ab38a176007
|
data/README.md
CHANGED
@@ -34,35 +34,35 @@ 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/
|
37
|
+
<td id='felix-krause'>
|
38
|
+
<a href='https://github.com/KrauseFx'>
|
39
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='olivier-halligon'>
|
44
|
+
<a href='https://github.com/AliSoftware'>
|
45
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='danielle-tomlinson'>
|
50
|
+
<a href='https://github.com/endocrimes'>
|
51
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
54
54
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
55
|
+
<td id='luka-mirosevic'>
|
56
|
+
<a href='https://github.com/lmirosevic'>
|
57
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
58
58
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
60
60
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
61
|
+
<td id='kohki-miki'>
|
62
|
+
<a href='https://github.com/giginet'>
|
63
|
+
<img src='https://github.com/giginet.png?size=140'>
|
64
64
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
65
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
66
66
|
</td>
|
67
67
|
</tr>
|
68
68
|
<tr>
|
@@ -72,11 +72,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
72
72
|
</a>
|
73
73
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
74
74
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
75
|
+
<td id='andrew-mcburney'>
|
76
|
+
<a href='https://github.com/armcburney'>
|
77
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
78
78
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
80
|
+
</td>
|
81
|
+
<td id='jorge-revuelta-h'>
|
82
|
+
<a href='https://github.com/minuscorp'>
|
83
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
84
|
+
</a>
|
85
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
80
86
|
</td>
|
81
87
|
<td id='joshua-liebowitz'>
|
82
88
|
<a href='https://github.com/taquitos'>
|
@@ -84,31 +90,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
84
90
|
</a>
|
85
91
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
86
92
|
</td>
|
87
|
-
<td id='
|
88
|
-
<a href='https://github.com/
|
89
|
-
<img src='https://github.com/
|
90
|
-
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
92
|
-
</td>
|
93
|
-
<td id='luka-mirosevic'>
|
94
|
-
<a href='https://github.com/lmirosevic'>
|
95
|
-
<img src='https://github.com/lmirosevic.png?size=140'>
|
93
|
+
<td id='jimmy-dee'>
|
94
|
+
<a href='https://github.com/jdee'>
|
95
|
+
<img src='https://github.com/jdee.png?size=140'>
|
96
96
|
</a>
|
97
|
-
<h4 align='center'
|
97
|
+
<h4 align='center'>Jimmy Dee</h4>
|
98
98
|
</td>
|
99
99
|
</tr>
|
100
100
|
<tr>
|
101
|
-
<td id='
|
102
|
-
<a href='https://github.com/
|
103
|
-
<img src='https://github.com/
|
101
|
+
<td id='stefan-natchev'>
|
102
|
+
<a href='https://github.com/snatchev'>
|
103
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
104
104
|
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
106
106
|
</td>
|
107
|
-
<td id='
|
108
|
-
<a href='https://github.com/
|
109
|
-
<img src='https://github.com/
|
107
|
+
<td id='jan-piotrowski'>
|
108
|
+
<a href='https://github.com/janpio'>
|
109
|
+
<img src='https://github.com/janpio.png?size=140'>
|
110
110
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
112
112
|
</td>
|
113
113
|
<td id='maksym-grebenets'>
|
114
114
|
<a href='https://github.com/mgrebenets'>
|
@@ -116,37 +116,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
116
116
|
</a>
|
117
117
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
118
118
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
119
|
+
<td id='max-ott'>
|
120
|
+
<a href='https://github.com/max-ott'>
|
121
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
122
122
|
</a>
|
123
|
-
<h4 align='center'>
|
123
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
124
124
|
</td>
|
125
|
-
<td id='
|
126
|
-
<a href='https://github.com/
|
127
|
-
<img src='https://github.com/
|
125
|
+
<td id='jérôme-lacoste'>
|
126
|
+
<a href='https://github.com/lacostej'>
|
127
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
128
128
|
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
129
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
130
130
|
</td>
|
131
131
|
</tr>
|
132
132
|
<tr>
|
133
|
-
<td id='
|
134
|
-
<a href='https://github.com/
|
135
|
-
<img src='https://github.com/
|
136
|
-
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
138
|
-
</td>
|
139
|
-
<td id='danielle-tomlinson'>
|
140
|
-
<a href='https://github.com/endocrimes'>
|
141
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
133
|
+
<td id='matthew-ellis'>
|
134
|
+
<a href='https://github.com/matthewellis'>
|
135
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
142
136
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
144
138
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
139
|
+
<td id='fumiya-nakamura'>
|
140
|
+
<a href='https://github.com/nafu'>
|
141
|
+
<img src='https://github.com/nafu.png?size=140'>
|
148
142
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
150
144
|
</td>
|
151
145
|
<td id='daniel-jankowski'>
|
152
146
|
<a href='https://github.com/mollyIV'>
|
@@ -154,25 +148,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
154
148
|
</a>
|
155
149
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
156
150
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
151
|
+
<td id='manu-wallner'>
|
152
|
+
<a href='https://github.com/milch'>
|
153
|
+
<img src='https://github.com/milch.png?size=140'>
|
160
154
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
156
|
+
</td>
|
157
|
+
<td id='helmut-januschka'>
|
158
|
+
<a href='https://github.com/hjanuschka'>
|
159
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
162
162
|
</td>
|
163
163
|
</tr>
|
164
164
|
<tr>
|
165
|
-
<td id='
|
166
|
-
<a href='https://github.com/
|
167
|
-
<img src='https://github.com/
|
165
|
+
<td id='iulian-onofrei'>
|
166
|
+
<a href='https://github.com/revolter'>
|
167
|
+
<img src='https://github.com/revolter.png?size=140'>
|
168
168
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
170
170
|
</td>
|
171
|
-
<td id='
|
172
|
-
<a href='https://github.com/
|
173
|
-
<img src='https://github.com/
|
171
|
+
<td id='josh-holtz'>
|
172
|
+
<a href='https://github.com/joshdholtz'>
|
173
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
@@ -68,7 +68,8 @@ module Deliver
|
|
68
68
|
default_rule_level: options[:precheck_default_rule_level],
|
69
69
|
include_in_app_purchases: options[:precheck_include_in_app_purchases],
|
70
70
|
app_identifier: options[:app_identifier],
|
71
|
-
username: options[:username]
|
71
|
+
username: options[:username],
|
72
|
+
platform: options[:platform]
|
72
73
|
}
|
73
74
|
|
74
75
|
precheck_config = FastlaneCore::Configuration.create(Precheck::Options.available_options, precheck_options)
|
@@ -1952,6 +1952,7 @@ func chatwork(apiToken: String,
|
|
1952
1952
|
- username: Your Apple ID Username
|
1953
1953
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
1954
1954
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
1955
|
+
- platform: The platform to use (optional)
|
1955
1956
|
- defaultRuleLevel: The default rule level unless otherwise configured
|
1956
1957
|
- includeInAppPurchases: Should check in-app purchases?
|
1957
1958
|
- negativeAppleSentiment: mentioning in a way that could be considered negative
|
@@ -1973,6 +1974,7 @@ func checkAppStoreMetadata(appIdentifier: String,
|
|
1973
1974
|
username: String,
|
1974
1975
|
teamId: String? = nil,
|
1975
1976
|
teamName: String? = nil,
|
1977
|
+
platform: String = "ios",
|
1976
1978
|
defaultRuleLevel: Any = "error",
|
1977
1979
|
includeInAppPurchases: Bool = true,
|
1978
1980
|
negativeAppleSentiment: Any? = nil,
|
@@ -1990,6 +1992,7 @@ func checkAppStoreMetadata(appIdentifier: String,
|
|
1990
1992
|
RubyCommand.Argument(name: "username", value: username),
|
1991
1993
|
RubyCommand.Argument(name: "team_id", value: teamId),
|
1992
1994
|
RubyCommand.Argument(name: "team_name", value: teamName),
|
1995
|
+
RubyCommand.Argument(name: "platform", value: platform),
|
1993
1996
|
RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
|
1994
1997
|
RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
|
1995
1998
|
RubyCommand.Argument(name: "negative_apple_sentiment", value: negativeAppleSentiment),
|
@@ -5470,6 +5473,7 @@ func podioItem(clientId: String,
|
|
5470
5473
|
- username: Your Apple ID Username
|
5471
5474
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
5472
5475
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
5476
|
+
- platform: The platform to use (optional)
|
5473
5477
|
- defaultRuleLevel: The default rule level unless otherwise configured
|
5474
5478
|
- includeInAppPurchases: Should check in-app purchases?
|
5475
5479
|
- freeStuffInIap: using text indicating that your IAP is free
|
@@ -5482,6 +5486,7 @@ func precheck(appIdentifier: Any = precheckfile.appIdentifier,
|
|
5482
5486
|
username: Any = precheckfile.username,
|
5483
5487
|
teamId: Any? = precheckfile.teamId,
|
5484
5488
|
teamName: Any? = precheckfile.teamName,
|
5489
|
+
platform: Any = precheckfile.platform,
|
5485
5490
|
defaultRuleLevel: Any = precheckfile.defaultRuleLevel,
|
5486
5491
|
includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
|
5487
5492
|
freeStuffInIap: Any? = precheckfile.freeStuffInIap)
|
@@ -5490,6 +5495,7 @@ func precheck(appIdentifier: Any = precheckfile.appIdentifier,
|
|
5490
5495
|
RubyCommand.Argument(name: "username", value: username),
|
5491
5496
|
RubyCommand.Argument(name: "team_id", value: teamId),
|
5492
5497
|
RubyCommand.Argument(name: "team_name", value: teamName),
|
5498
|
+
RubyCommand.Argument(name: "platform", value: platform),
|
5493
5499
|
RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
|
5494
5500
|
RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
|
5495
5501
|
RubyCommand.Argument(name: "free_stuff_in_iap", value: freeStuffInIap)])
|
@@ -9118,7 +9124,7 @@ func xcov(workspace: String? = nil,
|
|
9118
9124
|
coverallsServiceJobId: String? = nil,
|
9119
9125
|
coverallsRepoToken: String? = nil,
|
9120
9126
|
xcconfig: String? = nil,
|
9121
|
-
ideFoundationPath: String = "/Applications/Xcode
|
9127
|
+
ideFoundationPath: String = "/Applications/Xcode.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
9122
9128
|
legacySupport: Bool = false)
|
9123
9129
|
{
|
9124
9130
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
@@ -9264,4 +9270,4 @@ let snapshotfile = Snapshotfile()
|
|
9264
9270
|
|
9265
9271
|
// Please don't remove the lines below
|
9266
9272
|
// They are used to detect outdated files
|
9267
|
-
// FastlaneRunnerAPIVersion [0.9.
|
9273
|
+
// FastlaneRunnerAPIVersion [0.9.93]
|
@@ -11,6 +11,9 @@ protocol PrecheckfileProtocol: class {
|
|
11
11
|
/// The name of your App Store Connect team if you're in multiple teams
|
12
12
|
var teamName: String? { get }
|
13
13
|
|
14
|
+
/// The platform to use (optional)
|
15
|
+
var platform: String { get }
|
16
|
+
|
14
17
|
/// The default rule level unless otherwise configured
|
15
18
|
var defaultRuleLevel: String { get }
|
16
19
|
|
@@ -26,6 +29,7 @@ extension PrecheckfileProtocol {
|
|
26
29
|
var username: String { return "" }
|
27
30
|
var teamId: String? { return nil }
|
28
31
|
var teamName: String? { return nil }
|
32
|
+
var platform: String { return "ios" }
|
29
33
|
var defaultRuleLevel: String { return "error" }
|
30
34
|
var includeInAppPurchases: Bool { return true }
|
31
35
|
var freeStuffInIap: String? { return nil }
|
@@ -33,4 +37,4 @@ extension PrecheckfileProtocol {
|
|
33
37
|
|
34
38
|
// Please don't remove the lines below
|
35
39
|
// They are used to detect outdated files
|
36
|
-
// FastlaneRunnerAPIVersion [0.9.
|
40
|
+
// FastlaneRunnerAPIVersion [0.9.36]
|
@@ -60,6 +60,15 @@ module Precheck
|
|
60
60
|
verify_block: proc do |value|
|
61
61
|
ENV["FASTLANE_ITC_TEAM_NAME"] = value.to_s
|
62
62
|
end),
|
63
|
+
FastlaneCore::ConfigItem.new(key: :platform,
|
64
|
+
short_option: "-j",
|
65
|
+
env_name: "PRECHECK_PLATFORM",
|
66
|
+
description: "The platform to use (optional)",
|
67
|
+
optional: true,
|
68
|
+
default_value: "ios",
|
69
|
+
verify_block: proc do |value|
|
70
|
+
UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
|
71
|
+
end),
|
63
72
|
FastlaneCore::ConfigItem.new(key: :default_rule_level,
|
64
73
|
short_option: "-r",
|
65
74
|
env_name: "PRECHECK_DEFAULT_RULE_LEVEL",
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spaceship/tunes/language_item'
|
2
|
+
require 'spaceship/tunes/iap_list'
|
2
3
|
require 'fastlane/markdown_table_formatter'
|
3
4
|
|
4
5
|
require_relative 'module'
|
@@ -43,8 +44,8 @@ module Precheck
|
|
43
44
|
class RuleProcessor
|
44
45
|
def self.process_app_and_version(app: nil, app_version: nil, rules: nil)
|
45
46
|
items_to_check = []
|
46
|
-
items_to_check +=
|
47
|
-
items_to_check +=
|
47
|
+
items_to_check += generate_app_items_to_check(app: app)
|
48
|
+
items_to_check += generate_version_items_to_check(app_version: app_version)
|
48
49
|
|
49
50
|
return process_rules(items_to_check: items_to_check, rules: rules)
|
50
51
|
end
|
@@ -125,66 +126,41 @@ module Precheck
|
|
125
126
|
return rule_hash
|
126
127
|
end
|
127
128
|
|
128
|
-
def self.
|
129
|
+
def self.generate_app_items_to_check(app: nil)
|
129
130
|
items = []
|
130
|
-
items += collect_urls_from_hash(hash: app_version.support_url,
|
131
|
-
item_name: :support_url,
|
132
|
-
friendly_name_postfix: "support URL")
|
133
|
-
items += collect_urls_from_hash(hash: app_version.marketing_url,
|
134
|
-
item_name: :marketing_url,
|
135
|
-
friendly_name_postfix: "marketing URL",
|
136
|
-
is_optional: true)
|
137
|
-
|
138
|
-
items += collect_urls_from_hash(hash: app.details.privacy_url,
|
139
|
-
item_name: :privacy_url,
|
140
|
-
friendly_name_postfix: "privacy URL",
|
141
|
-
is_optional: true)
|
142
|
-
return items
|
143
|
-
end
|
144
131
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
132
|
+
# App info localizations
|
133
|
+
app_info = app.fetch_edit_app_info
|
134
|
+
app_info_localizations = app_info.get_app_info_localizations
|
135
|
+
app_info_localizations.each do |localization|
|
136
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
137
|
+
value: localization.name,
|
138
|
+
item_name: :app_name,
|
139
|
+
friendly_name_postfix: "app name")
|
140
|
+
|
141
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
142
|
+
value: localization.subtitle,
|
143
|
+
item_name: :app_subtitle,
|
144
|
+
friendly_name_postfix: "app name subtitle",
|
145
|
+
is_optional: true)
|
146
|
+
|
147
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
148
|
+
value: localization.privacy_policy_text,
|
149
|
+
item_name: :privacy_policy_text,
|
150
|
+
friendly_name_postfix: " tv privacy policy")
|
151
|
+
|
152
|
+
items << collect_urls_from_language_item(locale: localization.locale,
|
153
|
+
value: localization.privacy_policy_url,
|
154
|
+
item_name: :privacy_policy_url,
|
155
|
+
friendly_name_postfix: "privacy URL",
|
156
|
+
is_optional: true)
|
149
157
|
end
|
150
|
-
return items
|
151
|
-
end
|
152
|
-
|
153
|
-
def self.generate_text_items_to_check(app: nil, app_version: nil)
|
154
|
-
items = []
|
155
|
-
|
156
|
-
items << TextItemToCheck.new(app_version.copyright, :copyright, "copyright")
|
157
|
-
|
158
|
-
items += collect_text_items_from_language_item(hash: app_version.keywords,
|
159
|
-
item_name: :keywords,
|
160
|
-
friendly_name_postfix: "keywords")
|
161
|
-
|
162
|
-
items += collect_text_items_from_language_item(hash: app_version.description,
|
163
|
-
item_name: :description,
|
164
|
-
friendly_name_postfix: "description")
|
165
|
-
|
166
|
-
items += collect_text_items_from_language_item(hash: app_version.release_notes,
|
167
|
-
item_name: :release_notes,
|
168
|
-
friendly_name_postfix: "release notes")
|
169
|
-
|
170
|
-
items += collect_text_items_from_language_item(hash: app.details.name,
|
171
|
-
item_name: :app_name,
|
172
|
-
friendly_name_postfix: "app name")
|
173
|
-
|
174
|
-
items += collect_text_items_from_language_item(hash: app.details.apple_tv_privacy_policy,
|
175
|
-
item_name: :app_subtitle,
|
176
|
-
friendly_name_postfix: " tv privacy policy")
|
177
|
-
|
178
|
-
items += collect_text_items_from_language_item(hash: app.details.subtitle,
|
179
|
-
item_name: :app_subtitle,
|
180
|
-
friendly_name_postfix: "app name subtitle",
|
181
|
-
is_optional: true)
|
182
158
|
|
183
159
|
should_include_iap = Precheck.config[:include_in_app_purchases]
|
184
160
|
if should_include_iap
|
185
161
|
UI.message("Reading in-app purchases. If you have a lot, this might take a while")
|
186
162
|
UI.message("You can disable IAP checking by setting the `include_in_app_purchases` flag to `false`")
|
187
|
-
in_app_purchases = app.
|
163
|
+
in_app_purchases = get_iaps(app_id: app.id)
|
188
164
|
in_app_purchases ||= []
|
189
165
|
in_app_purchases.each do |purchase|
|
190
166
|
items += collect_iap_language_items(purchase_edit_versions: purchase.edit.versions)
|
@@ -195,6 +171,64 @@ module Precheck
|
|
195
171
|
return items
|
196
172
|
end
|
197
173
|
|
174
|
+
def self.generate_version_items_to_check(app_version: nil)
|
175
|
+
items = []
|
176
|
+
|
177
|
+
items << TextItemToCheck.new(app_version.copyright, :copyright, "copyright")
|
178
|
+
|
179
|
+
# Version localizations
|
180
|
+
version_localizations = app_version.get_app_store_version_localizations
|
181
|
+
version_localizations.each do |localization|
|
182
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
183
|
+
value: localization.keywords,
|
184
|
+
item_name: :keywords,
|
185
|
+
friendly_name_postfix: "keywords")
|
186
|
+
|
187
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
188
|
+
value: localization.description,
|
189
|
+
item_name: :description,
|
190
|
+
friendly_name_postfix: "description")
|
191
|
+
|
192
|
+
items << collect_text_items_from_language_item(locale: localization.locale,
|
193
|
+
value: localization.whats_new,
|
194
|
+
item_name: :release_notes,
|
195
|
+
friendly_name_postfix: "what's new")
|
196
|
+
|
197
|
+
items << collect_urls_from_language_item(locale: localization.locale,
|
198
|
+
value: localization.support_url,
|
199
|
+
item_name: :support_url,
|
200
|
+
friendly_name_postfix: "support URL")
|
201
|
+
|
202
|
+
items << collect_urls_from_language_item(locale: localization.locale,
|
203
|
+
value: localization.marketing_url,
|
204
|
+
item_name: :marketing_url,
|
205
|
+
friendly_name_postfix: "marketing URL",
|
206
|
+
is_optional: true)
|
207
|
+
end
|
208
|
+
|
209
|
+
return items
|
210
|
+
end
|
211
|
+
|
212
|
+
# As of 2020-09-04, this is the only non App Store Connect call in prechecks
|
213
|
+
# This will need to get replaced when the API becomes available
|
214
|
+
def self.get_iaps(app_id: nil, include_deleted: false)
|
215
|
+
r = Spaceship::Tunes.client.iaps(app_id: app_id)
|
216
|
+
return_iaps = []
|
217
|
+
r.each do |product|
|
218
|
+
attrs = product
|
219
|
+
|
220
|
+
# This is not great but Spaceship::Tunes::IAPList.factory looks
|
221
|
+
# for `application.apple_id`
|
222
|
+
mock_application = OpenStruct.new({ apple_id: app_id })
|
223
|
+
attrs[:application] = mock_application
|
224
|
+
|
225
|
+
loaded_iap = Spaceship::Tunes::IAPList.factory(attrs)
|
226
|
+
next if loaded_iap.status == "deleted" && !include_deleted
|
227
|
+
return_iaps << loaded_iap
|
228
|
+
end
|
229
|
+
return return_iaps
|
230
|
+
end
|
231
|
+
|
198
232
|
def self.collect_iap_language_items(purchase_edit_versions: nil, is_optional: false)
|
199
233
|
items = []
|
200
234
|
purchase_edit_versions.each do |language_key, hash|
|
@@ -207,12 +241,12 @@ module Precheck
|
|
207
241
|
end
|
208
242
|
|
209
243
|
# a few attributes are LanguageItem this method creates a TextItemToCheck for each pair
|
210
|
-
def self.collect_text_items_from_language_item(
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
return
|
244
|
+
def self.collect_text_items_from_language_item(locale: nil, value: nil, item_name: nil, friendly_name_postfix: nil, is_optional: false)
|
245
|
+
return TextItemToCheck.new(value, item_name, "#{friendly_name_postfix}: (#{locale})", is_optional)
|
246
|
+
end
|
247
|
+
|
248
|
+
def self.collect_urls_from_language_item(locale: nil, value: nil, item_name: nil, friendly_name_postfix: nil, is_optional: false)
|
249
|
+
return URLItemToCheck.new(value, item_name, "#{friendly_name_postfix}: (#{locale})", is_optional)
|
216
250
|
end
|
217
251
|
end
|
218
252
|
end
|
@@ -19,9 +19,10 @@ module Precheck
|
|
19
19
|
title: "Summary for precheck #{Fastlane::VERSION}")
|
20
20
|
|
21
21
|
unless Spaceship::Tunes.client
|
22
|
+
# Team selection passed though FASTLANE_ITC_TEAM_ID and FASTLANE_ITC_TEAM_NAME environment variables
|
23
|
+
# Prompts select team if multiple teams and none specified
|
22
24
|
UI.message("Starting login with user '#{Precheck.config[:username]}'")
|
23
|
-
Spaceship::
|
24
|
-
Spaceship::Tunes.select_team
|
25
|
+
Spaceship::ConnectAPI.login(Precheck.config[:username], use_portal: false, use_tunes: true)
|
25
26
|
|
26
27
|
UI.message("Successfully logged in")
|
27
28
|
end
|
@@ -160,11 +161,12 @@ module Precheck
|
|
160
161
|
end
|
161
162
|
|
162
163
|
def app
|
163
|
-
Spaceship::
|
164
|
+
Spaceship::ConnectAPI::App.find(Precheck.config[:app_identifier])
|
164
165
|
end
|
165
166
|
|
166
167
|
def latest_app_version
|
167
|
-
|
168
|
+
platform = Spaceship::ConnectAPI::Platform.map(Precheck.config[:platform])
|
169
|
+
@latest_version ||= app.get_edit_app_store_version(platform: platform)
|
168
170
|
end
|
169
171
|
|
170
172
|
# Makes sure the current App ID exists. If not, it will show an appropriate error message
|
@@ -11,6 +11,9 @@ module Spaceship
|
|
11
11
|
|
12
12
|
module PhasedReleaseState
|
13
13
|
INACTIVE = "INACTIVE"
|
14
|
+
ACTIVE = "ACTIVE"
|
15
|
+
PAUSED = "PAUSED"
|
16
|
+
COMPLETE = "COMPLETE"
|
14
17
|
end
|
15
18
|
|
16
19
|
attr_mapping({
|
@@ -28,9 +31,27 @@ module Spaceship
|
|
28
31
|
# API
|
29
32
|
#
|
30
33
|
|
34
|
+
def pause
|
35
|
+
update(PhasedReleaseState::PAUSED)
|
36
|
+
end
|
37
|
+
|
38
|
+
def resume
|
39
|
+
update(PhasedReleaseState::ACTIVE)
|
40
|
+
end
|
41
|
+
|
42
|
+
def complete
|
43
|
+
update(PhasedReleaseState::COMPLETE)
|
44
|
+
end
|
45
|
+
|
31
46
|
def delete!(filter: {}, includes: nil, limit: nil, sort: nil)
|
32
47
|
Spaceship::ConnectAPI.delete_app_store_version_phased_release(app_store_version_phased_release_id: id)
|
33
48
|
end
|
49
|
+
|
50
|
+
private def update(state)
|
51
|
+
Spaceship::ConnectAPI.patch_app_store_version_phased_release(app_store_version_phased_release_id: id, attributes: {
|
52
|
+
phasedReleaseState: state
|
53
|
+
}).to_models.first
|
54
|
+
end
|
34
55
|
end
|
35
56
|
end
|
36
57
|
end
|
@@ -710,6 +710,18 @@ module Spaceship
|
|
710
710
|
tunes_request_client.post("appStoreVersionPhasedReleases", body)
|
711
711
|
end
|
712
712
|
|
713
|
+
def patch_app_store_version_phased_release(app_store_version_phased_release_id: nil, attributes: {})
|
714
|
+
body = {
|
715
|
+
data: {
|
716
|
+
type: "appStoreVersionPhasedReleases",
|
717
|
+
attributes: attributes,
|
718
|
+
id: app_store_version_phased_release_id
|
719
|
+
}
|
720
|
+
}
|
721
|
+
|
722
|
+
tunes_request_client.patch("appStoreVersionPhasedReleases/#{app_store_version_phased_release_id}", body)
|
723
|
+
end
|
724
|
+
|
713
725
|
def delete_app_store_version_phased_release(app_store_version_phased_release_id: nil)
|
714
726
|
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
715
727
|
tunes_request_client.delete("appStoreVersionPhasedReleases/#{app_store_version_phased_release_id}", params)
|
metadata
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.158.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Josh Holtz
|
8
|
-
- Manu Wallner
|
9
|
-
- Fumiya Nakamura
|
10
|
-
- Helmut Januschka
|
11
|
-
- Olivier Halligon
|
12
7
|
- Aaron Brager
|
13
|
-
-
|
8
|
+
- Stefan Natchev
|
9
|
+
- Manu Wallner
|
14
10
|
- Maksym Grebenets
|
15
|
-
- Iulian Onofrei
|
16
11
|
- Jérôme Lacoste
|
17
|
-
-
|
12
|
+
- Josh Holtz
|
13
|
+
- Matthew Ellis
|
18
14
|
- Felix Krause
|
19
|
-
-
|
20
|
-
- Stefan Natchev
|
21
|
-
- Jan Piotrowski
|
22
|
-
- Max Ott
|
15
|
+
- Daniel Jankowski
|
23
16
|
- Danielle Tomlinson
|
17
|
+
- Iulian Onofrei
|
18
|
+
- Luka Mirosevic
|
19
|
+
- Jimmy Dee
|
20
|
+
- Andrew McBurney
|
24
21
|
- Kohki Miki
|
25
|
-
-
|
22
|
+
- Jorge Revuelta H
|
26
23
|
- Joshua Liebowitz
|
27
|
-
-
|
28
|
-
-
|
24
|
+
- Fumiya Nakamura
|
25
|
+
- Helmut Januschka
|
26
|
+
- Olivier Halligon
|
27
|
+
- Jan Piotrowski
|
28
|
+
- Max Ott
|
29
29
|
autorequire:
|
30
30
|
bindir: bin
|
31
31
|
cert_chain: []
|
@@ -982,7 +982,6 @@ files:
|
|
982
982
|
- fastlane/lib/fastlane.rb
|
983
983
|
- fastlane/lib/fastlane/action.rb
|
984
984
|
- fastlane/lib/fastlane/action_collector.rb
|
985
|
-
- fastlane/lib/fastlane/actions/.ensure_git_status_clean.rb.swp
|
986
985
|
- fastlane/lib/fastlane/actions/.hockey.rb.swp
|
987
986
|
- fastlane/lib/fastlane/actions/.slack.rb.swp
|
988
987
|
- fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
|
Binary file
|