/
DeliverfileProtocol.swift
267 lines (201 loc) 路 11.1 KB
/
DeliverfileProtocol.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
// DeliverfileProtocol.swift
// Copyright (c) 2022 FastlaneTools
public protocol DeliverfileProtocol: AnyObject {
/// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
var apiKeyPath: String? { get }
/// Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)
var apiKey: [String: Any]? { get }
/// Your Apple ID Username
var username: String? { get }
/// The bundle identifier of your app
var appIdentifier: String? { get }
/// The version that should be edited or created
var appVersion: String? { get }
/// Path to your ipa file
var ipa: String? { get }
/// Path to your pkg file
var pkg: String? { get }
/// If set the given build number (already uploaded to iTC) will be used instead of the current built one
var buildNumber: String? { get }
/// The platform to use (optional)
var platform: String { get }
/// Modify live metadata, this option disables ipa upload and screenshot upload
var editLive: Bool { get }
/// Force usage of live version rather than edit version
var useLiveVersion: Bool { get }
/// Path to the folder containing the metadata files
var metadataPath: String? { get }
/// Path to the folder containing the screenshots
var screenshotsPath: String? { get }
/// Skip uploading an ipa or pkg to App Store Connect
var skipBinaryUpload: Bool { get }
/// Don't upload the screenshots
var skipScreenshots: Bool { get }
/// Don't upload the metadata (e.g. title, description). This will still upload screenshots
var skipMetadata: Bool { get }
/// Don鈥檛 create or update the app version that is being prepared for submission
var skipAppVersionUpdate: Bool { get }
/// Skip verification of HTML preview file
var force: Bool { get }
/// Clear all previously uploaded screenshots before uploading the new ones
var overwriteScreenshots: Bool { get }
/// Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
var syncScreenshots: Bool { get }
/// Submit the new version for Review after uploading everything
var submitForReview: Bool { get }
/// Verifies archive with App Store Connect without uploading
var verifyOnly: Bool { get }
/// Rejects the previously submitted build if it's in a state where it's possible
var rejectIfPossible: Bool { get }
/// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
var automaticRelease: Bool? { get }
/// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
var autoReleaseDate: Int? { get }
/// Enable the phased release feature of iTC
var phasedRelease: Bool { get }
/// Reset the summary rating when you release a new version of the application
var resetRatings: Bool { get }
/// The price tier of this application
var priceTier: Int? { get }
/// Path to the app rating's config
var appRatingConfigPath: String? { get }
/// Extra information for the submission (e.g. compliance specifications, IDFA settings)
var submissionInformation: [String: Any]? { get }
/// The ID of your App Store Connect team if you're in multiple teams
var teamId: String? { get }
/// The name of your App Store Connect team if you're in multiple teams
var teamName: String? { get }
/// The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
var devPortalTeamId: String? { get }
/// The name of your Developer Portal team if you're in multiple teams
var devPortalTeamName: String? { get }
/// The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/Current/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
var itcProvider: String? { get }
/// Run precheck before submitting to app review
var runPrecheckBeforeSubmit: Bool { get }
/// The default precheck rule level unless otherwise configured
var precheckDefaultRuleLevel: String { get }
/// **DEPRECATED!** Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow
var individualMetadataItems: [String]? { get }
/// **DEPRECATED!** Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon
var appIcon: String? { get }
/// **DEPRECATED!** Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon
var appleWatchAppIcon: String? { get }
/// Metadata: The copyright notice
var copyright: String? { get }
/// Metadata: The english name of the primary category (e.g. `Business`, `Books`)
var primaryCategory: String? { get }
/// Metadata: The english name of the secondary category (e.g. `Business`, `Books`)
var secondaryCategory: String? { get }
/// Metadata: The english name of the primary first sub category (e.g. `Educational`, `Puzzle`)
var primaryFirstSubCategory: String? { get }
/// Metadata: The english name of the primary second sub category (e.g. `Educational`, `Puzzle`)
var primarySecondSubCategory: String? { get }
/// Metadata: The english name of the secondary first sub category (e.g. `Educational`, `Puzzle`)
var secondaryFirstSubCategory: String? { get }
/// Metadata: The english name of the secondary second sub category (e.g. `Educational`, `Puzzle`)
var secondarySecondSubCategory: String? { get }
/// **DEPRECATED!** This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information
var tradeRepresentativeContactInformation: [String: Any]? { get }
/// Metadata: A hash containing the review information
var appReviewInformation: [String: Any]? { get }
/// Metadata: Path to the app review attachment file
var appReviewAttachmentFile: String? { get }
/// Metadata: The localised app description
var description: [String: Any]? { get }
/// Metadata: The localised app name
var name: [String: Any]? { get }
/// Metadata: The localised app subtitle
var subtitle: [String: Any]? { get }
/// Metadata: An array of localised keywords
var keywords: [String: Any]? { get }
/// Metadata: An array of localised promotional texts
var promotionalText: [String: Any]? { get }
/// Metadata: Localised release notes for this version
var releaseNotes: [String: Any]? { get }
/// Metadata: Localised privacy url
var privacyUrl: [String: Any]? { get }
/// Metadata: Localised Apple TV privacy policy text
var appleTvPrivacyPolicy: [String: Any]? { get }
/// Metadata: Localised support url
var supportUrl: [String: Any]? { get }
/// Metadata: Localised marketing url
var marketingUrl: [String: Any]? { get }
/// Metadata: List of languages to activate
var languages: [String]? { get }
/// Ignore errors when invalid languages are found in metadata and screenshot directories
var ignoreLanguageDirectoryValidation: Bool { get }
/// Should precheck check in-app purchases?
var precheckIncludeInAppPurchases: Bool { get }
/// The (spaceship) app ID of the app you want to use/modify
var app: Int? { get }
}
public extension DeliverfileProtocol {
var apiKeyPath: String? { return nil }
var apiKey: [String: Any]? { return nil }
var username: String? { return nil }
var appIdentifier: String? { return nil }
var appVersion: String? { return nil }
var ipa: String? { return nil }
var pkg: String? { return nil }
var buildNumber: String? { return nil }
var platform: String { return "ios" }
var editLive: Bool { return false }
var useLiveVersion: Bool { return false }
var metadataPath: String? { return nil }
var screenshotsPath: String? { return nil }
var skipBinaryUpload: Bool { return false }
var skipScreenshots: Bool { return false }
var skipMetadata: Bool { return false }
var skipAppVersionUpdate: Bool { return false }
var force: Bool { return false }
var overwriteScreenshots: Bool { return false }
var syncScreenshots: Bool { return false }
var submitForReview: Bool { return false }
var verifyOnly: Bool { return false }
var rejectIfPossible: Bool { return false }
var automaticRelease: Bool? { return nil }
var autoReleaseDate: Int? { return nil }
var phasedRelease: Bool { return false }
var resetRatings: Bool { return false }
var priceTier: Int? { return nil }
var appRatingConfigPath: String? { return nil }
var submissionInformation: [String: Any]? { return nil }
var teamId: String? { return nil }
var teamName: String? { return nil }
var devPortalTeamId: String? { return nil }
var devPortalTeamName: String? { return nil }
var itcProvider: String? { return nil }
var runPrecheckBeforeSubmit: Bool { return true }
var precheckDefaultRuleLevel: String { return "warn" }
var individualMetadataItems: [String]? { return nil }
var appIcon: String? { return nil }
var appleWatchAppIcon: String? { return nil }
var copyright: String? { return nil }
var primaryCategory: String? { return nil }
var secondaryCategory: String? { return nil }
var primaryFirstSubCategory: String? { return nil }
var primarySecondSubCategory: String? { return nil }
var secondaryFirstSubCategory: String? { return nil }
var secondarySecondSubCategory: String? { return nil }
var tradeRepresentativeContactInformation: [String: Any]? { return nil }
var appReviewInformation: [String: Any]? { return nil }
var appReviewAttachmentFile: String? { return nil }
var description: [String: Any]? { return nil }
var name: [String: Any]? { return nil }
var subtitle: [String: Any]? { return nil }
var keywords: [String: Any]? { return nil }
var promotionalText: [String: Any]? { return nil }
var releaseNotes: [String: Any]? { return nil }
var privacyUrl: [String: Any]? { return nil }
var appleTvPrivacyPolicy: [String: Any]? { return nil }
var supportUrl: [String: Any]? { return nil }
var marketingUrl: [String: Any]? { return nil }
var languages: [String]? { return nil }
var ignoreLanguageDirectoryValidation: Bool { return false }
var precheckIncludeInAppPurchases: Bool { return true }
var app: Int? { return nil }
}
// Please don't remove the lines below
// They are used to detect outdated files
// FastlaneRunnerAPIVersion [0.9.111]