fastlane 2.150.3 → 2.151.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +86 -86
- data/deliver/lib/deliver/options.rb +7 -1
- data/deliver/lib/deliver/submit_for_review.rb +7 -7
- data/deliver/lib/deliver/upload_metadata.rb +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +13 -3
- data/fastlane/lib/fastlane/actions/pod_push.rb +10 -1
- data/fastlane/lib/fastlane/actions/resign.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_ci.rb +5 -0
- data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +10 -2
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +28 -11
- data/fastlane/lib/fastlane/server/socket_server.rb +7 -1
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +24 -24
- data/fastlane/swift/ControlCommand.swift +3 -3
- data/fastlane/swift/Deliverfile.swift +4 -8
- data/fastlane/swift/DeliverfileProtocol.swift +181 -182
- data/fastlane/swift/Fastlane.swift +2813 -2802
- data/fastlane/swift/Gymfile.swift +4 -8
- data/fastlane/swift/GymfileProtocol.swift +133 -134
- data/fastlane/swift/LaneFileProtocol.swift +17 -17
- data/fastlane/swift/Matchfile.swift +4 -8
- data/fastlane/swift/MatchfileProtocol.swift +115 -112
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +4 -8
- data/fastlane/swift/PrecheckfileProtocol.swift +22 -23
- data/fastlane/swift/RubyCommand.swift +34 -37
- data/fastlane/swift/RubyCommandable.swift +3 -1
- data/fastlane/swift/Runner.swift +76 -69
- data/fastlane/swift/Scanfile.swift +4 -8
- data/fastlane/swift/ScanfileProtocol.swift +190 -191
- data/fastlane/swift/Screengrabfile.swift +4 -8
- data/fastlane/swift/ScreengrabfileProtocol.swift +67 -68
- data/fastlane/swift/Snapshotfile.swift +4 -8
- data/fastlane/swift/SnapshotfileProtocol.swift +127 -128
- data/fastlane/swift/SocketClient.swift +84 -90
- data/fastlane/swift/SocketResponse.swift +14 -14
- data/fastlane/swift/formatting/Brewfile +1 -0
- data/fastlane/swift/formatting/Brewfile.lock.json +39 -0
- data/fastlane/swift/formatting/Rakefile +18 -0
- data/fastlane/swift/main.swift +5 -6
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +15 -7
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
- data/match/lib/assets/READMETemplate.md +5 -2
- data/match/lib/match/options.rb +4 -0
- data/match/lib/match/runner.rb +1 -0
- data/match/lib/match/storage/git_storage.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +25 -7
- data/sigh/lib/assets/resign.sh +18 -0
- data/spaceship/lib/spaceship/client.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +0 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
- metadata +31 -38
- data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
- data/spaceship/lib/spaceship/babosa_fix.rb +0 -30
@@ -3,14 +3,15 @@ require 'aws-sdk-s3'
|
|
3
3
|
module Fastlane
|
4
4
|
module Helper
|
5
5
|
class S3ClientHelper
|
6
|
-
attr_reader :
|
6
|
+
attr_reader :access_key
|
7
|
+
attr_reader :region
|
7
8
|
|
8
|
-
def initialize(access_key: nil, secret_access_key: nil, region: nil)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
def initialize(access_key: nil, secret_access_key: nil, region: nil, s3_client: nil)
|
10
|
+
@access_key = access_key
|
11
|
+
@secret_access_key = secret_access_key
|
12
|
+
@region = region
|
13
|
+
|
14
|
+
@client = s3_client
|
14
15
|
end
|
15
16
|
|
16
17
|
def list_buckets
|
@@ -50,12 +51,28 @@ module Fastlane
|
|
50
51
|
|
51
52
|
return bucket
|
52
53
|
end
|
53
|
-
end
|
54
54
|
|
55
|
-
|
55
|
+
private
|
56
|
+
|
57
|
+
attr_reader :secret_access_key
|
58
|
+
|
59
|
+
def client
|
60
|
+
@client ||= Aws::S3::Client.new(
|
61
|
+
{
|
62
|
+
region: region,
|
63
|
+
credentials: create_credentials
|
64
|
+
}.compact
|
65
|
+
)
|
66
|
+
end
|
67
|
+
|
68
|
+
def create_credentials
|
69
|
+
return nil if access_key.nil? || secret_access_key.nil?
|
56
70
|
|
57
|
-
|
58
|
-
|
71
|
+
Aws::Credentials.new(
|
72
|
+
access_key,
|
73
|
+
secret_access_key
|
74
|
+
)
|
75
|
+
end
|
59
76
|
end
|
60
77
|
end
|
61
78
|
end
|
@@ -215,6 +215,10 @@ module Fastlane
|
|
215
215
|
exception_array << "#{e.class}:"
|
216
216
|
exception_array << e.backtrace
|
217
217
|
|
218
|
+
ec = e.class
|
219
|
+
|
220
|
+
em = e.message
|
221
|
+
|
218
222
|
while e.respond_to?("cause") && (e = e.cause)
|
219
223
|
exception_array << "cause: #{e.class}"
|
220
224
|
exception_array << e.backtrace
|
@@ -223,7 +227,9 @@ module Fastlane
|
|
223
227
|
payload = {
|
224
228
|
payload: {
|
225
229
|
status: "failure",
|
226
|
-
failure_information: exception_array.flatten
|
230
|
+
failure_information: exception_array.flatten,
|
231
|
+
failure_class: ec,
|
232
|
+
failure_message: em
|
227
233
|
}
|
228
234
|
}
|
229
235
|
return JSON.generate(payload)
|
@@ -31,7 +31,7 @@ module Fastlane
|
|
31
31
|
|
32
32
|
# rubocop:disable LineLength
|
33
33
|
# class instance?
|
34
|
-
@reserved_words = %w[associativity break case catch class continue convenience default deinit didSet do else enum extension fallthrough false final for func
|
34
|
+
@reserved_words = %w[associativity break case catch class continue convenience default deinit didSet do else enum extension fallthrough false final for func guard if in infix init inout internal lazy let mutating nil operator override precedence private public repeat required return self static struct subscript super switch throws true try var weak where while willSet].to_set
|
35
35
|
# rubocop:enable LineLength
|
36
36
|
end
|
37
37
|
|
@@ -19,68 +19,68 @@ struct ArgumentProcessor {
|
|
19
19
|
let currentLane: String
|
20
20
|
let commandTimeout: Int
|
21
21
|
let port: UInt32
|
22
|
-
|
23
|
-
init(args: [String]) {
|
22
|
+
|
23
|
+
init(args: [String]) {
|
24
24
|
// Dump the first arg which is the program name
|
25
25
|
let fastlaneArgs = stride(from: 1, to: args.count - 1, by: 2).map {
|
26
|
-
RunnerArgument(name: args[$0], value: args[$0+1])
|
26
|
+
RunnerArgument(name: args[$0], value: args[$0 + 1])
|
27
27
|
}
|
28
28
|
self.args = fastlaneArgs
|
29
|
-
|
29
|
+
|
30
30
|
let fastlaneArgsMinusLanes = fastlaneArgs.filter { arg in
|
31
|
-
|
31
|
+
arg.name.lowercased() != "lane"
|
32
32
|
}
|
33
|
-
|
33
|
+
|
34
34
|
let potentialLogMode = fastlaneArgsMinusLanes.filter { arg in
|
35
|
-
|
35
|
+
arg.name.lowercased() == "logmode"
|
36
36
|
}
|
37
|
-
|
37
|
+
|
38
38
|
port = UInt32(fastlaneArgsMinusLanes.first(where: { $0.name == "swiftServerPort" })?.value ?? "") ?? 2000
|
39
|
-
|
39
|
+
|
40
40
|
// Configure logMode since we might need to use it before we finish parsing
|
41
41
|
if let logModeArg = potentialLogMode.first {
|
42
42
|
let logModeString = logModeArg.value
|
43
43
|
Logger.logMode = Logger.LogMode(logMode: logModeString)
|
44
44
|
}
|
45
|
-
|
45
|
+
|
46
46
|
let lanes = self.args.filter { arg in
|
47
|
-
|
47
|
+
arg.name.lowercased() == "lane"
|
48
48
|
}
|
49
49
|
verbose(message: lanes.description)
|
50
|
-
|
50
|
+
|
51
51
|
guard lanes.count == 1 else {
|
52
52
|
let message = "You must have exactly one lane specified as an arg, here's what I got: \(lanes)"
|
53
53
|
log(message: message)
|
54
54
|
fatalError(message)
|
55
55
|
}
|
56
|
-
|
56
|
+
|
57
57
|
let lane = lanes.first!
|
58
|
-
|
59
|
-
|
58
|
+
currentLane = lane.value
|
59
|
+
|
60
60
|
// User might have configured a timeout for the socket connection
|
61
61
|
let potentialTimeout = fastlaneArgsMinusLanes.filter { arg in
|
62
|
-
|
62
|
+
arg.name.lowercased() == "timeoutseconds"
|
63
63
|
}
|
64
|
-
|
64
|
+
|
65
65
|
if let logModeArg = potentialLogMode.first {
|
66
66
|
let logModeString = logModeArg.value
|
67
67
|
Logger.logMode = Logger.LogMode(logMode: logModeString)
|
68
68
|
}
|
69
|
-
|
69
|
+
|
70
70
|
if let timeoutArg = potentialTimeout.first {
|
71
71
|
let timeoutString = timeoutArg.value
|
72
|
-
|
72
|
+
commandTimeout = (timeoutString as NSString).integerValue
|
73
73
|
} else {
|
74
|
-
|
74
|
+
commandTimeout = SocketClient.defaultCommandTimeoutSeconds
|
75
75
|
}
|
76
76
|
}
|
77
|
-
|
78
|
-
func laneParameters() -> [String
|
79
|
-
let laneParametersArgs =
|
77
|
+
|
78
|
+
func laneParameters() -> [String: String] {
|
79
|
+
let laneParametersArgs = args.filter { arg in
|
80
80
|
let lowercasedName = arg.name.lowercased()
|
81
81
|
return lowercasedName != "timeoutseconds" && lowercasedName != "lane" && lowercasedName != "logmode"
|
82
82
|
}
|
83
|
-
var laneParameters = [String
|
83
|
+
var laneParameters = [String: String]()
|
84
84
|
for arg in laneParametersArgs {
|
85
85
|
laneParameters[arg.name] = arg.value
|
86
86
|
}
|
@@ -52,12 +52,12 @@ struct ControlCommand: RubyCommandable {
|
|
52
52
|
let id: String = UUID().uuidString
|
53
53
|
let shutdownCommandType: ShutdownCommandType
|
54
54
|
var commandJson: String {
|
55
|
-
var jsonDictionary: [String: Any] = [ControlCommand.commandKey
|
55
|
+
var jsonDictionary: [String: Any] = [ControlCommand.commandKey: shutdownCommandType.token]
|
56
56
|
|
57
57
|
if let message = message {
|
58
58
|
jsonDictionary[ShutdownCommandType.userMessageKey] = message
|
59
59
|
}
|
60
|
-
if case .cancel(
|
60
|
+
if case let .cancel(reason) = shutdownCommandType {
|
61
61
|
jsonDictionary[ShutdownCommandType.CancelReason.reasonKey] = reason.reasonText
|
62
62
|
}
|
63
63
|
|
@@ -67,7 +67,7 @@ struct ControlCommand: RubyCommandable {
|
|
67
67
|
}
|
68
68
|
|
69
69
|
init(commandType: ShutdownCommandType, message: String? = nil) {
|
70
|
-
|
70
|
+
shutdownCommandType = commandType
|
71
71
|
self.message = message
|
72
72
|
}
|
73
73
|
}
|
@@ -9,13 +9,9 @@
|
|
9
9
|
//
|
10
10
|
|
11
11
|
class Deliverfile: DeliverfileProtocol {
|
12
|
-
// If you want to enable `deliver`, run `fastlane deliver init`
|
13
|
-
// After, this file will be replaced with a custom implementation that contains values you supplied
|
14
|
-
// during the `init` process, and you won't see this message
|
12
|
+
// If you want to enable `deliver`, run `fastlane deliver init`
|
13
|
+
// After, this file will be replaced with a custom implementation that contains values you supplied
|
14
|
+
// during the `init` process, and you won't see this message
|
15
15
|
}
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
// Generated with fastlane 2.150.3
|
17
|
+
// Generated with fastlane 2.151.0
|
@@ -1,249 +1,248 @@
|
|
1
1
|
protocol DeliverfileProtocol: class {
|
2
|
+
/// Your Apple ID Username
|
3
|
+
var username: String { get }
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
+
/// The bundle identifier of your app
|
6
|
+
var appIdentifier: String? { get }
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
+
/// The version that should be edited or created
|
9
|
+
var appVersion: String? { get }
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
+
/// Path to your ipa file
|
12
|
+
var ipa: String? { get }
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
+
/// Path to your pkg file
|
15
|
+
var pkg: String? { get }
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
/// If set the given build number (already uploaded to iTC) will be used instead of the current built one
|
18
|
+
var buildNumber: String? { get }
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
+
/// The platform to use (optional)
|
21
|
+
var platform: String { get }
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
/// Modify live metadata, this option disables ipa upload and screenshot upload
|
24
|
+
var editLive: Bool { get }
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
+
/// Force usage of live version rather than edit version
|
27
|
+
var useLiveVersion: Bool { get }
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
+
/// Path to the folder containing the metadata files
|
30
|
+
var metadataPath: String? { get }
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
+
/// Path to the folder containing the screenshots
|
33
|
+
var screenshotsPath: String? { get }
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
+
/// Skip uploading an ipa or pkg to App Store Connect
|
36
|
+
var skipBinaryUpload: Bool { get }
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
+
/// Don't upload the screenshots
|
39
|
+
var skipScreenshots: Bool { get }
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
+
/// Don't upload the metadata (e.g. title, description). This will still upload screenshots
|
42
|
+
var skipMetadata: Bool { get }
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
+
/// Don't update app version for submission
|
45
|
+
var skipAppVersionUpdate: Bool { get }
|
44
46
|
|
45
|
-
|
46
|
-
|
47
|
+
/// Skip the HTML report file verification
|
48
|
+
var force: Bool { get }
|
47
49
|
|
48
|
-
|
49
|
-
|
50
|
+
/// Clear all previously uploaded screenshots before uploading the new ones
|
51
|
+
var overwriteScreenshots: Bool { get }
|
50
52
|
|
51
|
-
|
52
|
-
|
53
|
+
/// Submit the new version for Review after uploading everything
|
54
|
+
var submitForReview: Bool { get }
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
+
/// Rejects the previously submitted build if it's in a state where it's possible
|
57
|
+
var rejectIfPossible: Bool { get }
|
56
58
|
|
57
|
-
|
58
|
-
|
59
|
+
/// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
60
|
+
var automaticRelease: Bool { get }
|
59
61
|
|
60
|
-
|
61
|
-
|
62
|
+
/// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
63
|
+
var autoReleaseDate: Int? { get }
|
62
64
|
|
63
|
-
|
64
|
-
|
65
|
+
/// Enable the phased release feature of iTC
|
66
|
+
var phasedRelease: Bool { get }
|
65
67
|
|
66
|
-
|
67
|
-
|
68
|
+
/// Reset the summary rating when you release a new version of the application
|
69
|
+
var resetRatings: Bool { get }
|
68
70
|
|
69
|
-
|
70
|
-
|
71
|
+
/// The price tier of this application
|
72
|
+
var priceTier: String? { get }
|
71
73
|
|
72
|
-
|
73
|
-
|
74
|
+
/// Path to the app rating's config
|
75
|
+
var appRatingConfigPath: String? { get }
|
74
76
|
|
75
|
-
|
76
|
-
|
77
|
+
/// Extra information for the submission (e.g. compliance specifications, IDFA settings)
|
78
|
+
var submissionInformation: [String: Any]? { get }
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
+
/// The ID of your App Store Connect team if you're in multiple teams
|
81
|
+
var teamId: String? { get }
|
80
82
|
|
81
|
-
|
82
|
-
|
83
|
+
/// The name of your App Store Connect team if you're in multiple teams
|
84
|
+
var teamName: String? { get }
|
83
85
|
|
84
|
-
|
85
|
-
|
86
|
+
/// The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
|
87
|
+
var devPortalTeamId: String? { get }
|
86
88
|
|
87
|
-
|
88
|
-
|
89
|
+
/// The name of your Developer Portal team if you're in multiple teams
|
90
|
+
var devPortalTeamName: String? { get }
|
89
91
|
|
90
|
-
|
91
|
-
|
92
|
+
/// 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 `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/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
|
93
|
+
var itcProvider: String? { get }
|
92
94
|
|
93
|
-
|
94
|
-
|
95
|
+
/// Run precheck before submitting to app review
|
96
|
+
var runPrecheckBeforeSubmit: Bool { get }
|
95
97
|
|
96
|
-
|
97
|
-
|
98
|
+
/// The default precheck rule level unless otherwise configured
|
99
|
+
var precheckDefaultRuleLevel: String { get }
|
98
100
|
|
99
|
-
|
100
|
-
|
101
|
+
/// **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
|
102
|
+
var individualMetadataItems: [String] { get }
|
101
103
|
|
102
|
-
|
103
|
-
|
104
|
+
/// **DEPRECATED!** Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon
|
105
|
+
var appIcon: String? { get }
|
104
106
|
|
105
|
-
|
106
|
-
|
107
|
+
/// **DEPRECATED!** Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon
|
108
|
+
var appleWatchAppIcon: String? { get }
|
107
109
|
|
108
|
-
|
109
|
-
|
110
|
+
/// Metadata: The copyright notice
|
111
|
+
var copyright: String? { get }
|
110
112
|
|
111
|
-
|
112
|
-
|
113
|
+
/// Metadata: The english name of the primary category (e.g. `Business`, `Books`)
|
114
|
+
var primaryCategory: String? { get }
|
113
115
|
|
114
|
-
|
115
|
-
|
116
|
+
/// Metadata: The english name of the secondary category (e.g. `Business`, `Books`)
|
117
|
+
var secondaryCategory: String? { get }
|
116
118
|
|
117
|
-
|
118
|
-
|
119
|
+
/// Metadata: The english name of the primary first sub category (e.g. `Educational`, `Puzzle`)
|
120
|
+
var primaryFirstSubCategory: String? { get }
|
119
121
|
|
120
|
-
|
121
|
-
|
122
|
+
/// Metadata: The english name of the primary second sub category (e.g. `Educational`, `Puzzle`)
|
123
|
+
var primarySecondSubCategory: String? { get }
|
122
124
|
|
123
|
-
|
124
|
-
|
125
|
+
/// Metadata: The english name of the secondary first sub category (e.g. `Educational`, `Puzzle`)
|
126
|
+
var secondaryFirstSubCategory: String? { get }
|
125
127
|
|
126
|
-
|
127
|
-
|
128
|
+
/// Metadata: The english name of the secondary second sub category (e.g. `Educational`, `Puzzle`)
|
129
|
+
var secondarySecondSubCategory: String? { get }
|
128
130
|
|
129
|
-
|
130
|
-
|
131
|
+
/// Metadata: A hash containing the trade representative contact information
|
132
|
+
var tradeRepresentativeContactInformation: [String: Any]? { get }
|
131
133
|
|
132
|
-
|
133
|
-
|
134
|
+
/// Metadata: A hash containing the review information
|
135
|
+
var appReviewInformation: [String: Any]? { get }
|
134
136
|
|
135
|
-
|
136
|
-
|
137
|
+
/// Metadata: Path to the app review attachment file
|
138
|
+
var appReviewAttachmentFile: String? { get }
|
137
139
|
|
138
|
-
|
139
|
-
|
140
|
+
/// Metadata: The localised app description
|
141
|
+
var description: String? { get }
|
140
142
|
|
141
|
-
|
142
|
-
|
143
|
+
/// Metadata: The localised app name
|
144
|
+
var name: String? { get }
|
143
145
|
|
144
|
-
|
145
|
-
|
146
|
+
/// Metadata: The localised app subtitle
|
147
|
+
var subtitle: [String: Any]? { get }
|
146
148
|
|
147
|
-
|
148
|
-
|
149
|
+
/// Metadata: An array of localised keywords
|
150
|
+
var keywords: [String: Any]? { get }
|
149
151
|
|
150
|
-
|
151
|
-
|
152
|
+
/// Metadata: An array of localised promotional texts
|
153
|
+
var promotionalText: [String: Any]? { get }
|
152
154
|
|
153
|
-
|
154
|
-
|
155
|
+
/// Metadata: Localised release notes for this version
|
156
|
+
var releaseNotes: String? { get }
|
155
157
|
|
156
|
-
|
157
|
-
|
158
|
+
/// Metadata: Localised privacy url
|
159
|
+
var privacyUrl: String? { get }
|
158
160
|
|
159
|
-
|
160
|
-
|
161
|
+
/// Metadata: Localised Apple TV privacy policy text
|
162
|
+
var appleTvPrivacyPolicy: String? { get }
|
161
163
|
|
162
|
-
|
163
|
-
|
164
|
+
/// Metadata: Localised support url
|
165
|
+
var supportUrl: String? { get }
|
164
166
|
|
165
|
-
|
166
|
-
|
167
|
+
/// Metadata: Localised marketing url
|
168
|
+
var marketingUrl: String? { get }
|
167
169
|
|
168
|
-
|
169
|
-
|
170
|
+
/// Metadata: List of languages to activate
|
171
|
+
var languages: [String]? { get }
|
170
172
|
|
171
|
-
|
172
|
-
|
173
|
+
/// Ignore errors when invalid languages are found in metadata and screenshot directories
|
174
|
+
var ignoreLanguageDirectoryValidation: Bool { get }
|
173
175
|
|
174
|
-
|
175
|
-
|
176
|
+
/// Should precheck check in-app purchases?
|
177
|
+
var precheckIncludeInAppPurchases: Bool { get }
|
176
178
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
/// The (spaceship) app ID of the app you want to use/modify
|
181
|
-
var app: String { get }
|
179
|
+
/// The (spaceship) app ID of the app you want to use/modify
|
180
|
+
var app: String { get }
|
182
181
|
}
|
183
182
|
|
184
183
|
extension DeliverfileProtocol {
|
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
|
-
|
184
|
+
var username: String { return "" }
|
185
|
+
var appIdentifier: String? { return nil }
|
186
|
+
var appVersion: String? { return nil }
|
187
|
+
var ipa: String? { return nil }
|
188
|
+
var pkg: String? { return nil }
|
189
|
+
var buildNumber: String? { return nil }
|
190
|
+
var platform: String { return "ios" }
|
191
|
+
var editLive: Bool { return false }
|
192
|
+
var useLiveVersion: Bool { return false }
|
193
|
+
var metadataPath: String? { return nil }
|
194
|
+
var screenshotsPath: String? { return nil }
|
195
|
+
var skipBinaryUpload: Bool { return false }
|
196
|
+
var skipScreenshots: Bool { return false }
|
197
|
+
var skipMetadata: Bool { return false }
|
198
|
+
var skipAppVersionUpdate: Bool { return false }
|
199
|
+
var force: Bool { return false }
|
200
|
+
var overwriteScreenshots: Bool { return false }
|
201
|
+
var submitForReview: Bool { return false }
|
202
|
+
var rejectIfPossible: Bool { return false }
|
203
|
+
var automaticRelease: Bool { return false }
|
204
|
+
var autoReleaseDate: Int? { return nil }
|
205
|
+
var phasedRelease: Bool { return false }
|
206
|
+
var resetRatings: Bool { return false }
|
207
|
+
var priceTier: String? { return nil }
|
208
|
+
var appRatingConfigPath: String? { return nil }
|
209
|
+
var submissionInformation: [String: Any]? { return nil }
|
210
|
+
var teamId: String? { return nil }
|
211
|
+
var teamName: String? { return nil }
|
212
|
+
var devPortalTeamId: String? { return nil }
|
213
|
+
var devPortalTeamName: String? { return nil }
|
214
|
+
var itcProvider: String? { return nil }
|
215
|
+
var runPrecheckBeforeSubmit: Bool { return true }
|
216
|
+
var precheckDefaultRuleLevel: String { return "warn" }
|
217
|
+
var individualMetadataItems: [String] { return [] }
|
218
|
+
var appIcon: String? { return nil }
|
219
|
+
var appleWatchAppIcon: String? { return nil }
|
220
|
+
var copyright: String? { return nil }
|
221
|
+
var primaryCategory: String? { return nil }
|
222
|
+
var secondaryCategory: String? { return nil }
|
223
|
+
var primaryFirstSubCategory: String? { return nil }
|
224
|
+
var primarySecondSubCategory: String? { return nil }
|
225
|
+
var secondaryFirstSubCategory: String? { return nil }
|
226
|
+
var secondarySecondSubCategory: String? { return nil }
|
227
|
+
var tradeRepresentativeContactInformation: [String: Any]? { return nil }
|
228
|
+
var appReviewInformation: [String: Any]? { return nil }
|
229
|
+
var appReviewAttachmentFile: String? { return nil }
|
230
|
+
var description: String? { return nil }
|
231
|
+
var name: String? { return nil }
|
232
|
+
var subtitle: [String: Any]? { return nil }
|
233
|
+
var keywords: [String: Any]? { return nil }
|
234
|
+
var promotionalText: [String: Any]? { return nil }
|
235
|
+
var releaseNotes: String? { return nil }
|
236
|
+
var privacyUrl: String? { return nil }
|
237
|
+
var appleTvPrivacyPolicy: String? { return nil }
|
238
|
+
var supportUrl: String? { return nil }
|
239
|
+
var marketingUrl: String? { return nil }
|
240
|
+
var languages: [String]? { return nil }
|
241
|
+
var ignoreLanguageDirectoryValidation: Bool { return false }
|
242
|
+
var precheckIncludeInAppPurchases: Bool { return true }
|
243
|
+
var app: String { return "" }
|
245
244
|
}
|
246
245
|
|
247
246
|
// Please don't remove the lines below
|
248
247
|
// They are used to detect outdated files
|
249
|
-
// FastlaneRunnerAPIVersion [0.9.
|
248
|
+
// FastlaneRunnerAPIVersion [0.9.22]
|