-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
GymfileProtocol.swift
207 lines (156 loc) 路 8.35 KB
/
GymfileProtocol.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
// GymfileProtocol.swift
// Copyright (c) 2022 FastlaneTools
public protocol GymfileProtocol: AnyObject {
/// Path to the workspace file
var workspace: String? { get }
/// Path to the project file
var project: String? { get }
/// The project's scheme. Make sure it's marked as `Shared`
var scheme: String? { get }
/// Should the project be cleaned before building it?
var clean: Bool { get }
/// The directory in which the ipa file should be stored in
var outputDirectory: String { get }
/// The name of the resulting ipa file
var outputName: String? { get }
/// The configuration to use when building the app. Defaults to 'Release'
var configuration: String? { get }
/// Hide all information that's not necessary while building
var silent: Bool { get }
/// The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
var codesigningIdentity: String? { get }
/// Should we skip packaging the ipa?
var skipPackageIpa: Bool { get }
/// Should we skip packaging the pkg?
var skipPackagePkg: Bool { get }
/// Should the ipa file include symbols?
var includeSymbols: Bool? { get }
/// Should the ipa file include bitcode?
var includeBitcode: Bool? { get }
/// Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
var exportMethod: String? { get }
/// Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
var exportOptions: [String: Any]? { get }
/// Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
var exportXcargs: String? { get }
/// Export ipa from previously built xcarchive. Uses archive_path as source
var skipBuildArchive: Bool? { get }
/// After building, don't archive, effectively not including -archivePath param
var skipArchive: Bool? { get }
/// Build without codesigning
var skipCodesigning: Bool? { get }
/// Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
var catalystPlatform: String? { get }
/// Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
var installerCertName: String? { get }
/// The directory in which the archive should be stored in
var buildPath: String? { get }
/// The path to the created archive
var archivePath: String? { get }
/// The directory where built products and other derived data will go
var derivedDataPath: String? { get }
/// Should an Xcode result bundle be generated in the output directory
var resultBundle: Bool { get }
/// Path to the result bundle directory to create. Ignored if `result_bundle` if false
var resultBundlePath: String? { get }
/// The directory where to store the build log
var buildlogPath: String { get }
/// The SDK that should be used for building the application
var sdk: String? { get }
/// The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)
var toolchain: String? { get }
/// Use a custom destination for building the app
var destination: String? { get }
/// Optional: Sometimes you need to specify a team id when exporting the ipa file
var exportTeamId: String? { get }
/// Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
var xcargs: String? { get }
/// Use an extra XCCONFIG file to build your app
var xcconfig: String? { get }
/// Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
var suppressXcodeOutput: Bool? { get }
/// xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
var xcodebuildFormatter: String { get }
/// **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
var disableXcpretty: Bool? { get }
/// Use the test (RSpec style) format for build output
var xcprettyTestFormat: Bool? { get }
/// A custom xcpretty formatter to use
var xcprettyFormatter: String? { get }
/// Have xcpretty create a JUnit-style XML report at the provided path
var xcprettyReportJunit: String? { get }
/// Have xcpretty create a simple HTML report at the provided path
var xcprettyReportHtml: String? { get }
/// Have xcpretty create a JSON compilation database at the provided path
var xcprettyReportJson: String? { get }
/// Have xcpretty use unicode encoding when reporting builds
var xcprettyUtf: Bool? { get }
/// Analyze the project build time and store the output in 'culprits.txt' file
var analyzeBuildTime: Bool? { get }
/// Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
var skipProfileDetection: Bool { get }
/// Allows for override of the default `xcodebuild` command
var xcodebuildCommand: String { get }
/// Sets a custom path for Swift Package Manager dependencies
var clonedSourcePackagesPath: String? { get }
/// Skips resolution of Swift Package Manager dependencies
var skipPackageDependenciesResolution: Bool { get }
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
var disablePackageAutomaticUpdates: Bool { get }
/// Lets xcodebuild use system's scm configuration
var useSystemScm: Bool { get }
}
public extension GymfileProtocol {
var workspace: String? { return nil }
var project: String? { return nil }
var scheme: String? { return nil }
var clean: Bool { return false }
var outputDirectory: String { return "." }
var outputName: String? { return nil }
var configuration: String? { return nil }
var silent: Bool { return false }
var codesigningIdentity: String? { return nil }
var skipPackageIpa: Bool { return false }
var skipPackagePkg: Bool { return false }
var includeSymbols: Bool? { return nil }
var includeBitcode: Bool? { return nil }
var exportMethod: String? { return nil }
var exportOptions: [String: Any]? { return nil }
var exportXcargs: String? { return nil }
var skipBuildArchive: Bool? { return nil }
var skipArchive: Bool? { return nil }
var skipCodesigning: Bool? { return nil }
var catalystPlatform: String? { return nil }
var installerCertName: String? { return nil }
var buildPath: String? { return nil }
var archivePath: String? { return nil }
var derivedDataPath: String? { return nil }
var resultBundle: Bool { return false }
var resultBundlePath: String? { return nil }
var buildlogPath: String { return "~/Library/Logs/gym" }
var sdk: String? { return nil }
var toolchain: String? { return nil }
var destination: String? { return nil }
var exportTeamId: String? { return nil }
var xcargs: String? { return nil }
var xcconfig: String? { return nil }
var suppressXcodeOutput: Bool? { return nil }
var xcodebuildFormatter: String { return "xcbeautify" }
var disableXcpretty: Bool? { return nil }
var xcprettyTestFormat: Bool? { return nil }
var xcprettyFormatter: String? { return nil }
var xcprettyReportJunit: String? { return nil }
var xcprettyReportHtml: String? { return nil }
var xcprettyReportJson: String? { return nil }
var xcprettyUtf: Bool? { return nil }
var analyzeBuildTime: Bool? { return nil }
var skipProfileDetection: Bool { return false }
var xcodebuildCommand: String { return "xcodebuild" }
var clonedSourcePackagesPath: String? { return nil }
var skipPackageDependenciesResolution: Bool { return false }
var disablePackageAutomaticUpdates: Bool { return false }
var useSystemScm: Bool { return false }
}
// Please don't remove the lines below
// They are used to detect outdated files
// FastlaneRunnerAPIVersion [0.9.114]