fastlane 2.69.2 → 2.69.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/fastlane/lib/fastlane/version.rb +1 -1
  3. data/fastlane/swift/Appfile.swift +17 -0
  4. data/fastlane/swift/ArgumentProcessor.swift +72 -0
  5. data/fastlane/swift/Deliverfile.swift +14 -0
  6. data/fastlane/swift/DeliverfileProtocol.swift +118 -0
  7. data/fastlane/swift/Fastfile.swift +12 -0
  8. data/fastlane/swift/Fastlane.swift +3739 -0
  9. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +409 -0
  10. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  11. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/liebowitz.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  12. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +103 -0
  13. data/fastlane/swift/Gymfile.swift +14 -0
  14. data/fastlane/swift/GymfileProtocol.swift +86 -0
  15. data/fastlane/swift/LaneFileProtocol.swift +103 -0
  16. data/fastlane/swift/Matchfile.swift +14 -0
  17. data/fastlane/swift/MatchfileProtocol.swift +54 -0
  18. data/fastlane/swift/Precheckfile.swift +14 -0
  19. data/fastlane/swift/PrecheckfileProtocol.swift +24 -0
  20. data/fastlane/swift/RubyCommand.swift +138 -0
  21. data/fastlane/swift/Runner.swift +190 -0
  22. data/fastlane/swift/RunnerArgument.swift +18 -0
  23. data/fastlane/swift/Scanfile.swift +14 -0
  24. data/fastlane/swift/ScanfileProtocol.swift +88 -0
  25. data/fastlane/swift/Screengrabfile.swift +14 -0
  26. data/fastlane/swift/ScreengrabfileProtocol.swift +48 -0
  27. data/fastlane/swift/Snapshotfile.swift +14 -0
  28. data/fastlane/swift/SnapshotfileProtocol.swift +70 -0
  29. data/fastlane/swift/SocketClient.swift +283 -0
  30. data/fastlane/swift/SocketClientDelegateProtocol.swift +19 -0
  31. data/fastlane/swift/SocketResponse.swift +74 -0
  32. data/fastlane/swift/main.swift +43 -0
  33. data/match/lib/match/encrypt.rb +12 -0
  34. metadata +32 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 563075abcdbdef3f7a44d4d18b05e2c03ea6bb7c
4
- data.tar.gz: 87758c6d41993b420c7cb787f4f7b093db2e60df
3
+ metadata.gz: ba189360fdddd1850f538396f9539a46673b5016
4
+ data.tar.gz: 1a9c241055f01791446c06496d07423484b39de2
5
5
  SHA512:
6
- metadata.gz: acb913a57e121443f1f7ae5bc8ef5842698e99f80eeede77fb4f992c7e3567b73b7edaa212f5fb3a0d724f32ef1983834a42e138989efa21f87fb4cf078a86ae
7
- data.tar.gz: ca7b335342ed381b42c4ce2966f448935f1cee8cc32284dc18b0abb1c3b3c6c005999c0651efd1fc40dbe31ac30a8a4802effcd06a7cbae38c3abd2db336a665
6
+ metadata.gz: e77ddf9b630f8fa0fd95ab4fbdcdd9732a32138d44f0c992b5d27771c9ffbc15c9975986bd7952099f321f52c9db375049ebf4509339c780fc1741e6680b1b02
7
+ data.tar.gz: adb3a2120c42da53d4ba05c4ce16ce04ad856367d6fc6d21ce9edae34d3f41b5fe5f5e2961c47b62063138564d27ede3939251a0de169bdd7950aa6a113aa340
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.69.2'.freeze
2
+ VERSION = '2.69.3'.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
@@ -0,0 +1,17 @@
1
+ // This class is automatically included in FastlaneRunner during build
2
+ // If you have a custom Appfile.swift, this file will be replaced by it
3
+ // Don't modify this file unless you are familiar with how fastlane's swift code generation works
4
+ // *** This file will be overwritten or replaced during build time ***
5
+
6
+ var appIdentifier: String { return "" } // The bundle identifier of your app
7
+ var appleID: String { return "" } // Your Apple email address
8
+
9
+ var teamID: String { return "" } // Developer Portal Team ID
10
+ var itcTeam: String? { return nil } // iTunes Connect Team ID (may be nil if no team)
11
+
12
+ // you can even provide different app identifiers, Apple IDs and team names per lane:
13
+ // More information: https://docs.fastlane.tools/advanced/#appfile
14
+
15
+ // Please don't remove the lines below
16
+ // They are used to detect outdated files
17
+ // FastlaneRunnerAPIVersion [0.9.1]
@@ -0,0 +1,72 @@
1
+ //
2
+ // ArgumentProcessor.swift
3
+ // FastlaneRunner
4
+ //
5
+ // Created by Joshua Liebowitz on 9/28/17.
6
+ // Copyright © 2017 Joshua Liebowitz. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ struct ArgumentProcessor {
12
+ let args: [RunnerArgument]
13
+ let currentLane: String
14
+ let commandTimeout: Int
15
+
16
+ init(args: [String]) {
17
+ // Dump the first arg which is the program name
18
+ let fastlaneArgs = stride(from: 1, to: args.count - 1, by: 2).map {
19
+ RunnerArgument(name: args[$0], value: args[$0+1])
20
+ }
21
+ self.args = fastlaneArgs
22
+
23
+ let fastlaneArgsMinusLanes = fastlaneArgs.filter { arg in
24
+ return arg.name.lowercased() != "lane"
25
+ }
26
+
27
+ let potentialLogMode = fastlaneArgsMinusLanes.filter { arg in
28
+ return arg.name.lowercased() == "logmode"
29
+ }
30
+
31
+ // Configure logMode since we might need to use it before we finish parsing
32
+ if let logModeArg = potentialLogMode.first {
33
+ let logModeString = logModeArg.value
34
+ Logger.logMode = Logger.LogMode(logMode: logModeString)
35
+ }
36
+
37
+ let lanes = self.args.filter { arg in
38
+ return arg.name.lowercased() == "lane"
39
+ }
40
+ verbose(message: lanes.description)
41
+
42
+ guard lanes.count == 1 else {
43
+ let message = "You must have exactly one lane specified as an arg, here's what I got: \(lanes)"
44
+ log(message: message)
45
+ fatalError(message)
46
+ }
47
+
48
+ let lane = lanes.first!
49
+ self.currentLane = lane.value
50
+
51
+ // User might have configured a timeout for the socket connection
52
+ let potentialTimeout = fastlaneArgsMinusLanes.filter { arg in
53
+ return arg.name.lowercased() == "timeoutSeconds"
54
+ }
55
+
56
+ if let logModeArg = potentialLogMode.first {
57
+ let logModeString = logModeArg.value
58
+ Logger.logMode = Logger.LogMode(logMode: logModeString)
59
+ }
60
+
61
+ if let timeoutArg = potentialTimeout.first {
62
+ let timeoutString = timeoutArg.value
63
+ self.commandTimeout = (timeoutString as NSString).integerValue
64
+ } else {
65
+ self.commandTimeout = SocketClient.defaultCommandTimeoutSeconds
66
+ }
67
+ }
68
+ }
69
+
70
+ // Please don't remove the lines below
71
+ // They are used to detect outdated files
72
+ // FastlaneRunnerAPIVersion [0.9.1]
@@ -0,0 +1,14 @@
1
+ // This class is automatically included in FastlaneRunner during build
2
+
3
+ // This autogenerated file will be overwritten or replaced during build time, or when you initialize `deliver`
4
+ class Deliverfile: DeliverfileProtocol {
5
+ // If you want to enable `deliver`, run `fastlane deliver init`
6
+ // After, this file will be replaced with a custom implementation that contains values you supplied
7
+ // during the `init` process, and you won't see this message
8
+ }
9
+
10
+
11
+
12
+
13
+
14
+ // Generated with fastlane 2.69.2
@@ -0,0 +1,118 @@
1
+ protocol DeliverfileProtocol: class {
2
+ var username: String { get }
3
+ var appIdentifier: String? { get }
4
+ var app: String { get }
5
+ var editLive: Bool { get }
6
+ var ipa: String? { get }
7
+ var pkg: String? { get }
8
+ var platform: String { get }
9
+ var metadataPath: String? { get }
10
+ var screenshotsPath: String? { get }
11
+ var skipBinaryUpload: Bool { get }
12
+ var skipScreenshots: Bool { get }
13
+ var appVersion: String? { get }
14
+ var skipMetadata: Bool { get }
15
+ var skipAppVersionUpdate: Bool { get }
16
+ var force: Bool { get }
17
+ var submitForReview: Bool { get }
18
+ var automaticRelease: Bool { get }
19
+ var autoReleaseDate: String? { get }
20
+ var phasedRelease: Bool { get }
21
+ var priceTier: String? { get }
22
+ var buildNumber: String? { get }
23
+ var appRatingConfigPath: String? { get }
24
+ var submissionInformation: String? { get }
25
+ var teamId: String? { get }
26
+ var teamName: String? { get }
27
+ var devPortalTeamId: String? { get }
28
+ var devPortalTeamName: String? { get }
29
+ var itcProvider: String? { get }
30
+ var overwriteScreenshots: Bool { get }
31
+ var runPrecheckBeforeSubmit: Bool { get }
32
+ var precheckDefaultRuleLevel: String { get }
33
+ var appIcon: String? { get }
34
+ var appleWatchAppIcon: String? { get }
35
+ var copyright: String? { get }
36
+ var primaryCategory: String? { get }
37
+ var secondaryCategory: String? { get }
38
+ var primaryFirstSubCategory: String? { get }
39
+ var primarySecondSubCategory: String? { get }
40
+ var secondaryFirstSubCategory: String? { get }
41
+ var secondarySecondSubCategory: String? { get }
42
+ var tradeRepresentativeContactInformation: [String : Any]? { get }
43
+ var appReviewInformation: [String : Any]? { get }
44
+ var description: String? { get }
45
+ var name: String? { get }
46
+ var subtitle: [String : Any]? { get }
47
+ var keywords: [String : Any]? { get }
48
+ var promotionalText: [String : Any]? { get }
49
+ var releaseNotes: String? { get }
50
+ var privacyUrl: String? { get }
51
+ var supportUrl: String? { get }
52
+ var marketingUrl: String? { get }
53
+ var languages: [String]? { get }
54
+ var ignoreLanguageDirectoryValidation: Bool { get }
55
+ var precheckIncludeInAppPurchases: Bool { get }
56
+ }
57
+
58
+ extension DeliverfileProtocol {
59
+ var username: String { return "" }
60
+ var appIdentifier: String? { return nil }
61
+ var app: String { return "" }
62
+ var editLive: Bool { return false }
63
+ var ipa: String? { return nil }
64
+ var pkg: String? { return nil }
65
+ var platform: String { return "ios" }
66
+ var metadataPath: String? { return nil }
67
+ var screenshotsPath: String? { return nil }
68
+ var skipBinaryUpload: Bool { return false }
69
+ var skipScreenshots: Bool { return false }
70
+ var appVersion: String? { return nil }
71
+ var skipMetadata: Bool { return false }
72
+ var skipAppVersionUpdate: Bool { return false }
73
+ var force: Bool { return false }
74
+ var submitForReview: Bool { return false }
75
+ var automaticRelease: Bool { return false }
76
+ var autoReleaseDate: String? { return nil }
77
+ var phasedRelease: Bool { return false }
78
+ var priceTier: String? { return nil }
79
+ var buildNumber: String? { return nil }
80
+ var appRatingConfigPath: String? { return nil }
81
+ var submissionInformation: String? { return nil }
82
+ var teamId: String? { return nil }
83
+ var teamName: String? { return nil }
84
+ var devPortalTeamId: String? { return nil }
85
+ var devPortalTeamName: String? { return nil }
86
+ var itcProvider: String? { return nil }
87
+ var overwriteScreenshots: Bool { return false }
88
+ var runPrecheckBeforeSubmit: Bool { return true }
89
+ var precheckDefaultRuleLevel: String { return "warn" }
90
+ var appIcon: String? { return nil }
91
+ var appleWatchAppIcon: String? { return nil }
92
+ var copyright: String? { return nil }
93
+ var primaryCategory: String? { return nil }
94
+ var secondaryCategory: String? { return nil }
95
+ var primaryFirstSubCategory: String? { return nil }
96
+ var primarySecondSubCategory: String? { return nil }
97
+ var secondaryFirstSubCategory: String? { return nil }
98
+ var secondarySecondSubCategory: String? { return nil }
99
+ var tradeRepresentativeContactInformation: [String : Any]? { return nil }
100
+ var appReviewInformation: [String : Any]? { return nil }
101
+ var description: String? { return nil }
102
+ var name: String? { return nil }
103
+ var subtitle: [String : Any]? { return nil }
104
+ var keywords: [String : Any]? { return nil }
105
+ var promotionalText: [String : Any]? { return nil }
106
+ var releaseNotes: String? { return nil }
107
+ var privacyUrl: String? { return nil }
108
+ var supportUrl: String? { return nil }
109
+ var marketingUrl: String? { return nil }
110
+ var languages: [String]? { return nil }
111
+ var ignoreLanguageDirectoryValidation: Bool { return false }
112
+ var precheckIncludeInAppPurchases: Bool { return true }
113
+ }
114
+
115
+
116
+ // Please don't remove the lines below
117
+ // They are used to detect outdated files
118
+ // FastlaneRunnerAPIVersion [0.9.1]
@@ -0,0 +1,12 @@
1
+ // This class is automatically included in FastlaneRunner during build
2
+ // If you have a custom Fastfile.swift, this file will be replaced by it
3
+ // Don't modify this file unless you are familiar with how fastlane's swift code generation works
4
+ // *** This file will be overwritten or replaced during build time ***
5
+
6
+ import Foundation
7
+
8
+ class Fastfile: LaneFile { }
9
+
10
+ // Please don't remove the lines below
11
+ // They are used to detect outdated files
12
+ // FastlaneRunnerAPIVersion [0.9.1]
@@ -0,0 +1,3739 @@
1
+ import Foundation
2
+ @discardableResult func adb(serial: String = "",
3
+ command: String? = nil,
4
+ adbPath: String = "adb") -> String {
5
+ let command = RubyCommand(commandID: "", methodName: "adb", className: nil, args: [RubyCommand.Argument(name: "serial", value: serial),
6
+ RubyCommand.Argument(name: "command", value: command),
7
+ RubyCommand.Argument(name: "adb_path", value: adbPath)])
8
+ return runner.executeCommand(command)
9
+ }
10
+ func adbDevices(adbPath: String = "adb") {
11
+ let command = RubyCommand(commandID: "", methodName: "adb_devices", className: nil, args: [RubyCommand.Argument(name: "adb_path", value: adbPath)])
12
+ _ = runner.executeCommand(command)
13
+ }
14
+ func addExtraPlatforms(platforms: [String] = []) {
15
+ let command = RubyCommand(commandID: "", methodName: "add_extra_platforms", className: nil, args: [RubyCommand.Argument(name: "platforms", value: platforms)])
16
+ _ = runner.executeCommand(command)
17
+ }
18
+ func addGitTag(tag: String? = nil,
19
+ grouping: String = "builds",
20
+ `prefix`: String = "",
21
+ buildNumber: String,
22
+ message: String? = nil,
23
+ commit: String? = nil,
24
+ force: Bool = false,
25
+ sign: Bool = false) {
26
+ let command = RubyCommand(commandID: "", methodName: "add_git_tag", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag),
27
+ RubyCommand.Argument(name: "grouping", value: grouping),
28
+ RubyCommand.Argument(name: "prefix", value: `prefix`),
29
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
30
+ RubyCommand.Argument(name: "message", value: message),
31
+ RubyCommand.Argument(name: "commit", value: commit),
32
+ RubyCommand.Argument(name: "force", value: force),
33
+ RubyCommand.Argument(name: "sign", value: sign)])
34
+ _ = runner.executeCommand(command)
35
+ }
36
+ func appStoreBuildNumber(initialBuildNumber: String = "1",
37
+ appIdentifier: String,
38
+ username: String,
39
+ teamId: String? = nil,
40
+ live: Bool = true,
41
+ version: String? = nil,
42
+ platform: String = "ios",
43
+ teamName: String? = nil) {
44
+ let command = RubyCommand(commandID: "", methodName: "app_store_build_number", className: nil, args: [RubyCommand.Argument(name: "initial_build_number", value: initialBuildNumber),
45
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
46
+ RubyCommand.Argument(name: "username", value: username),
47
+ RubyCommand.Argument(name: "team_id", value: teamId),
48
+ RubyCommand.Argument(name: "live", value: live),
49
+ RubyCommand.Argument(name: "version", value: version),
50
+ RubyCommand.Argument(name: "platform", value: platform),
51
+ RubyCommand.Argument(name: "team_name", value: teamName)])
52
+ _ = runner.executeCommand(command)
53
+ }
54
+ func appaloosa(binary: String,
55
+ apiToken: String,
56
+ storeId: String,
57
+ groupIds: String = "",
58
+ screenshots: String,
59
+ locale: String = "en-US",
60
+ device: String? = nil,
61
+ description: String? = nil) {
62
+ let command = RubyCommand(commandID: "", methodName: "appaloosa", className: nil, args: [RubyCommand.Argument(name: "binary", value: binary),
63
+ RubyCommand.Argument(name: "api_token", value: apiToken),
64
+ RubyCommand.Argument(name: "store_id", value: storeId),
65
+ RubyCommand.Argument(name: "group_ids", value: groupIds),
66
+ RubyCommand.Argument(name: "screenshots", value: screenshots),
67
+ RubyCommand.Argument(name: "locale", value: locale),
68
+ RubyCommand.Argument(name: "device", value: device),
69
+ RubyCommand.Argument(name: "description", value: description)])
70
+ _ = runner.executeCommand(command)
71
+ }
72
+ func appetize(apiToken: String,
73
+ url: String? = nil,
74
+ platform: String = "ios",
75
+ path: String? = nil,
76
+ publicKey: String? = nil,
77
+ note: String? = nil) {
78
+ let command = RubyCommand(commandID: "", methodName: "appetize", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
79
+ RubyCommand.Argument(name: "url", value: url),
80
+ RubyCommand.Argument(name: "platform", value: platform),
81
+ RubyCommand.Argument(name: "path", value: path),
82
+ RubyCommand.Argument(name: "public_key", value: publicKey),
83
+ RubyCommand.Argument(name: "note", value: note)])
84
+ _ = runner.executeCommand(command)
85
+ }
86
+ func appetizeViewingUrlGenerator(publicKey: String,
87
+ baseUrl: String = "https://appetize.io/embed",
88
+ device: String = "iphone5s",
89
+ scale: String? = nil,
90
+ orientation: String = "portrait",
91
+ language: String? = nil,
92
+ color: String = "black",
93
+ launchUrl: String? = nil,
94
+ osVersion: String? = nil,
95
+ params: String? = nil,
96
+ proxy: String? = nil) {
97
+ let command = RubyCommand(commandID: "", methodName: "appetize_viewing_url_generator", className: nil, args: [RubyCommand.Argument(name: "public_key", value: publicKey),
98
+ RubyCommand.Argument(name: "base_url", value: baseUrl),
99
+ RubyCommand.Argument(name: "device", value: device),
100
+ RubyCommand.Argument(name: "scale", value: scale),
101
+ RubyCommand.Argument(name: "orientation", value: orientation),
102
+ RubyCommand.Argument(name: "language", value: language),
103
+ RubyCommand.Argument(name: "color", value: color),
104
+ RubyCommand.Argument(name: "launch_url", value: launchUrl),
105
+ RubyCommand.Argument(name: "os_version", value: osVersion),
106
+ RubyCommand.Argument(name: "params", value: params),
107
+ RubyCommand.Argument(name: "proxy", value: proxy)])
108
+ _ = runner.executeCommand(command)
109
+ }
110
+ func appium(platform: String,
111
+ specPath: String,
112
+ appPath: String,
113
+ invokeAppiumServer: Bool = true,
114
+ host: String = "0.0.0.0",
115
+ port: String = "4723",
116
+ appiumPath: String? = nil,
117
+ caps: [String : Any]? = nil,
118
+ appiumLib: [String : Any]? = nil) {
119
+ let command = RubyCommand(commandID: "", methodName: "appium", className: nil, args: [RubyCommand.Argument(name: "platform", value: platform),
120
+ RubyCommand.Argument(name: "spec_path", value: specPath),
121
+ RubyCommand.Argument(name: "app_path", value: appPath),
122
+ RubyCommand.Argument(name: "invoke_appium_server", value: invokeAppiumServer),
123
+ RubyCommand.Argument(name: "host", value: host),
124
+ RubyCommand.Argument(name: "port", value: port),
125
+ RubyCommand.Argument(name: "appium_path", value: appiumPath),
126
+ RubyCommand.Argument(name: "caps", value: caps),
127
+ RubyCommand.Argument(name: "appium_lib", value: appiumLib)])
128
+ _ = runner.executeCommand(command)
129
+ }
130
+ func appledoc(input: String,
131
+ output: String? = nil,
132
+ templates: String? = nil,
133
+ docsetInstallPath: String? = nil,
134
+ include: String? = nil,
135
+ ignore: String? = nil,
136
+ excludeOutput: String? = nil,
137
+ indexDesc: String? = nil,
138
+ projectName: String,
139
+ projectVersion: String? = nil,
140
+ projectCompany: String,
141
+ companyId: String? = nil,
142
+ createHtml: Bool = false,
143
+ createDocset: Bool = false,
144
+ installDocset: Bool = false,
145
+ publishDocset: Bool = false,
146
+ htmlAnchors: String? = nil,
147
+ cleanOutput: Bool = false,
148
+ docsetBundleId: String? = nil,
149
+ docsetBundleName: String? = nil,
150
+ docsetDesc: String? = nil,
151
+ docsetCopyright: String? = nil,
152
+ docsetFeedName: String? = nil,
153
+ docsetFeedUrl: String? = nil,
154
+ docsetFeedFormats: String? = nil,
155
+ docsetPackageUrl: String? = nil,
156
+ docsetFallbackUrl: String? = nil,
157
+ docsetPublisherId: String? = nil,
158
+ docsetPublisherName: String? = nil,
159
+ docsetMinXcodeVersion: String? = nil,
160
+ docsetPlatformFamily: String? = nil,
161
+ docsetCertIssuer: String? = nil,
162
+ docsetCertSigner: String? = nil,
163
+ docsetBundleFilename: String? = nil,
164
+ docsetAtomFilename: String? = nil,
165
+ docsetXmlFilename: String? = nil,
166
+ docsetPackageFilename: String? = nil,
167
+ options: String? = nil,
168
+ crossrefFormat: String? = nil,
169
+ exitThreshold: String = "2",
170
+ docsSectionTitle: String? = nil,
171
+ warnings: String? = nil,
172
+ logformat: String? = nil,
173
+ verbose: String? = nil) {
174
+ let command = RubyCommand(commandID: "", methodName: "appledoc", className: nil, args: [RubyCommand.Argument(name: "input", value: input),
175
+ RubyCommand.Argument(name: "output", value: output),
176
+ RubyCommand.Argument(name: "templates", value: templates),
177
+ RubyCommand.Argument(name: "docset_install_path", value: docsetInstallPath),
178
+ RubyCommand.Argument(name: "include", value: include),
179
+ RubyCommand.Argument(name: "ignore", value: ignore),
180
+ RubyCommand.Argument(name: "exclude_output", value: excludeOutput),
181
+ RubyCommand.Argument(name: "index_desc", value: indexDesc),
182
+ RubyCommand.Argument(name: "project_name", value: projectName),
183
+ RubyCommand.Argument(name: "project_version", value: projectVersion),
184
+ RubyCommand.Argument(name: "project_company", value: projectCompany),
185
+ RubyCommand.Argument(name: "company_id", value: companyId),
186
+ RubyCommand.Argument(name: "create_html", value: createHtml),
187
+ RubyCommand.Argument(name: "create_docset", value: createDocset),
188
+ RubyCommand.Argument(name: "install_docset", value: installDocset),
189
+ RubyCommand.Argument(name: "publish_docset", value: publishDocset),
190
+ RubyCommand.Argument(name: "html_anchors", value: htmlAnchors),
191
+ RubyCommand.Argument(name: "clean_output", value: cleanOutput),
192
+ RubyCommand.Argument(name: "docset_bundle_id", value: docsetBundleId),
193
+ RubyCommand.Argument(name: "docset_bundle_name", value: docsetBundleName),
194
+ RubyCommand.Argument(name: "docset_desc", value: docsetDesc),
195
+ RubyCommand.Argument(name: "docset_copyright", value: docsetCopyright),
196
+ RubyCommand.Argument(name: "docset_feed_name", value: docsetFeedName),
197
+ RubyCommand.Argument(name: "docset_feed_url", value: docsetFeedUrl),
198
+ RubyCommand.Argument(name: "docset_feed_formats", value: docsetFeedFormats),
199
+ RubyCommand.Argument(name: "docset_package_url", value: docsetPackageUrl),
200
+ RubyCommand.Argument(name: "docset_fallback_url", value: docsetFallbackUrl),
201
+ RubyCommand.Argument(name: "docset_publisher_id", value: docsetPublisherId),
202
+ RubyCommand.Argument(name: "docset_publisher_name", value: docsetPublisherName),
203
+ RubyCommand.Argument(name: "docset_min_xcode_version", value: docsetMinXcodeVersion),
204
+ RubyCommand.Argument(name: "docset_platform_family", value: docsetPlatformFamily),
205
+ RubyCommand.Argument(name: "docset_cert_issuer", value: docsetCertIssuer),
206
+ RubyCommand.Argument(name: "docset_cert_signer", value: docsetCertSigner),
207
+ RubyCommand.Argument(name: "docset_bundle_filename", value: docsetBundleFilename),
208
+ RubyCommand.Argument(name: "docset_atom_filename", value: docsetAtomFilename),
209
+ RubyCommand.Argument(name: "docset_xml_filename", value: docsetXmlFilename),
210
+ RubyCommand.Argument(name: "docset_package_filename", value: docsetPackageFilename),
211
+ RubyCommand.Argument(name: "options", value: options),
212
+ RubyCommand.Argument(name: "crossref_format", value: crossrefFormat),
213
+ RubyCommand.Argument(name: "exit_threshold", value: exitThreshold),
214
+ RubyCommand.Argument(name: "docs_section_title", value: docsSectionTitle),
215
+ RubyCommand.Argument(name: "warnings", value: warnings),
216
+ RubyCommand.Argument(name: "logformat", value: logformat),
217
+ RubyCommand.Argument(name: "verbose", value: verbose)])
218
+ _ = runner.executeCommand(command)
219
+ }
220
+ func appstore(username: String,
221
+ appIdentifier: String? = nil,
222
+ app: String,
223
+ editLive: Bool = false,
224
+ ipa: String? = nil,
225
+ pkg: String? = nil,
226
+ platform: String = "ios",
227
+ metadataPath: String? = nil,
228
+ screenshotsPath: String? = nil,
229
+ skipBinaryUpload: Bool = false,
230
+ skipScreenshots: Bool = false,
231
+ appVersion: String? = nil,
232
+ skipMetadata: Bool = false,
233
+ skipAppVersionUpdate: Bool = false,
234
+ force: Bool = false,
235
+ submitForReview: Bool = false,
236
+ automaticRelease: Bool = false,
237
+ autoReleaseDate: String? = nil,
238
+ phasedRelease: Bool = false,
239
+ priceTier: String? = nil,
240
+ buildNumber: String? = nil,
241
+ appRatingConfigPath: String? = nil,
242
+ submissionInformation: String? = nil,
243
+ teamId: String? = nil,
244
+ teamName: String? = nil,
245
+ devPortalTeamId: String? = nil,
246
+ devPortalTeamName: String? = nil,
247
+ itcProvider: String? = nil,
248
+ overwriteScreenshots: Bool = false,
249
+ runPrecheckBeforeSubmit: Bool = true,
250
+ precheckDefaultRuleLevel: String = "warn",
251
+ appIcon: String? = nil,
252
+ appleWatchAppIcon: String? = nil,
253
+ copyright: String? = nil,
254
+ primaryCategory: String? = nil,
255
+ secondaryCategory: String? = nil,
256
+ primaryFirstSubCategory: String? = nil,
257
+ primarySecondSubCategory: String? = nil,
258
+ secondaryFirstSubCategory: String? = nil,
259
+ secondarySecondSubCategory: String? = nil,
260
+ tradeRepresentativeContactInformation: [String : Any]? = nil,
261
+ appReviewInformation: [String : Any]? = nil,
262
+ description: String? = nil,
263
+ name: String? = nil,
264
+ subtitle: [String : Any]? = nil,
265
+ keywords: [String : Any]? = nil,
266
+ promotionalText: [String : Any]? = nil,
267
+ releaseNotes: String? = nil,
268
+ privacyUrl: String? = nil,
269
+ supportUrl: String? = nil,
270
+ marketingUrl: String? = nil,
271
+ languages: [String]? = nil,
272
+ ignoreLanguageDirectoryValidation: Bool = false,
273
+ precheckIncludeInAppPurchases: Bool = true) {
274
+ let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
275
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
276
+ RubyCommand.Argument(name: "app", value: app),
277
+ RubyCommand.Argument(name: "edit_live", value: editLive),
278
+ RubyCommand.Argument(name: "ipa", value: ipa),
279
+ RubyCommand.Argument(name: "pkg", value: pkg),
280
+ RubyCommand.Argument(name: "platform", value: platform),
281
+ RubyCommand.Argument(name: "metadata_path", value: metadataPath),
282
+ RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
283
+ RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
284
+ RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
285
+ RubyCommand.Argument(name: "app_version", value: appVersion),
286
+ RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
287
+ RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
288
+ RubyCommand.Argument(name: "force", value: force),
289
+ RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
290
+ RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
291
+ RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
292
+ RubyCommand.Argument(name: "phased_release", value: phasedRelease),
293
+ RubyCommand.Argument(name: "price_tier", value: priceTier),
294
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
295
+ RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
296
+ RubyCommand.Argument(name: "submission_information", value: submissionInformation),
297
+ RubyCommand.Argument(name: "team_id", value: teamId),
298
+ RubyCommand.Argument(name: "team_name", value: teamName),
299
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
300
+ RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
301
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
302
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
303
+ RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
304
+ RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
305
+ RubyCommand.Argument(name: "app_icon", value: appIcon),
306
+ RubyCommand.Argument(name: "apple_watch_app_icon", value: appleWatchAppIcon),
307
+ RubyCommand.Argument(name: "copyright", value: copyright),
308
+ RubyCommand.Argument(name: "primary_category", value: primaryCategory),
309
+ RubyCommand.Argument(name: "secondary_category", value: secondaryCategory),
310
+ RubyCommand.Argument(name: "primary_first_sub_category", value: primaryFirstSubCategory),
311
+ RubyCommand.Argument(name: "primary_second_sub_category", value: primarySecondSubCategory),
312
+ RubyCommand.Argument(name: "secondary_first_sub_category", value: secondaryFirstSubCategory),
313
+ RubyCommand.Argument(name: "secondary_second_sub_category", value: secondarySecondSubCategory),
314
+ RubyCommand.Argument(name: "trade_representative_contact_information", value: tradeRepresentativeContactInformation),
315
+ RubyCommand.Argument(name: "app_review_information", value: appReviewInformation),
316
+ RubyCommand.Argument(name: "description", value: description),
317
+ RubyCommand.Argument(name: "name", value: name),
318
+ RubyCommand.Argument(name: "subtitle", value: subtitle),
319
+ RubyCommand.Argument(name: "keywords", value: keywords),
320
+ RubyCommand.Argument(name: "promotional_text", value: promotionalText),
321
+ RubyCommand.Argument(name: "release_notes", value: releaseNotes),
322
+ RubyCommand.Argument(name: "privacy_url", value: privacyUrl),
323
+ RubyCommand.Argument(name: "support_url", value: supportUrl),
324
+ RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
325
+ RubyCommand.Argument(name: "languages", value: languages),
326
+ RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
327
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
328
+ _ = runner.executeCommand(command)
329
+ }
330
+ func apteligent(dsym: String? = nil,
331
+ appId: String,
332
+ apiKey: String) {
333
+ let command = RubyCommand(commandID: "", methodName: "apteligent", className: nil, args: [RubyCommand.Argument(name: "dsym", value: dsym),
334
+ RubyCommand.Argument(name: "app_id", value: appId),
335
+ RubyCommand.Argument(name: "api_key", value: apiKey)])
336
+ _ = runner.executeCommand(command)
337
+ }
338
+ func artifactory(file: String,
339
+ repo: String,
340
+ repoPath: String,
341
+ endpoint: String,
342
+ username: String,
343
+ password: String,
344
+ properties: String = "{}",
345
+ sslPemFile: String? = nil,
346
+ sslVerify: Bool = true,
347
+ proxyUsername: String? = nil,
348
+ proxyPassword: String? = nil,
349
+ proxyAddress: String? = nil,
350
+ proxyPort: String? = nil) {
351
+ let command = RubyCommand(commandID: "", methodName: "artifactory", className: nil, args: [RubyCommand.Argument(name: "file", value: file),
352
+ RubyCommand.Argument(name: "repo", value: repo),
353
+ RubyCommand.Argument(name: "repo_path", value: repoPath),
354
+ RubyCommand.Argument(name: "endpoint", value: endpoint),
355
+ RubyCommand.Argument(name: "username", value: username),
356
+ RubyCommand.Argument(name: "password", value: password),
357
+ RubyCommand.Argument(name: "properties", value: properties),
358
+ RubyCommand.Argument(name: "ssl_pem_file", value: sslPemFile),
359
+ RubyCommand.Argument(name: "ssl_verify", value: sslVerify),
360
+ RubyCommand.Argument(name: "proxy_username", value: proxyUsername),
361
+ RubyCommand.Argument(name: "proxy_password", value: proxyPassword),
362
+ RubyCommand.Argument(name: "proxy_address", value: proxyAddress),
363
+ RubyCommand.Argument(name: "proxy_port", value: proxyPort)])
364
+ _ = runner.executeCommand(command)
365
+ }
366
+ func automaticCodeSigning(path: String,
367
+ useAutomaticSigning: Bool = false,
368
+ teamId: String? = nil,
369
+ targets: [String]? = nil) {
370
+ let command = RubyCommand(commandID: "", methodName: "automatic_code_signing", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
371
+ RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
372
+ RubyCommand.Argument(name: "team_id", value: teamId),
373
+ RubyCommand.Argument(name: "targets", value: targets)])
374
+ _ = runner.executeCommand(command)
375
+ }
376
+ func backupFile(path: String) {
377
+ let command = RubyCommand(commandID: "", methodName: "backup_file", className: nil, args: [RubyCommand.Argument(name: "path", value: path)])
378
+ _ = runner.executeCommand(command)
379
+ }
380
+ func backupXcarchive(xcarchive: String,
381
+ destination: String,
382
+ zip: Bool = true,
383
+ zipFilename: String? = nil,
384
+ versioned: Bool = true) {
385
+ let command = RubyCommand(commandID: "", methodName: "backup_xcarchive", className: nil, args: [RubyCommand.Argument(name: "xcarchive", value: xcarchive),
386
+ RubyCommand.Argument(name: "destination", value: destination),
387
+ RubyCommand.Argument(name: "zip", value: zip),
388
+ RubyCommand.Argument(name: "zip_filename", value: zipFilename),
389
+ RubyCommand.Argument(name: "versioned", value: versioned)])
390
+ _ = runner.executeCommand(command)
391
+ }
392
+ func badge(dark: String? = nil,
393
+ custom: String? = nil,
394
+ noBadge: String? = nil,
395
+ shield: String? = nil,
396
+ alpha: String? = nil,
397
+ path: String = ".",
398
+ shieldIoTimeout: String? = nil,
399
+ glob: String? = nil,
400
+ alphaChannel: String? = nil,
401
+ shieldGravity: String? = nil,
402
+ shieldNoResize: String? = nil) {
403
+ let command = RubyCommand(commandID: "", methodName: "badge", className: nil, args: [RubyCommand.Argument(name: "dark", value: dark),
404
+ RubyCommand.Argument(name: "custom", value: custom),
405
+ RubyCommand.Argument(name: "no_badge", value: noBadge),
406
+ RubyCommand.Argument(name: "shield", value: shield),
407
+ RubyCommand.Argument(name: "alpha", value: alpha),
408
+ RubyCommand.Argument(name: "path", value: path),
409
+ RubyCommand.Argument(name: "shield_io_timeout", value: shieldIoTimeout),
410
+ RubyCommand.Argument(name: "glob", value: glob),
411
+ RubyCommand.Argument(name: "alpha_channel", value: alphaChannel),
412
+ RubyCommand.Argument(name: "shield_gravity", value: shieldGravity),
413
+ RubyCommand.Argument(name: "shield_no_resize", value: shieldNoResize)])
414
+ _ = runner.executeCommand(command)
415
+ }
416
+ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
417
+ scheme: String? = nil,
418
+ apiToken: String) {
419
+ let command = RubyCommand(commandID: "", methodName: "build_and_upload_to_appetize", className: nil, args: [RubyCommand.Argument(name: "xcodebuild", value: xcodebuild),
420
+ RubyCommand.Argument(name: "scheme", value: scheme),
421
+ RubyCommand.Argument(name: "api_token", value: apiToken)])
422
+ _ = runner.executeCommand(command)
423
+ }
424
+ func buildAndroidApp(task: String,
425
+ flavor: String? = nil,
426
+ buildType: String? = nil,
427
+ flags: String? = nil,
428
+ projectDir: String = ".",
429
+ gradlePath: String? = nil,
430
+ properties: String? = nil,
431
+ systemProperties: String? = nil,
432
+ serial: String = "",
433
+ printCommand: Bool = true,
434
+ printCommandOutput: Bool = true) {
435
+ let command = RubyCommand(commandID: "", methodName: "build_android_app", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
436
+ RubyCommand.Argument(name: "flavor", value: flavor),
437
+ RubyCommand.Argument(name: "build_type", value: buildType),
438
+ RubyCommand.Argument(name: "flags", value: flags),
439
+ RubyCommand.Argument(name: "project_dir", value: projectDir),
440
+ RubyCommand.Argument(name: "gradle_path", value: gradlePath),
441
+ RubyCommand.Argument(name: "properties", value: properties),
442
+ RubyCommand.Argument(name: "system_properties", value: systemProperties),
443
+ RubyCommand.Argument(name: "serial", value: serial),
444
+ RubyCommand.Argument(name: "print_command", value: printCommand),
445
+ RubyCommand.Argument(name: "print_command_output", value: printCommandOutput)])
446
+ _ = runner.executeCommand(command)
447
+ }
448
+ func buildApp(workspace: String? = nil,
449
+ project: String? = nil,
450
+ scheme: String? = nil,
451
+ clean: Bool = false,
452
+ outputDirectory: String = ".",
453
+ outputName: String? = nil,
454
+ configuration: String? = nil,
455
+ silent: Bool = false,
456
+ codesigningIdentity: String? = nil,
457
+ skipPackageIpa: Bool = false,
458
+ includeSymbols: Bool? = nil,
459
+ includeBitcode: Bool? = nil,
460
+ exportMethod: String? = nil,
461
+ exportOptions: [String : Any]? = nil,
462
+ exportXcargs: String? = nil,
463
+ skipBuildArchive: Bool? = nil,
464
+ skipArchive: Bool? = nil,
465
+ buildPath: String? = nil,
466
+ archivePath: String? = nil,
467
+ derivedDataPath: String? = nil,
468
+ resultBundle: String? = nil,
469
+ buildlogPath: String = "~/Library/Logs/gym",
470
+ sdk: String? = nil,
471
+ toolchain: String? = nil,
472
+ destination: String? = nil,
473
+ exportTeamId: String? = nil,
474
+ xcargs: String? = nil,
475
+ xcconfig: String? = nil,
476
+ suppressXcodeOutput: String? = nil,
477
+ disableXcpretty: String? = nil,
478
+ xcprettyTestFormat: String? = nil,
479
+ xcprettyFormatter: String? = nil,
480
+ xcprettyReportJunit: String? = nil,
481
+ xcprettyReportHtml: String? = nil,
482
+ xcprettyReportJson: String? = nil,
483
+ analyzeBuildTime: String? = nil,
484
+ xcprettyUtf: String? = nil,
485
+ skipProfileDetection: Bool = false) {
486
+ let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
487
+ RubyCommand.Argument(name: "project", value: project),
488
+ RubyCommand.Argument(name: "scheme", value: scheme),
489
+ RubyCommand.Argument(name: "clean", value: clean),
490
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
491
+ RubyCommand.Argument(name: "output_name", value: outputName),
492
+ RubyCommand.Argument(name: "configuration", value: configuration),
493
+ RubyCommand.Argument(name: "silent", value: silent),
494
+ RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
495
+ RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
496
+ RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
497
+ RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
498
+ RubyCommand.Argument(name: "export_method", value: exportMethod),
499
+ RubyCommand.Argument(name: "export_options", value: exportOptions),
500
+ RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
501
+ RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
502
+ RubyCommand.Argument(name: "skip_archive", value: skipArchive),
503
+ RubyCommand.Argument(name: "build_path", value: buildPath),
504
+ RubyCommand.Argument(name: "archive_path", value: archivePath),
505
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
506
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
507
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
508
+ RubyCommand.Argument(name: "sdk", value: sdk),
509
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
510
+ RubyCommand.Argument(name: "destination", value: destination),
511
+ RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
512
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
513
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
514
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
515
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
516
+ RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
517
+ RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
518
+ RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
519
+ RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
520
+ RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
521
+ RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
522
+ RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
523
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
524
+ _ = runner.executeCommand(command)
525
+ }
526
+ func buildIosApp(workspace: String? = nil,
527
+ project: String? = nil,
528
+ scheme: String? = nil,
529
+ clean: Bool = false,
530
+ outputDirectory: String = ".",
531
+ outputName: String? = nil,
532
+ configuration: String? = nil,
533
+ silent: Bool = false,
534
+ codesigningIdentity: String? = nil,
535
+ skipPackageIpa: Bool = false,
536
+ includeSymbols: Bool? = nil,
537
+ includeBitcode: Bool? = nil,
538
+ exportMethod: String? = nil,
539
+ exportOptions: [String : Any]? = nil,
540
+ exportXcargs: String? = nil,
541
+ skipBuildArchive: Bool? = nil,
542
+ skipArchive: Bool? = nil,
543
+ buildPath: String? = nil,
544
+ archivePath: String? = nil,
545
+ derivedDataPath: String? = nil,
546
+ resultBundle: String? = nil,
547
+ buildlogPath: String = "~/Library/Logs/gym",
548
+ sdk: String? = nil,
549
+ toolchain: String? = nil,
550
+ destination: String? = nil,
551
+ exportTeamId: String? = nil,
552
+ xcargs: String? = nil,
553
+ xcconfig: String? = nil,
554
+ suppressXcodeOutput: String? = nil,
555
+ disableXcpretty: String? = nil,
556
+ xcprettyTestFormat: String? = nil,
557
+ xcprettyFormatter: String? = nil,
558
+ xcprettyReportJunit: String? = nil,
559
+ xcprettyReportHtml: String? = nil,
560
+ xcprettyReportJson: String? = nil,
561
+ analyzeBuildTime: String? = nil,
562
+ xcprettyUtf: String? = nil,
563
+ skipProfileDetection: Bool = false) {
564
+ let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
565
+ RubyCommand.Argument(name: "project", value: project),
566
+ RubyCommand.Argument(name: "scheme", value: scheme),
567
+ RubyCommand.Argument(name: "clean", value: clean),
568
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
569
+ RubyCommand.Argument(name: "output_name", value: outputName),
570
+ RubyCommand.Argument(name: "configuration", value: configuration),
571
+ RubyCommand.Argument(name: "silent", value: silent),
572
+ RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
573
+ RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
574
+ RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
575
+ RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
576
+ RubyCommand.Argument(name: "export_method", value: exportMethod),
577
+ RubyCommand.Argument(name: "export_options", value: exportOptions),
578
+ RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
579
+ RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
580
+ RubyCommand.Argument(name: "skip_archive", value: skipArchive),
581
+ RubyCommand.Argument(name: "build_path", value: buildPath),
582
+ RubyCommand.Argument(name: "archive_path", value: archivePath),
583
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
584
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
585
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
586
+ RubyCommand.Argument(name: "sdk", value: sdk),
587
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
588
+ RubyCommand.Argument(name: "destination", value: destination),
589
+ RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
590
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
591
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
592
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
593
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
594
+ RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
595
+ RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
596
+ RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
597
+ RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
598
+ RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
599
+ RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
600
+ RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
601
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
602
+ _ = runner.executeCommand(command)
603
+ }
604
+ func bundleInstall(binstubs: String? = nil,
605
+ clean: Bool = false,
606
+ fullIndex: Bool = false,
607
+ gemfile: String? = nil,
608
+ jobs: Bool? = nil,
609
+ local: Bool = false,
610
+ deployment: Bool = false,
611
+ noCache: Bool = false,
612
+ noPrune: Bool = false,
613
+ path: String? = nil,
614
+ system: Bool = false,
615
+ quiet: Bool = false,
616
+ retry: Bool? = nil,
617
+ shebang: String? = nil,
618
+ standalone: String? = nil,
619
+ trustPolicy: String? = nil,
620
+ without: String? = nil,
621
+ with: String? = nil) {
622
+ let command = RubyCommand(commandID: "", methodName: "bundle_install", className: nil, args: [RubyCommand.Argument(name: "binstubs", value: binstubs),
623
+ RubyCommand.Argument(name: "clean", value: clean),
624
+ RubyCommand.Argument(name: "full_index", value: fullIndex),
625
+ RubyCommand.Argument(name: "gemfile", value: gemfile),
626
+ RubyCommand.Argument(name: "jobs", value: jobs),
627
+ RubyCommand.Argument(name: "local", value: local),
628
+ RubyCommand.Argument(name: "deployment", value: deployment),
629
+ RubyCommand.Argument(name: "no_cache", value: noCache),
630
+ RubyCommand.Argument(name: "no_prune", value: noPrune),
631
+ RubyCommand.Argument(name: "path", value: path),
632
+ RubyCommand.Argument(name: "system", value: system),
633
+ RubyCommand.Argument(name: "quiet", value: quiet),
634
+ RubyCommand.Argument(name: "retry", value: retry),
635
+ RubyCommand.Argument(name: "shebang", value: shebang),
636
+ RubyCommand.Argument(name: "standalone", value: standalone),
637
+ RubyCommand.Argument(name: "trust_policy", value: trustPolicy),
638
+ RubyCommand.Argument(name: "without", value: without),
639
+ RubyCommand.Argument(name: "with", value: with)])
640
+ _ = runner.executeCommand(command)
641
+ }
642
+ func captureAndroidScreenshots(androidHome: String = "/Users/liebowitz/Library/Android/sdk",
643
+ buildToolsVersion: String? = nil,
644
+ locales: [String] = ["en-US"],
645
+ clearPreviousScreenshots: Bool = false,
646
+ outputDirectory: String = "fastlane/metadata/android",
647
+ skipOpenSummary: Bool = false,
648
+ appPackageName: String,
649
+ testsPackageName: String? = nil,
650
+ useTestsInPackages: [String]? = nil,
651
+ useTestsInClasses: [String]? = nil,
652
+ launchArguments: [String]? = nil,
653
+ testInstrumentationRunner: String = "android.support.test.runner.AndroidJUnitRunner",
654
+ endingLocale: String = "en-US",
655
+ appApkPath: String? = nil,
656
+ testsApkPath: String? = nil,
657
+ specificDevice: String? = nil,
658
+ deviceType: String = "phone",
659
+ exitOnTestFailure: Bool = true,
660
+ reinstallApp: Bool = false) {
661
+ let command = RubyCommand(commandID: "", methodName: "capture_android_screenshots", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
662
+ RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
663
+ RubyCommand.Argument(name: "locales", value: locales),
664
+ RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
665
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
666
+ RubyCommand.Argument(name: "skip_open_summary", value: skipOpenSummary),
667
+ RubyCommand.Argument(name: "app_package_name", value: appPackageName),
668
+ RubyCommand.Argument(name: "tests_package_name", value: testsPackageName),
669
+ RubyCommand.Argument(name: "use_tests_in_packages", value: useTestsInPackages),
670
+ RubyCommand.Argument(name: "use_tests_in_classes", value: useTestsInClasses),
671
+ RubyCommand.Argument(name: "launch_arguments", value: launchArguments),
672
+ RubyCommand.Argument(name: "test_instrumentation_runner", value: testInstrumentationRunner),
673
+ RubyCommand.Argument(name: "ending_locale", value: endingLocale),
674
+ RubyCommand.Argument(name: "app_apk_path", value: appApkPath),
675
+ RubyCommand.Argument(name: "tests_apk_path", value: testsApkPath),
676
+ RubyCommand.Argument(name: "specific_device", value: specificDevice),
677
+ RubyCommand.Argument(name: "device_type", value: deviceType),
678
+ RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
679
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp)])
680
+ _ = runner.executeCommand(command)
681
+ }
682
+ func captureIosScreenshots(workspace: String? = nil,
683
+ project: String? = nil,
684
+ xcargs: String? = nil,
685
+ devices: [String]? = nil,
686
+ languages: [String] = ["en-US"],
687
+ launchArguments: [String] = [""],
688
+ outputDirectory: String = "screenshots",
689
+ outputSimulatorLogs: Bool = false,
690
+ iosVersion: String? = nil,
691
+ skipOpenSummary: Bool = false,
692
+ skipHelperVersionCheck: Bool = false,
693
+ clearPreviousScreenshots: Bool = false,
694
+ reinstallApp: Bool = false,
695
+ eraseSimulator: Bool = false,
696
+ localizeSimulator: Bool = false,
697
+ appIdentifier: String? = nil,
698
+ addPhotos: [String]? = nil,
699
+ addVideos: [String]? = nil,
700
+ buildlogPath: String = "~/Library/Logs/snapshot",
701
+ clean: Bool = false,
702
+ configuration: String? = nil,
703
+ xcprettyArgs: String? = nil,
704
+ sdk: String? = nil,
705
+ scheme: String? = nil,
706
+ numberOfRetries: Int = 1,
707
+ stopAfterFirstError: Bool = false,
708
+ derivedDataPath: String? = nil,
709
+ testTargetName: String? = nil,
710
+ namespaceLogFiles: String? = nil,
711
+ concurrentSimulators: Bool = true) {
712
+ let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
713
+ RubyCommand.Argument(name: "project", value: project),
714
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
715
+ RubyCommand.Argument(name: "devices", value: devices),
716
+ RubyCommand.Argument(name: "languages", value: languages),
717
+ RubyCommand.Argument(name: "launch_arguments", value: launchArguments),
718
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
719
+ RubyCommand.Argument(name: "output_simulator_logs", value: outputSimulatorLogs),
720
+ RubyCommand.Argument(name: "ios_version", value: iosVersion),
721
+ RubyCommand.Argument(name: "skip_open_summary", value: skipOpenSummary),
722
+ RubyCommand.Argument(name: "skip_helper_version_check", value: skipHelperVersionCheck),
723
+ RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
724
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
725
+ RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
726
+ RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
727
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
728
+ RubyCommand.Argument(name: "add_photos", value: addPhotos),
729
+ RubyCommand.Argument(name: "add_videos", value: addVideos),
730
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
731
+ RubyCommand.Argument(name: "clean", value: clean),
732
+ RubyCommand.Argument(name: "configuration", value: configuration),
733
+ RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
734
+ RubyCommand.Argument(name: "sdk", value: sdk),
735
+ RubyCommand.Argument(name: "scheme", value: scheme),
736
+ RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries),
737
+ RubyCommand.Argument(name: "stop_after_first_error", value: stopAfterFirstError),
738
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
739
+ RubyCommand.Argument(name: "test_target_name", value: testTargetName),
740
+ RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
741
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
742
+ _ = runner.executeCommand(command)
743
+ }
744
+ func captureScreenshots(workspace: String? = nil,
745
+ project: String? = nil,
746
+ xcargs: String? = nil,
747
+ devices: [String]? = nil,
748
+ languages: [String] = ["en-US"],
749
+ launchArguments: [String] = [""],
750
+ outputDirectory: String = "screenshots",
751
+ outputSimulatorLogs: Bool = false,
752
+ iosVersion: String? = nil,
753
+ skipOpenSummary: Bool = false,
754
+ skipHelperVersionCheck: Bool = false,
755
+ clearPreviousScreenshots: Bool = false,
756
+ reinstallApp: Bool = false,
757
+ eraseSimulator: Bool = false,
758
+ localizeSimulator: Bool = false,
759
+ appIdentifier: String? = nil,
760
+ addPhotos: [String]? = nil,
761
+ addVideos: [String]? = nil,
762
+ buildlogPath: String = "~/Library/Logs/snapshot",
763
+ clean: Bool = false,
764
+ configuration: String? = nil,
765
+ xcprettyArgs: String? = nil,
766
+ sdk: String? = nil,
767
+ scheme: String? = nil,
768
+ numberOfRetries: Int = 1,
769
+ stopAfterFirstError: Bool = false,
770
+ derivedDataPath: String? = nil,
771
+ testTargetName: String? = nil,
772
+ namespaceLogFiles: String? = nil,
773
+ concurrentSimulators: Bool = true) {
774
+ let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
775
+ RubyCommand.Argument(name: "project", value: project),
776
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
777
+ RubyCommand.Argument(name: "devices", value: devices),
778
+ RubyCommand.Argument(name: "languages", value: languages),
779
+ RubyCommand.Argument(name: "launch_arguments", value: launchArguments),
780
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
781
+ RubyCommand.Argument(name: "output_simulator_logs", value: outputSimulatorLogs),
782
+ RubyCommand.Argument(name: "ios_version", value: iosVersion),
783
+ RubyCommand.Argument(name: "skip_open_summary", value: skipOpenSummary),
784
+ RubyCommand.Argument(name: "skip_helper_version_check", value: skipHelperVersionCheck),
785
+ RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
786
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
787
+ RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
788
+ RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
789
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
790
+ RubyCommand.Argument(name: "add_photos", value: addPhotos),
791
+ RubyCommand.Argument(name: "add_videos", value: addVideos),
792
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
793
+ RubyCommand.Argument(name: "clean", value: clean),
794
+ RubyCommand.Argument(name: "configuration", value: configuration),
795
+ RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
796
+ RubyCommand.Argument(name: "sdk", value: sdk),
797
+ RubyCommand.Argument(name: "scheme", value: scheme),
798
+ RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries),
799
+ RubyCommand.Argument(name: "stop_after_first_error", value: stopAfterFirstError),
800
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
801
+ RubyCommand.Argument(name: "test_target_name", value: testTargetName),
802
+ RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
803
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
804
+ _ = runner.executeCommand(command)
805
+ }
806
+ func carthage(command: String = "bootstrap",
807
+ dependencies: [String] = [],
808
+ useSsh: Bool? = nil,
809
+ useSubmodules: Bool? = nil,
810
+ useBinaries: Bool? = nil,
811
+ noBuild: Bool? = nil,
812
+ noSkipCurrent: Bool? = nil,
813
+ derivedData: String? = nil,
814
+ verbose: Bool? = nil,
815
+ platform: String? = nil,
816
+ cacheBuilds: Bool = false,
817
+ frameworks: [String] = [],
818
+ output: String? = nil,
819
+ configuration: String? = nil,
820
+ toolchain: String? = nil,
821
+ projectDirectory: String? = nil) {
822
+ let command = RubyCommand(commandID: "", methodName: "carthage", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
823
+ RubyCommand.Argument(name: "dependencies", value: dependencies),
824
+ RubyCommand.Argument(name: "use_ssh", value: useSsh),
825
+ RubyCommand.Argument(name: "use_submodules", value: useSubmodules),
826
+ RubyCommand.Argument(name: "use_binaries", value: useBinaries),
827
+ RubyCommand.Argument(name: "no_build", value: noBuild),
828
+ RubyCommand.Argument(name: "no_skip_current", value: noSkipCurrent),
829
+ RubyCommand.Argument(name: "derived_data", value: derivedData),
830
+ RubyCommand.Argument(name: "verbose", value: verbose),
831
+ RubyCommand.Argument(name: "platform", value: platform),
832
+ RubyCommand.Argument(name: "cache_builds", value: cacheBuilds),
833
+ RubyCommand.Argument(name: "frameworks", value: frameworks),
834
+ RubyCommand.Argument(name: "output", value: output),
835
+ RubyCommand.Argument(name: "configuration", value: configuration),
836
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
837
+ RubyCommand.Argument(name: "project_directory", value: projectDirectory)])
838
+ _ = runner.executeCommand(command)
839
+ }
840
+ func cert(development: Bool = false,
841
+ force: Bool = false,
842
+ username: String,
843
+ teamId: String? = nil,
844
+ teamName: String? = nil,
845
+ outputPath: String = ".",
846
+ keychainPath: String,
847
+ keychainPassword: String? = nil,
848
+ platform: String = "ios") {
849
+ let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
850
+ RubyCommand.Argument(name: "force", value: force),
851
+ RubyCommand.Argument(name: "username", value: username),
852
+ RubyCommand.Argument(name: "team_id", value: teamId),
853
+ RubyCommand.Argument(name: "team_name", value: teamName),
854
+ RubyCommand.Argument(name: "output_path", value: outputPath),
855
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath),
856
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
857
+ RubyCommand.Argument(name: "platform", value: platform)])
858
+ _ = runner.executeCommand(command)
859
+ }
860
+ @discardableResult func changelogFromGitCommits(between: String? = nil,
861
+ commitsCount: Int? = nil,
862
+ pretty: String = "%B",
863
+ dateFormat: String? = nil,
864
+ ancestryPath: Bool = false,
865
+ tagMatchPattern: String? = nil,
866
+ matchLightweightTag: Bool = true,
867
+ includeMerges: Bool? = nil,
868
+ mergeCommitFiltering: String = "include_merges") -> String {
869
+ let command = RubyCommand(commandID: "", methodName: "changelog_from_git_commits", className: nil, args: [RubyCommand.Argument(name: "between", value: between),
870
+ RubyCommand.Argument(name: "commits_count", value: commitsCount),
871
+ RubyCommand.Argument(name: "pretty", value: pretty),
872
+ RubyCommand.Argument(name: "date_format", value: dateFormat),
873
+ RubyCommand.Argument(name: "ancestry_path", value: ancestryPath),
874
+ RubyCommand.Argument(name: "tag_match_pattern", value: tagMatchPattern),
875
+ RubyCommand.Argument(name: "match_lightweight_tag", value: matchLightweightTag),
876
+ RubyCommand.Argument(name: "include_merges", value: includeMerges),
877
+ RubyCommand.Argument(name: "merge_commit_filtering", value: mergeCommitFiltering)])
878
+ return runner.executeCommand(command)
879
+ }
880
+ func chatwork(apiToken: String,
881
+ message: String,
882
+ roomid: String,
883
+ success: Bool = true) {
884
+ let command = RubyCommand(commandID: "", methodName: "chatwork", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
885
+ RubyCommand.Argument(name: "message", value: message),
886
+ RubyCommand.Argument(name: "roomid", value: roomid),
887
+ RubyCommand.Argument(name: "success", value: success)])
888
+ _ = runner.executeCommand(command)
889
+ }
890
+ func checkAppStoreMetadata(appIdentifier: String,
891
+ username: String,
892
+ teamId: String? = nil,
893
+ teamName: String? = nil,
894
+ defaultRuleLevel: String = "error",
895
+ includeInAppPurchases: Bool = true,
896
+ negativeAppleSentiment: String? = nil,
897
+ placeholderText: String? = nil,
898
+ otherPlatforms: String? = nil,
899
+ futureFunctionality: String? = nil,
900
+ testWords: String? = nil,
901
+ curseWords: String? = nil,
902
+ freeStuffInIap: String? = nil,
903
+ customText: String? = nil,
904
+ copyrightDate: String? = nil,
905
+ unreachableUrls: String? = nil) {
906
+ let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
907
+ RubyCommand.Argument(name: "username", value: username),
908
+ RubyCommand.Argument(name: "team_id", value: teamId),
909
+ RubyCommand.Argument(name: "team_name", value: teamName),
910
+ RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
911
+ RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
912
+ RubyCommand.Argument(name: "negative_apple_sentiment", value: negativeAppleSentiment),
913
+ RubyCommand.Argument(name: "placeholder_text", value: placeholderText),
914
+ RubyCommand.Argument(name: "other_platforms", value: otherPlatforms),
915
+ RubyCommand.Argument(name: "future_functionality", value: futureFunctionality),
916
+ RubyCommand.Argument(name: "test_words", value: testWords),
917
+ RubyCommand.Argument(name: "curse_words", value: curseWords),
918
+ RubyCommand.Argument(name: "free_stuff_in_iap", value: freeStuffInIap),
919
+ RubyCommand.Argument(name: "custom_text", value: customText),
920
+ RubyCommand.Argument(name: "copyright_date", value: copyrightDate),
921
+ RubyCommand.Argument(name: "unreachable_urls", value: unreachableUrls)])
922
+ _ = runner.executeCommand(command)
923
+ }
924
+ func cleanBuildArtifacts(excludePattern: String? = nil) {
925
+ let command = RubyCommand(commandID: "", methodName: "clean_build_artifacts", className: nil, args: [RubyCommand.Argument(name: "exclude_pattern", value: excludePattern)])
926
+ _ = runner.executeCommand(command)
927
+ }
928
+ func cleanCocoapodsCache(name: String? = nil) {
929
+ let command = RubyCommand(commandID: "", methodName: "clean_cocoapods_cache", className: nil, args: [RubyCommand.Argument(name: "name", value: name)])
930
+ _ = runner.executeCommand(command)
931
+ }
932
+ func clearDerivedData(derivedDataPath: String = "~/Library/Developer/Xcode/DerivedData") {
933
+ let command = RubyCommand(commandID: "", methodName: "clear_derived_data", className: nil, args: [RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath)])
934
+ _ = runner.executeCommand(command)
935
+ }
936
+ func clipboard(value: String) {
937
+ let command = RubyCommand(commandID: "", methodName: "clipboard", className: nil, args: [RubyCommand.Argument(name: "value", value: value)])
938
+ _ = runner.executeCommand(command)
939
+ }
940
+ func cloc(binaryPath: String = "/usr/local/bin/cloc",
941
+ excludeDir: String? = nil,
942
+ outputDirectory: String = "build",
943
+ sourceDirectory: String = "",
944
+ xml: Bool = true) {
945
+ let command = RubyCommand(commandID: "", methodName: "cloc", className: nil, args: [RubyCommand.Argument(name: "binary_path", value: binaryPath),
946
+ RubyCommand.Argument(name: "exclude_dir", value: excludeDir),
947
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
948
+ RubyCommand.Argument(name: "source_directory", value: sourceDirectory),
949
+ RubyCommand.Argument(name: "xml", value: xml)])
950
+ _ = runner.executeCommand(command)
951
+ }
952
+ func clubmate() {
953
+ let command = RubyCommand(commandID: "", methodName: "clubmate", className: nil, args: [])
954
+ _ = runner.executeCommand(command)
955
+ }
956
+ func cocoapods(clean: Bool = true,
957
+ integrate: Bool = true,
958
+ repoUpdate: Bool = false,
959
+ silent: Bool = false,
960
+ verbose: Bool = false,
961
+ ansi: Bool = true,
962
+ useBundleExec: Bool = true,
963
+ podfile: String? = nil,
964
+ errorCallback: String? = nil,
965
+ tryRepoUpdateOnError: Bool? = nil) {
966
+ let command = RubyCommand(commandID: "", methodName: "cocoapods", className: nil, args: [RubyCommand.Argument(name: "clean", value: clean),
967
+ RubyCommand.Argument(name: "integrate", value: integrate),
968
+ RubyCommand.Argument(name: "repo_update", value: repoUpdate),
969
+ RubyCommand.Argument(name: "silent", value: silent),
970
+ RubyCommand.Argument(name: "verbose", value: verbose),
971
+ RubyCommand.Argument(name: "ansi", value: ansi),
972
+ RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
973
+ RubyCommand.Argument(name: "podfile", value: podfile),
974
+ RubyCommand.Argument(name: "error_callback", value: errorCallback),
975
+ RubyCommand.Argument(name: "try_repo_update_on_error", value: tryRepoUpdateOnError)])
976
+ _ = runner.executeCommand(command)
977
+ }
978
+ @discardableResult func commitGithubFile(repositoryName: String,
979
+ serverUrl: String = "https://api.github.com",
980
+ apiToken: String,
981
+ branch: String = "master",
982
+ path: String,
983
+ message: String? = nil,
984
+ secure: Bool = true) -> [String : String] {
985
+ let command = RubyCommand(commandID: "", methodName: "commit_github_file", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
986
+ RubyCommand.Argument(name: "server_url", value: serverUrl),
987
+ RubyCommand.Argument(name: "api_token", value: apiToken),
988
+ RubyCommand.Argument(name: "branch", value: branch),
989
+ RubyCommand.Argument(name: "path", value: path),
990
+ RubyCommand.Argument(name: "message", value: message),
991
+ RubyCommand.Argument(name: "secure", value: secure)])
992
+ return parseDictionary(fromString: runner.executeCommand(command))
993
+ }
994
+ func commitVersionBump(message: String? = nil,
995
+ xcodeproj: String? = nil,
996
+ force: Bool = false,
997
+ settings: Bool = false,
998
+ ignore: String? = nil,
999
+ include: [String] = []) {
1000
+ let command = RubyCommand(commandID: "", methodName: "commit_version_bump", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
1001
+ RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
1002
+ RubyCommand.Argument(name: "force", value: force),
1003
+ RubyCommand.Argument(name: "settings", value: settings),
1004
+ RubyCommand.Argument(name: "ignore", value: ignore),
1005
+ RubyCommand.Argument(name: "include", value: include)])
1006
+ _ = runner.executeCommand(command)
1007
+ }
1008
+ func copyArtifacts(keepOriginal: Bool = true,
1009
+ targetPath: String = "artifacts",
1010
+ artifacts: [String] = [],
1011
+ failOnMissing: Bool = false) {
1012
+ let command = RubyCommand(commandID: "", methodName: "copy_artifacts", className: nil, args: [RubyCommand.Argument(name: "keep_original", value: keepOriginal),
1013
+ RubyCommand.Argument(name: "target_path", value: targetPath),
1014
+ RubyCommand.Argument(name: "artifacts", value: artifacts),
1015
+ RubyCommand.Argument(name: "fail_on_missing", value: failOnMissing)])
1016
+ _ = runner.executeCommand(command)
1017
+ }
1018
+ func crashlytics(ipaPath: String? = nil,
1019
+ apkPath: String? = nil,
1020
+ crashlyticsPath: String? = nil,
1021
+ apiToken: String,
1022
+ buildSecret: String,
1023
+ notesPath: String? = nil,
1024
+ notes: String? = nil,
1025
+ groups: String? = nil,
1026
+ emails: String? = nil,
1027
+ notifications: Bool = true,
1028
+ debug: Bool = false) {
1029
+ let command = RubyCommand(commandID: "", methodName: "crashlytics", className: nil, args: [RubyCommand.Argument(name: "ipa_path", value: ipaPath),
1030
+ RubyCommand.Argument(name: "apk_path", value: apkPath),
1031
+ RubyCommand.Argument(name: "crashlytics_path", value: crashlyticsPath),
1032
+ RubyCommand.Argument(name: "api_token", value: apiToken),
1033
+ RubyCommand.Argument(name: "build_secret", value: buildSecret),
1034
+ RubyCommand.Argument(name: "notes_path", value: notesPath),
1035
+ RubyCommand.Argument(name: "notes", value: notes),
1036
+ RubyCommand.Argument(name: "groups", value: groups),
1037
+ RubyCommand.Argument(name: "emails", value: emails),
1038
+ RubyCommand.Argument(name: "notifications", value: notifications),
1039
+ RubyCommand.Argument(name: "debug", value: debug)])
1040
+ _ = runner.executeCommand(command)
1041
+ }
1042
+ func createAppOnline(username: String,
1043
+ appIdentifier: String,
1044
+ bundleIdentifierSuffix: String? = nil,
1045
+ appName: String,
1046
+ appVersion: String? = nil,
1047
+ sku: String,
1048
+ platform: String = "ios",
1049
+ language: String = "English",
1050
+ companyName: String? = nil,
1051
+ skipItc: Bool = false,
1052
+ itcUsers: [String]? = nil,
1053
+ enabledFeatures: String = "{}",
1054
+ enableServices: String = "{}",
1055
+ skipDevcenter: Bool = false,
1056
+ teamId: String? = nil,
1057
+ teamName: String? = nil,
1058
+ itcTeamId: String? = nil,
1059
+ itcTeamName: String? = nil) {
1060
+ let command = RubyCommand(commandID: "", methodName: "create_app_online", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
1061
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1062
+ RubyCommand.Argument(name: "bundle_identifier_suffix", value: bundleIdentifierSuffix),
1063
+ RubyCommand.Argument(name: "app_name", value: appName),
1064
+ RubyCommand.Argument(name: "app_version", value: appVersion),
1065
+ RubyCommand.Argument(name: "sku", value: sku),
1066
+ RubyCommand.Argument(name: "platform", value: platform),
1067
+ RubyCommand.Argument(name: "language", value: language),
1068
+ RubyCommand.Argument(name: "company_name", value: companyName),
1069
+ RubyCommand.Argument(name: "skip_itc", value: skipItc),
1070
+ RubyCommand.Argument(name: "itc_users", value: itcUsers),
1071
+ RubyCommand.Argument(name: "enabled_features", value: enabledFeatures),
1072
+ RubyCommand.Argument(name: "enable_services", value: enableServices),
1073
+ RubyCommand.Argument(name: "skip_devcenter", value: skipDevcenter),
1074
+ RubyCommand.Argument(name: "team_id", value: teamId),
1075
+ RubyCommand.Argument(name: "team_name", value: teamName),
1076
+ RubyCommand.Argument(name: "itc_team_id", value: itcTeamId),
1077
+ RubyCommand.Argument(name: "itc_team_name", value: itcTeamName)])
1078
+ _ = runner.executeCommand(command)
1079
+ }
1080
+ func createKeychain(name: String? = nil,
1081
+ path: String? = nil,
1082
+ password: String,
1083
+ defaultKeychain: Bool = false,
1084
+ unlock: Bool = false,
1085
+ timeout: String = "300",
1086
+ lockWhenSleeps: Bool = false,
1087
+ lockAfterTimeout: Bool = false,
1088
+ addToSearchList: Bool = true) {
1089
+ let command = RubyCommand(commandID: "", methodName: "create_keychain", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
1090
+ RubyCommand.Argument(name: "path", value: path),
1091
+ RubyCommand.Argument(name: "password", value: password),
1092
+ RubyCommand.Argument(name: "default_keychain", value: defaultKeychain),
1093
+ RubyCommand.Argument(name: "unlock", value: unlock),
1094
+ RubyCommand.Argument(name: "timeout", value: timeout),
1095
+ RubyCommand.Argument(name: "lock_when_sleeps", value: lockWhenSleeps),
1096
+ RubyCommand.Argument(name: "lock_after_timeout", value: lockAfterTimeout),
1097
+ RubyCommand.Argument(name: "add_to_search_list", value: addToSearchList)])
1098
+ _ = runner.executeCommand(command)
1099
+ }
1100
+ func createPullRequest(apiToken: String,
1101
+ repo: String,
1102
+ title: String,
1103
+ body: String? = nil,
1104
+ head: String?,
1105
+ base: String = "master",
1106
+ apiUrl: String?) {
1107
+ let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
1108
+ RubyCommand.Argument(name: "repo", value: repo),
1109
+ RubyCommand.Argument(name: "title", value: title),
1110
+ RubyCommand.Argument(name: "body", value: body),
1111
+ RubyCommand.Argument(name: "head", value: head),
1112
+ RubyCommand.Argument(name: "base", value: base),
1113
+ RubyCommand.Argument(name: "api_url", value: apiUrl)])
1114
+ _ = runner.executeCommand(command)
1115
+ }
1116
+ func danger(useBundleExec: Bool = true,
1117
+ verbose: Bool = false,
1118
+ dangerId: String? = nil,
1119
+ dangerfile: String? = nil,
1120
+ githubApiToken: String? = nil,
1121
+ failOnErrors: Bool = false,
1122
+ newComment: Bool = false,
1123
+ base: String? = nil,
1124
+ head: String? = nil) {
1125
+ let command = RubyCommand(commandID: "", methodName: "danger", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
1126
+ RubyCommand.Argument(name: "verbose", value: verbose),
1127
+ RubyCommand.Argument(name: "danger_id", value: dangerId),
1128
+ RubyCommand.Argument(name: "dangerfile", value: dangerfile),
1129
+ RubyCommand.Argument(name: "github_api_token", value: githubApiToken),
1130
+ RubyCommand.Argument(name: "fail_on_errors", value: failOnErrors),
1131
+ RubyCommand.Argument(name: "new_comment", value: newComment),
1132
+ RubyCommand.Argument(name: "base", value: base),
1133
+ RubyCommand.Argument(name: "head", value: head)])
1134
+ _ = runner.executeCommand(command)
1135
+ }
1136
+ func deleteKeychain(name: String? = nil,
1137
+ keychainPath: String? = nil) {
1138
+ let command = RubyCommand(commandID: "", methodName: "delete_keychain", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
1139
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath)])
1140
+ _ = runner.executeCommand(command)
1141
+ }
1142
+ func deliver(username: String = deliverfile.username,
1143
+ appIdentifier: String? = deliverfile.appIdentifier,
1144
+ app: String = deliverfile.app,
1145
+ editLive: Bool = deliverfile.editLive,
1146
+ ipa: String? = deliverfile.ipa,
1147
+ pkg: String? = deliverfile.pkg,
1148
+ platform: String = deliverfile.platform,
1149
+ metadataPath: String? = deliverfile.metadataPath,
1150
+ screenshotsPath: String? = deliverfile.screenshotsPath,
1151
+ skipBinaryUpload: Bool = deliverfile.skipBinaryUpload,
1152
+ skipScreenshots: Bool = deliverfile.skipScreenshots,
1153
+ appVersion: String? = deliverfile.appVersion,
1154
+ skipMetadata: Bool = deliverfile.skipMetadata,
1155
+ skipAppVersionUpdate: Bool = deliverfile.skipAppVersionUpdate,
1156
+ force: Bool = deliverfile.force,
1157
+ submitForReview: Bool = deliverfile.submitForReview,
1158
+ automaticRelease: Bool = deliverfile.automaticRelease,
1159
+ autoReleaseDate: String? = deliverfile.autoReleaseDate,
1160
+ phasedRelease: Bool = deliverfile.phasedRelease,
1161
+ priceTier: String? = deliverfile.priceTier,
1162
+ buildNumber: String? = deliverfile.buildNumber,
1163
+ appRatingConfigPath: String? = deliverfile.appRatingConfigPath,
1164
+ submissionInformation: String? = deliverfile.submissionInformation,
1165
+ teamId: String? = deliverfile.teamId,
1166
+ teamName: String? = deliverfile.teamName,
1167
+ devPortalTeamId: String? = deliverfile.devPortalTeamId,
1168
+ devPortalTeamName: String? = deliverfile.devPortalTeamName,
1169
+ itcProvider: String? = deliverfile.itcProvider,
1170
+ overwriteScreenshots: Bool = deliverfile.overwriteScreenshots,
1171
+ runPrecheckBeforeSubmit: Bool = deliverfile.runPrecheckBeforeSubmit,
1172
+ precheckDefaultRuleLevel: String = deliverfile.precheckDefaultRuleLevel,
1173
+ appIcon: String? = deliverfile.appIcon,
1174
+ appleWatchAppIcon: String? = deliverfile.appleWatchAppIcon,
1175
+ copyright: String? = deliverfile.copyright,
1176
+ primaryCategory: String? = deliverfile.primaryCategory,
1177
+ secondaryCategory: String? = deliverfile.secondaryCategory,
1178
+ primaryFirstSubCategory: String? = deliverfile.primaryFirstSubCategory,
1179
+ primarySecondSubCategory: String? = deliverfile.primarySecondSubCategory,
1180
+ secondaryFirstSubCategory: String? = deliverfile.secondaryFirstSubCategory,
1181
+ secondarySecondSubCategory: String? = deliverfile.secondarySecondSubCategory,
1182
+ tradeRepresentativeContactInformation: [String : Any]? = deliverfile.tradeRepresentativeContactInformation,
1183
+ appReviewInformation: [String : Any]? = deliverfile.appReviewInformation,
1184
+ description: String? = deliverfile.description,
1185
+ name: String? = deliverfile.name,
1186
+ subtitle: [String : Any]? = deliverfile.subtitle,
1187
+ keywords: [String : Any]? = deliverfile.keywords,
1188
+ promotionalText: [String : Any]? = deliverfile.promotionalText,
1189
+ releaseNotes: String? = deliverfile.releaseNotes,
1190
+ privacyUrl: String? = deliverfile.privacyUrl,
1191
+ supportUrl: String? = deliverfile.supportUrl,
1192
+ marketingUrl: String? = deliverfile.marketingUrl,
1193
+ languages: [String]? = deliverfile.languages,
1194
+ ignoreLanguageDirectoryValidation: Bool = deliverfile.ignoreLanguageDirectoryValidation,
1195
+ precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases) {
1196
+ let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
1197
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1198
+ RubyCommand.Argument(name: "app", value: app),
1199
+ RubyCommand.Argument(name: "edit_live", value: editLive),
1200
+ RubyCommand.Argument(name: "ipa", value: ipa),
1201
+ RubyCommand.Argument(name: "pkg", value: pkg),
1202
+ RubyCommand.Argument(name: "platform", value: platform),
1203
+ RubyCommand.Argument(name: "metadata_path", value: metadataPath),
1204
+ RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
1205
+ RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
1206
+ RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
1207
+ RubyCommand.Argument(name: "app_version", value: appVersion),
1208
+ RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
1209
+ RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
1210
+ RubyCommand.Argument(name: "force", value: force),
1211
+ RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
1212
+ RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
1213
+ RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
1214
+ RubyCommand.Argument(name: "phased_release", value: phasedRelease),
1215
+ RubyCommand.Argument(name: "price_tier", value: priceTier),
1216
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
1217
+ RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
1218
+ RubyCommand.Argument(name: "submission_information", value: submissionInformation),
1219
+ RubyCommand.Argument(name: "team_id", value: teamId),
1220
+ RubyCommand.Argument(name: "team_name", value: teamName),
1221
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
1222
+ RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
1223
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
1224
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
1225
+ RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
1226
+ RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
1227
+ RubyCommand.Argument(name: "app_icon", value: appIcon),
1228
+ RubyCommand.Argument(name: "apple_watch_app_icon", value: appleWatchAppIcon),
1229
+ RubyCommand.Argument(name: "copyright", value: copyright),
1230
+ RubyCommand.Argument(name: "primary_category", value: primaryCategory),
1231
+ RubyCommand.Argument(name: "secondary_category", value: secondaryCategory),
1232
+ RubyCommand.Argument(name: "primary_first_sub_category", value: primaryFirstSubCategory),
1233
+ RubyCommand.Argument(name: "primary_second_sub_category", value: primarySecondSubCategory),
1234
+ RubyCommand.Argument(name: "secondary_first_sub_category", value: secondaryFirstSubCategory),
1235
+ RubyCommand.Argument(name: "secondary_second_sub_category", value: secondarySecondSubCategory),
1236
+ RubyCommand.Argument(name: "trade_representative_contact_information", value: tradeRepresentativeContactInformation),
1237
+ RubyCommand.Argument(name: "app_review_information", value: appReviewInformation),
1238
+ RubyCommand.Argument(name: "description", value: description),
1239
+ RubyCommand.Argument(name: "name", value: name),
1240
+ RubyCommand.Argument(name: "subtitle", value: subtitle),
1241
+ RubyCommand.Argument(name: "keywords", value: keywords),
1242
+ RubyCommand.Argument(name: "promotional_text", value: promotionalText),
1243
+ RubyCommand.Argument(name: "release_notes", value: releaseNotes),
1244
+ RubyCommand.Argument(name: "privacy_url", value: privacyUrl),
1245
+ RubyCommand.Argument(name: "support_url", value: supportUrl),
1246
+ RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
1247
+ RubyCommand.Argument(name: "languages", value: languages),
1248
+ RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
1249
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
1250
+ _ = runner.executeCommand(command)
1251
+ }
1252
+ func deploygate(apiToken: String,
1253
+ user: String,
1254
+ ipa: String? = nil,
1255
+ apk: String? = nil,
1256
+ message: String = "No changelog provided",
1257
+ distributionKey: String? = nil,
1258
+ releaseNote: String? = nil,
1259
+ disableNotify: Bool = false) {
1260
+ let command = RubyCommand(commandID: "", methodName: "deploygate", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
1261
+ RubyCommand.Argument(name: "user", value: user),
1262
+ RubyCommand.Argument(name: "ipa", value: ipa),
1263
+ RubyCommand.Argument(name: "apk", value: apk),
1264
+ RubyCommand.Argument(name: "message", value: message),
1265
+ RubyCommand.Argument(name: "distribution_key", value: distributionKey),
1266
+ RubyCommand.Argument(name: "release_note", value: releaseNote),
1267
+ RubyCommand.Argument(name: "disable_notify", value: disableNotify)])
1268
+ _ = runner.executeCommand(command)
1269
+ }
1270
+ func dotgpgEnvironment(dotgpgFile: String) {
1271
+ let command = RubyCommand(commandID: "", methodName: "dotgpg_environment", className: nil, args: [RubyCommand.Argument(name: "dotgpg_file", value: dotgpgFile)])
1272
+ _ = runner.executeCommand(command)
1273
+ }
1274
+ func download(url: String) {
1275
+ let command = RubyCommand(commandID: "", methodName: "download", className: nil, args: [RubyCommand.Argument(name: "url", value: url)])
1276
+ _ = runner.executeCommand(command)
1277
+ }
1278
+ func downloadDsyms(username: String,
1279
+ appIdentifier: String,
1280
+ teamId: String? = nil,
1281
+ teamName: String? = nil,
1282
+ platform: String = "ios",
1283
+ version: String? = nil,
1284
+ buildNumber: String? = nil,
1285
+ outputDirectory: String? = nil) {
1286
+ let command = RubyCommand(commandID: "", methodName: "download_dsyms", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
1287
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1288
+ RubyCommand.Argument(name: "team_id", value: teamId),
1289
+ RubyCommand.Argument(name: "team_name", value: teamName),
1290
+ RubyCommand.Argument(name: "platform", value: platform),
1291
+ RubyCommand.Argument(name: "version", value: version),
1292
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
1293
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory)])
1294
+ _ = runner.executeCommand(command)
1295
+ }
1296
+ func dsymZip(archivePath: String? = nil,
1297
+ dsymPath: String? = nil,
1298
+ all: Bool = false) {
1299
+ let command = RubyCommand(commandID: "", methodName: "dsym_zip", className: nil, args: [RubyCommand.Argument(name: "archive_path", value: archivePath),
1300
+ RubyCommand.Argument(name: "dsym_path", value: dsymPath),
1301
+ RubyCommand.Argument(name: "all", value: all)])
1302
+ _ = runner.executeCommand(command)
1303
+ }
1304
+ func ensureGitBranch(branch: String = "master") {
1305
+ let command = RubyCommand(commandID: "", methodName: "ensure_git_branch", className: nil, args: [RubyCommand.Argument(name: "branch", value: branch)])
1306
+ _ = runner.executeCommand(command)
1307
+ }
1308
+ func ensureGitStatusClean(showUncommittedChanges: Bool = false) {
1309
+ let command = RubyCommand(commandID: "", methodName: "ensure_git_status_clean", className: nil, args: [RubyCommand.Argument(name: "show_uncommitted_changes", value: showUncommittedChanges)])
1310
+ _ = runner.executeCommand(command)
1311
+ }
1312
+ func ensureNoDebugCode(text: String,
1313
+ path: String = ".",
1314
+ `extension`: String? = nil,
1315
+ extensions: String? = nil,
1316
+ exclude: String? = nil,
1317
+ excludeDirs: [String]? = nil) {
1318
+ let command = RubyCommand(commandID: "", methodName: "ensure_no_debug_code", className: nil, args: [RubyCommand.Argument(name: "text", value: text),
1319
+ RubyCommand.Argument(name: "path", value: path),
1320
+ RubyCommand.Argument(name: "extension", value: `extension`),
1321
+ RubyCommand.Argument(name: "extensions", value: extensions),
1322
+ RubyCommand.Argument(name: "exclude", value: exclude),
1323
+ RubyCommand.Argument(name: "exclude_dirs", value: excludeDirs)])
1324
+ _ = runner.executeCommand(command)
1325
+ }
1326
+ func ensureXcodeVersion(version: String) {
1327
+ let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version)])
1328
+ _ = runner.executeCommand(command)
1329
+ }
1330
+ @discardableResult func environmentVariable(`set`: [String : Any]? = nil,
1331
+ `get`: String? = nil,
1332
+ remove: String? = nil) -> String {
1333
+ let command = RubyCommand(commandID: "", methodName: "environment_variable", className: nil, args: [RubyCommand.Argument(name: "set", value: `set`),
1334
+ RubyCommand.Argument(name: "get", value: `get`),
1335
+ RubyCommand.Argument(name: "remove", value: remove)])
1336
+ return runner.executeCommand(command)
1337
+ }
1338
+ func erb(template: String,
1339
+ destination: String? = nil,
1340
+ placeholders: [String : Any] = [:]) {
1341
+ let command = RubyCommand(commandID: "", methodName: "erb", className: nil, args: [RubyCommand.Argument(name: "template", value: template),
1342
+ RubyCommand.Argument(name: "destination", value: destination),
1343
+ RubyCommand.Argument(name: "placeholders", value: placeholders)])
1344
+ _ = runner.executeCommand(command)
1345
+ }
1346
+ func flock(message: String,
1347
+ token: String,
1348
+ baseUrl: String = "https://api.flock.co/hooks/sendMessage") {
1349
+ let command = RubyCommand(commandID: "", methodName: "flock", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
1350
+ RubyCommand.Argument(name: "token", value: token),
1351
+ RubyCommand.Argument(name: "base_url", value: baseUrl)])
1352
+ _ = runner.executeCommand(command)
1353
+ }
1354
+ func frameScreenshots(white: String? = nil,
1355
+ silver: String? = nil,
1356
+ roseGold: String? = nil,
1357
+ gold: String? = nil,
1358
+ forceDeviceType: String? = nil,
1359
+ useLegacyIphone5s: Bool = false,
1360
+ useLegacyIphone6s: Bool = false,
1361
+ path: String = "./") {
1362
+ let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
1363
+ RubyCommand.Argument(name: "silver", value: silver),
1364
+ RubyCommand.Argument(name: "rose_gold", value: roseGold),
1365
+ RubyCommand.Argument(name: "gold", value: gold),
1366
+ RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
1367
+ RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
1368
+ RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
1369
+ RubyCommand.Argument(name: "path", value: path)])
1370
+ _ = runner.executeCommand(command)
1371
+ }
1372
+ func frameit(white: String? = nil,
1373
+ silver: String? = nil,
1374
+ roseGold: String? = nil,
1375
+ gold: String? = nil,
1376
+ forceDeviceType: String? = nil,
1377
+ useLegacyIphone5s: Bool = false,
1378
+ useLegacyIphone6s: Bool = false,
1379
+ path: String = "./") {
1380
+ let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
1381
+ RubyCommand.Argument(name: "silver", value: silver),
1382
+ RubyCommand.Argument(name: "rose_gold", value: roseGold),
1383
+ RubyCommand.Argument(name: "gold", value: gold),
1384
+ RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
1385
+ RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
1386
+ RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
1387
+ RubyCommand.Argument(name: "path", value: path)])
1388
+ _ = runner.executeCommand(command)
1389
+ }
1390
+ func gcovr() {
1391
+ let command = RubyCommand(commandID: "", methodName: "gcovr", className: nil, args: [])
1392
+ _ = runner.executeCommand(command)
1393
+ }
1394
+ func getBuildNumber(xcodeproj: String? = nil) {
1395
+ let command = RubyCommand(commandID: "", methodName: "get_build_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
1396
+ _ = runner.executeCommand(command)
1397
+ }
1398
+ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
1399
+ let command = RubyCommand(commandID: "", methodName: "get_build_number_repository", className: nil, args: [RubyCommand.Argument(name: "use_hg_revision_number", value: useHgRevisionNumber)])
1400
+ _ = runner.executeCommand(command)
1401
+ }
1402
+ func getCertificates(development: Bool = false,
1403
+ force: Bool = false,
1404
+ username: String,
1405
+ teamId: String? = nil,
1406
+ teamName: String? = nil,
1407
+ outputPath: String = ".",
1408
+ keychainPath: String = "/Users/liebowitz/Library/Keychains/login.keychain-db",
1409
+ keychainPassword: String? = nil,
1410
+ platform: String = "ios") {
1411
+ let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
1412
+ RubyCommand.Argument(name: "force", value: force),
1413
+ RubyCommand.Argument(name: "username", value: username),
1414
+ RubyCommand.Argument(name: "team_id", value: teamId),
1415
+ RubyCommand.Argument(name: "team_name", value: teamName),
1416
+ RubyCommand.Argument(name: "output_path", value: outputPath),
1417
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath),
1418
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
1419
+ RubyCommand.Argument(name: "platform", value: platform)])
1420
+ _ = runner.executeCommand(command)
1421
+ }
1422
+ func getGithubRelease(url: String,
1423
+ serverUrl: String = "https://api.github.com",
1424
+ version: String,
1425
+ apiToken: String? = nil) {
1426
+ let command = RubyCommand(commandID: "", methodName: "get_github_release", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
1427
+ RubyCommand.Argument(name: "server_url", value: serverUrl),
1428
+ RubyCommand.Argument(name: "version", value: version),
1429
+ RubyCommand.Argument(name: "api_token", value: apiToken)])
1430
+ _ = runner.executeCommand(command)
1431
+ }
1432
+ func getInfoPlistValue(key: String,
1433
+ path: String) {
1434
+ let command = RubyCommand(commandID: "", methodName: "get_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
1435
+ RubyCommand.Argument(name: "path", value: path)])
1436
+ _ = runner.executeCommand(command)
1437
+ }
1438
+ func getIpaInfoPlistValue(key: String,
1439
+ ipa: String) {
1440
+ let command = RubyCommand(commandID: "", methodName: "get_ipa_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
1441
+ RubyCommand.Argument(name: "ipa", value: ipa)])
1442
+ _ = runner.executeCommand(command)
1443
+ }
1444
+ func getProvisioningProfile(adhoc: Bool = false,
1445
+ development: Bool = false,
1446
+ skipInstall: Bool = false,
1447
+ force: Bool = false,
1448
+ appIdentifier: String,
1449
+ username: String,
1450
+ teamId: String? = nil,
1451
+ teamName: String? = nil,
1452
+ provisioningName: String? = nil,
1453
+ ignoreProfilesWithDifferentName: Bool = false,
1454
+ outputPath: String = ".",
1455
+ certId: String? = nil,
1456
+ certOwnerName: String? = nil,
1457
+ filename: String? = nil,
1458
+ skipFetchProfiles: Bool = false,
1459
+ skipCertificateVerification: Bool = false,
1460
+ platform: String = "ios",
1461
+ readonly: Bool = false,
1462
+ templateName: String? = nil) {
1463
+ let command = RubyCommand(commandID: "", methodName: "get_provisioning_profile", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
1464
+ RubyCommand.Argument(name: "development", value: development),
1465
+ RubyCommand.Argument(name: "skip_install", value: skipInstall),
1466
+ RubyCommand.Argument(name: "force", value: force),
1467
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1468
+ RubyCommand.Argument(name: "username", value: username),
1469
+ RubyCommand.Argument(name: "team_id", value: teamId),
1470
+ RubyCommand.Argument(name: "team_name", value: teamName),
1471
+ RubyCommand.Argument(name: "provisioning_name", value: provisioningName),
1472
+ RubyCommand.Argument(name: "ignore_profiles_with_different_name", value: ignoreProfilesWithDifferentName),
1473
+ RubyCommand.Argument(name: "output_path", value: outputPath),
1474
+ RubyCommand.Argument(name: "cert_id", value: certId),
1475
+ RubyCommand.Argument(name: "cert_owner_name", value: certOwnerName),
1476
+ RubyCommand.Argument(name: "filename", value: filename),
1477
+ RubyCommand.Argument(name: "skip_fetch_profiles", value: skipFetchProfiles),
1478
+ RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
1479
+ RubyCommand.Argument(name: "platform", value: platform),
1480
+ RubyCommand.Argument(name: "readonly", value: readonly),
1481
+ RubyCommand.Argument(name: "template_name", value: templateName)])
1482
+ _ = runner.executeCommand(command)
1483
+ }
1484
+ func getPushCertificate(development: Bool = false,
1485
+ generateP12: Bool = true,
1486
+ activeDaysLimit: String = "30",
1487
+ force: Bool = false,
1488
+ savePrivateKey: Bool = true,
1489
+ appIdentifier: String,
1490
+ username: String,
1491
+ teamId: String? = nil,
1492
+ teamName: String? = nil,
1493
+ p12Password: String = "",
1494
+ pemName: String? = nil,
1495
+ outputPath: String = ".",
1496
+ newProfile: String? = nil) {
1497
+ let command = RubyCommand(commandID: "", methodName: "get_push_certificate", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
1498
+ RubyCommand.Argument(name: "generate_p12", value: generateP12),
1499
+ RubyCommand.Argument(name: "active_days_limit", value: activeDaysLimit),
1500
+ RubyCommand.Argument(name: "force", value: force),
1501
+ RubyCommand.Argument(name: "save_private_key", value: savePrivateKey),
1502
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1503
+ RubyCommand.Argument(name: "username", value: username),
1504
+ RubyCommand.Argument(name: "team_id", value: teamId),
1505
+ RubyCommand.Argument(name: "team_name", value: teamName),
1506
+ RubyCommand.Argument(name: "p12_password", value: p12Password),
1507
+ RubyCommand.Argument(name: "pem_name", value: pemName),
1508
+ RubyCommand.Argument(name: "output_path", value: outputPath),
1509
+ RubyCommand.Argument(name: "new_profile", value: newProfile)])
1510
+ _ = runner.executeCommand(command)
1511
+ }
1512
+ func getVersionNumber(xcodeproj: String? = nil,
1513
+ scheme: String? = nil,
1514
+ target: String? = nil) {
1515
+ let command = RubyCommand(commandID: "", methodName: "get_version_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
1516
+ RubyCommand.Argument(name: "scheme", value: scheme),
1517
+ RubyCommand.Argument(name: "target", value: target)])
1518
+ _ = runner.executeCommand(command)
1519
+ }
1520
+ func gitAdd(path: String? = nil,
1521
+ pathspec: String? = nil) {
1522
+ let command = RubyCommand(commandID: "", methodName: "git_add", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
1523
+ RubyCommand.Argument(name: "pathspec", value: pathspec)])
1524
+ _ = runner.executeCommand(command)
1525
+ }
1526
+ func gitBranch() {
1527
+ let command = RubyCommand(commandID: "", methodName: "git_branch", className: nil, args: [])
1528
+ _ = runner.executeCommand(command)
1529
+ }
1530
+ func gitCommit(path: String,
1531
+ message: String) {
1532
+ let command = RubyCommand(commandID: "", methodName: "git_commit", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
1533
+ RubyCommand.Argument(name: "message", value: message)])
1534
+ _ = runner.executeCommand(command)
1535
+ }
1536
+ func gitPull(onlyTags: Bool = false) {
1537
+ let command = RubyCommand(commandID: "", methodName: "git_pull", className: nil, args: [RubyCommand.Argument(name: "only_tags", value: onlyTags)])
1538
+ _ = runner.executeCommand(command)
1539
+ }
1540
+ func gitTagExists(tag: String) {
1541
+ let command = RubyCommand(commandID: "", methodName: "git_tag_exists", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag)])
1542
+ _ = runner.executeCommand(command)
1543
+ }
1544
+ func githubApi(serverUrl: String = "https://api.github.com",
1545
+ apiToken: String,
1546
+ httpMethod: String = "GET",
1547
+ body: String = "{}",
1548
+ rawBody: String? = nil,
1549
+ path: String? = nil,
1550
+ url: String? = nil,
1551
+ errorHandlers: String = "{}",
1552
+ headers: String = "{}",
1553
+ secure: Bool = true) {
1554
+ let command = RubyCommand(commandID: "", methodName: "github_api", className: nil, args: [RubyCommand.Argument(name: "server_url", value: serverUrl),
1555
+ RubyCommand.Argument(name: "api_token", value: apiToken),
1556
+ RubyCommand.Argument(name: "http_method", value: httpMethod),
1557
+ RubyCommand.Argument(name: "body", value: body),
1558
+ RubyCommand.Argument(name: "raw_body", value: rawBody),
1559
+ RubyCommand.Argument(name: "path", value: path),
1560
+ RubyCommand.Argument(name: "url", value: url),
1561
+ RubyCommand.Argument(name: "error_handlers", value: errorHandlers),
1562
+ RubyCommand.Argument(name: "headers", value: headers),
1563
+ RubyCommand.Argument(name: "secure", value: secure)])
1564
+ _ = runner.executeCommand(command)
1565
+ }
1566
+ func googlePlayTrackVersionCodes(packageName: String,
1567
+ track: String = "production",
1568
+ key: String? = nil,
1569
+ issuer: String? = nil,
1570
+ jsonKey: String? = nil,
1571
+ jsonKeyData: String? = nil,
1572
+ rootUrl: String? = nil) {
1573
+ let command = RubyCommand(commandID: "", methodName: "google_play_track_version_codes", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
1574
+ RubyCommand.Argument(name: "track", value: track),
1575
+ RubyCommand.Argument(name: "key", value: key),
1576
+ RubyCommand.Argument(name: "issuer", value: issuer),
1577
+ RubyCommand.Argument(name: "json_key", value: jsonKey),
1578
+ RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
1579
+ RubyCommand.Argument(name: "root_url", value: rootUrl)])
1580
+ _ = runner.executeCommand(command)
1581
+ }
1582
+ func gradle(task: String,
1583
+ flavor: String? = nil,
1584
+ buildType: String? = nil,
1585
+ flags: String? = nil,
1586
+ projectDir: String = ".",
1587
+ gradlePath: String? = nil,
1588
+ properties: String? = nil,
1589
+ systemProperties: String? = nil,
1590
+ serial: String = "",
1591
+ printCommand: Bool = true,
1592
+ printCommandOutput: Bool = true) {
1593
+ let command = RubyCommand(commandID: "", methodName: "gradle", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
1594
+ RubyCommand.Argument(name: "flavor", value: flavor),
1595
+ RubyCommand.Argument(name: "build_type", value: buildType),
1596
+ RubyCommand.Argument(name: "flags", value: flags),
1597
+ RubyCommand.Argument(name: "project_dir", value: projectDir),
1598
+ RubyCommand.Argument(name: "gradle_path", value: gradlePath),
1599
+ RubyCommand.Argument(name: "properties", value: properties),
1600
+ RubyCommand.Argument(name: "system_properties", value: systemProperties),
1601
+ RubyCommand.Argument(name: "serial", value: serial),
1602
+ RubyCommand.Argument(name: "print_command", value: printCommand),
1603
+ RubyCommand.Argument(name: "print_command_output", value: printCommandOutput)])
1604
+ _ = runner.executeCommand(command)
1605
+ }
1606
+ func gym(workspace: String? = gymfile.workspace,
1607
+ project: String? = gymfile.project,
1608
+ scheme: String? = gymfile.scheme,
1609
+ clean: Bool = gymfile.clean,
1610
+ outputDirectory: String = gymfile.outputDirectory,
1611
+ outputName: String? = gymfile.outputName,
1612
+ configuration: String? = gymfile.configuration,
1613
+ silent: Bool = gymfile.silent,
1614
+ codesigningIdentity: String? = gymfile.codesigningIdentity,
1615
+ skipPackageIpa: Bool = gymfile.skipPackageIpa,
1616
+ includeSymbols: Bool? = gymfile.includeSymbols,
1617
+ includeBitcode: Bool? = gymfile.includeBitcode,
1618
+ exportMethod: String? = gymfile.exportMethod,
1619
+ exportOptions: [String : Any]? = gymfile.exportOptions,
1620
+ exportXcargs: String? = gymfile.exportXcargs,
1621
+ skipBuildArchive: Bool? = gymfile.skipBuildArchive,
1622
+ skipArchive: Bool? = gymfile.skipArchive,
1623
+ buildPath: String? = gymfile.buildPath,
1624
+ archivePath: String? = gymfile.archivePath,
1625
+ derivedDataPath: String? = gymfile.derivedDataPath,
1626
+ resultBundle: String? = gymfile.resultBundle,
1627
+ buildlogPath: String = gymfile.buildlogPath,
1628
+ sdk: String? = gymfile.sdk,
1629
+ toolchain: String? = gymfile.toolchain,
1630
+ destination: String? = gymfile.destination,
1631
+ exportTeamId: String? = gymfile.exportTeamId,
1632
+ xcargs: String? = gymfile.xcargs,
1633
+ xcconfig: String? = gymfile.xcconfig,
1634
+ suppressXcodeOutput: String? = gymfile.suppressXcodeOutput,
1635
+ disableXcpretty: String? = gymfile.disableXcpretty,
1636
+ xcprettyTestFormat: String? = gymfile.xcprettyTestFormat,
1637
+ xcprettyFormatter: String? = gymfile.xcprettyFormatter,
1638
+ xcprettyReportJunit: String? = gymfile.xcprettyReportJunit,
1639
+ xcprettyReportHtml: String? = gymfile.xcprettyReportHtml,
1640
+ xcprettyReportJson: String? = gymfile.xcprettyReportJson,
1641
+ analyzeBuildTime: String? = gymfile.analyzeBuildTime,
1642
+ xcprettyUtf: String? = gymfile.xcprettyUtf,
1643
+ skipProfileDetection: Bool = gymfile.skipProfileDetection) {
1644
+ let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1645
+ RubyCommand.Argument(name: "project", value: project),
1646
+ RubyCommand.Argument(name: "scheme", value: scheme),
1647
+ RubyCommand.Argument(name: "clean", value: clean),
1648
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
1649
+ RubyCommand.Argument(name: "output_name", value: outputName),
1650
+ RubyCommand.Argument(name: "configuration", value: configuration),
1651
+ RubyCommand.Argument(name: "silent", value: silent),
1652
+ RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
1653
+ RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
1654
+ RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
1655
+ RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
1656
+ RubyCommand.Argument(name: "export_method", value: exportMethod),
1657
+ RubyCommand.Argument(name: "export_options", value: exportOptions),
1658
+ RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
1659
+ RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
1660
+ RubyCommand.Argument(name: "skip_archive", value: skipArchive),
1661
+ RubyCommand.Argument(name: "build_path", value: buildPath),
1662
+ RubyCommand.Argument(name: "archive_path", value: archivePath),
1663
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
1664
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
1665
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
1666
+ RubyCommand.Argument(name: "sdk", value: sdk),
1667
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
1668
+ RubyCommand.Argument(name: "destination", value: destination),
1669
+ RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
1670
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
1671
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
1672
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1673
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1674
+ RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
1675
+ RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
1676
+ RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
1677
+ RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
1678
+ RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
1679
+ RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1680
+ RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1681
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
1682
+ _ = runner.executeCommand(command)
1683
+ }
1684
+ func hgAddTag(tag: String) {
1685
+ let command = RubyCommand(commandID: "", methodName: "hg_add_tag", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag)])
1686
+ _ = runner.executeCommand(command)
1687
+ }
1688
+ func hgCommitVersionBump(message: String = "Version Bump",
1689
+ xcodeproj: String? = nil,
1690
+ force: Bool = false,
1691
+ testDirtyFiles: String = "file1, file2",
1692
+ testExpectedFiles: String = "file1, file2") {
1693
+ let command = RubyCommand(commandID: "", methodName: "hg_commit_version_bump", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
1694
+ RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
1695
+ RubyCommand.Argument(name: "force", value: force),
1696
+ RubyCommand.Argument(name: "test_dirty_files", value: testDirtyFiles),
1697
+ RubyCommand.Argument(name: "test_expected_files", value: testExpectedFiles)])
1698
+ _ = runner.executeCommand(command)
1699
+ }
1700
+ func hgPush(force: Bool = false,
1701
+ destination: String = "") {
1702
+ let command = RubyCommand(commandID: "", methodName: "hg_push", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
1703
+ RubyCommand.Argument(name: "destination", value: destination)])
1704
+ _ = runner.executeCommand(command)
1705
+ }
1706
+ func hipchat(message: String = "",
1707
+ channel: String,
1708
+ apiToken: String,
1709
+ customColor: String? = nil,
1710
+ success: Bool = true,
1711
+ version: String,
1712
+ notifyRoom: Bool = false,
1713
+ apiHost: String = "api.hipchat.com",
1714
+ messageFormat: String = "html",
1715
+ includeHtmlHeader: Bool = true,
1716
+ from: String = "fastlane") {
1717
+ let command = RubyCommand(commandID: "", methodName: "hipchat", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
1718
+ RubyCommand.Argument(name: "channel", value: channel),
1719
+ RubyCommand.Argument(name: "api_token", value: apiToken),
1720
+ RubyCommand.Argument(name: "custom_color", value: customColor),
1721
+ RubyCommand.Argument(name: "success", value: success),
1722
+ RubyCommand.Argument(name: "version", value: version),
1723
+ RubyCommand.Argument(name: "notify_room", value: notifyRoom),
1724
+ RubyCommand.Argument(name: "api_host", value: apiHost),
1725
+ RubyCommand.Argument(name: "message_format", value: messageFormat),
1726
+ RubyCommand.Argument(name: "include_html_header", value: includeHtmlHeader),
1727
+ RubyCommand.Argument(name: "from", value: from)])
1728
+ _ = runner.executeCommand(command)
1729
+ }
1730
+ func hockey(apk: String? = nil,
1731
+ apiToken: String,
1732
+ ipa: String? = nil,
1733
+ dsym: String? = nil,
1734
+ createUpdate: Bool = false,
1735
+ notes: String = "No changelog given",
1736
+ notify: String = "1",
1737
+ status: String = "2",
1738
+ createStatus: String = "2",
1739
+ notesType: String = "1",
1740
+ releaseType: String = "0",
1741
+ mandatory: String = "0",
1742
+ teams: String? = nil,
1743
+ users: String? = nil,
1744
+ tags: String? = nil,
1745
+ bundleShortVersion: String? = nil,
1746
+ bundleVersion: String? = nil,
1747
+ publicIdentifier: String? = nil,
1748
+ commitSha: String? = nil,
1749
+ repositoryUrl: String? = nil,
1750
+ buildServerUrl: String? = nil,
1751
+ uploadDsymOnly: Bool = false,
1752
+ ownerId: String? = nil,
1753
+ strategy: String = "add",
1754
+ timeout: String? = nil,
1755
+ bypassCdn: Bool = false,
1756
+ dsaSignature: String = "") {
1757
+ let command = RubyCommand(commandID: "", methodName: "hockey", className: nil, args: [RubyCommand.Argument(name: "apk", value: apk),
1758
+ RubyCommand.Argument(name: "api_token", value: apiToken),
1759
+ RubyCommand.Argument(name: "ipa", value: ipa),
1760
+ RubyCommand.Argument(name: "dsym", value: dsym),
1761
+ RubyCommand.Argument(name: "create_update", value: createUpdate),
1762
+ RubyCommand.Argument(name: "notes", value: notes),
1763
+ RubyCommand.Argument(name: "notify", value: notify),
1764
+ RubyCommand.Argument(name: "status", value: status),
1765
+ RubyCommand.Argument(name: "create_status", value: createStatus),
1766
+ RubyCommand.Argument(name: "notes_type", value: notesType),
1767
+ RubyCommand.Argument(name: "release_type", value: releaseType),
1768
+ RubyCommand.Argument(name: "mandatory", value: mandatory),
1769
+ RubyCommand.Argument(name: "teams", value: teams),
1770
+ RubyCommand.Argument(name: "users", value: users),
1771
+ RubyCommand.Argument(name: "tags", value: tags),
1772
+ RubyCommand.Argument(name: "bundle_short_version", value: bundleShortVersion),
1773
+ RubyCommand.Argument(name: "bundle_version", value: bundleVersion),
1774
+ RubyCommand.Argument(name: "public_identifier", value: publicIdentifier),
1775
+ RubyCommand.Argument(name: "commit_sha", value: commitSha),
1776
+ RubyCommand.Argument(name: "repository_url", value: repositoryUrl),
1777
+ RubyCommand.Argument(name: "build_server_url", value: buildServerUrl),
1778
+ RubyCommand.Argument(name: "upload_dsym_only", value: uploadDsymOnly),
1779
+ RubyCommand.Argument(name: "owner_id", value: ownerId),
1780
+ RubyCommand.Argument(name: "strategy", value: strategy),
1781
+ RubyCommand.Argument(name: "timeout", value: timeout),
1782
+ RubyCommand.Argument(name: "bypass_cdn", value: bypassCdn),
1783
+ RubyCommand.Argument(name: "dsa_signature", value: dsaSignature)])
1784
+ _ = runner.executeCommand(command)
1785
+ }
1786
+ func ifttt(apiKey: String,
1787
+ eventName: String,
1788
+ value1: String? = nil,
1789
+ value2: String? = nil,
1790
+ value3: String? = nil) {
1791
+ let command = RubyCommand(commandID: "", methodName: "ifttt", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
1792
+ RubyCommand.Argument(name: "event_name", value: eventName),
1793
+ RubyCommand.Argument(name: "value1", value: value1),
1794
+ RubyCommand.Argument(name: "value2", value: value2),
1795
+ RubyCommand.Argument(name: "value3", value: value3)])
1796
+ _ = runner.executeCommand(command)
1797
+ }
1798
+ func importCertificate(keychainName: String,
1799
+ keychainPath: String? = nil,
1800
+ keychainPassword: String? = nil,
1801
+ certificatePath: String,
1802
+ certificatePassword: String = "",
1803
+ logOutput: Bool = false) {
1804
+ let command = RubyCommand(commandID: "", methodName: "import_certificate", className: nil, args: [RubyCommand.Argument(name: "keychain_name", value: keychainName),
1805
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath),
1806
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
1807
+ RubyCommand.Argument(name: "certificate_path", value: certificatePath),
1808
+ RubyCommand.Argument(name: "certificate_password", value: certificatePassword),
1809
+ RubyCommand.Argument(name: "log_output", value: logOutput)])
1810
+ _ = runner.executeCommand(command)
1811
+ }
1812
+ @discardableResult func incrementBuildNumber(buildNumber: String? = nil,
1813
+ xcodeproj: String? = nil) -> String {
1814
+ let command = RubyCommand(commandID: "", methodName: "increment_build_number", className: nil, args: [RubyCommand.Argument(name: "build_number", value: buildNumber),
1815
+ RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
1816
+ return runner.executeCommand(command)
1817
+ }
1818
+ @discardableResult func incrementVersionNumber(bumpType: String = "patch",
1819
+ versionNumber: String? = nil,
1820
+ xcodeproj: String? = nil) -> String {
1821
+ let command = RubyCommand(commandID: "", methodName: "increment_version_number", className: nil, args: [RubyCommand.Argument(name: "bump_type", value: bumpType),
1822
+ RubyCommand.Argument(name: "version_number", value: versionNumber),
1823
+ RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
1824
+ return runner.executeCommand(command)
1825
+ }
1826
+ func installOnDevice(extra: String? = nil,
1827
+ deviceId: String? = nil,
1828
+ skipWifi: String? = nil,
1829
+ ipa: String? = nil) {
1830
+ let command = RubyCommand(commandID: "", methodName: "install_on_device", className: nil, args: [RubyCommand.Argument(name: "extra", value: extra),
1831
+ RubyCommand.Argument(name: "device_id", value: deviceId),
1832
+ RubyCommand.Argument(name: "skip_wifi", value: skipWifi),
1833
+ RubyCommand.Argument(name: "ipa", value: ipa)])
1834
+ _ = runner.executeCommand(command)
1835
+ }
1836
+ func installXcodePlugin(url: String,
1837
+ github: String? = nil) {
1838
+ let command = RubyCommand(commandID: "", methodName: "install_xcode_plugin", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
1839
+ RubyCommand.Argument(name: "github", value: github)])
1840
+ _ = runner.executeCommand(command)
1841
+ }
1842
+ func installr(apiToken: String,
1843
+ ipa: String,
1844
+ notes: String? = nil,
1845
+ notify: String? = nil,
1846
+ add: String? = nil) {
1847
+ let command = RubyCommand(commandID: "", methodName: "installr", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
1848
+ RubyCommand.Argument(name: "ipa", value: ipa),
1849
+ RubyCommand.Argument(name: "notes", value: notes),
1850
+ RubyCommand.Argument(name: "notify", value: notify),
1851
+ RubyCommand.Argument(name: "add", value: add)])
1852
+ _ = runner.executeCommand(command)
1853
+ }
1854
+ func ipa(workspace: String? = nil,
1855
+ project: String? = nil,
1856
+ configuration: String? = nil,
1857
+ scheme: String? = nil,
1858
+ clean: String? = nil,
1859
+ archive: String? = nil,
1860
+ destination: String? = nil,
1861
+ embed: String? = nil,
1862
+ identity: String? = nil,
1863
+ sdk: String? = nil,
1864
+ ipa: String? = nil,
1865
+ xcconfig: String? = nil,
1866
+ xcargs: String? = nil) {
1867
+ let command = RubyCommand(commandID: "", methodName: "ipa", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1868
+ RubyCommand.Argument(name: "project", value: project),
1869
+ RubyCommand.Argument(name: "configuration", value: configuration),
1870
+ RubyCommand.Argument(name: "scheme", value: scheme),
1871
+ RubyCommand.Argument(name: "clean", value: clean),
1872
+ RubyCommand.Argument(name: "archive", value: archive),
1873
+ RubyCommand.Argument(name: "destination", value: destination),
1874
+ RubyCommand.Argument(name: "embed", value: embed),
1875
+ RubyCommand.Argument(name: "identity", value: identity),
1876
+ RubyCommand.Argument(name: "sdk", value: sdk),
1877
+ RubyCommand.Argument(name: "ipa", value: ipa),
1878
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
1879
+ RubyCommand.Argument(name: "xcargs", value: xcargs)])
1880
+ _ = runner.executeCommand(command)
1881
+ }
1882
+ @discardableResult func isCi() -> Bool {
1883
+ let command = RubyCommand(commandID: "", methodName: "is_ci", className: nil, args: [])
1884
+ return parseBool(fromString: runner.executeCommand(command))
1885
+ }
1886
+ func jazzy(config: String? = nil) {
1887
+ let command = RubyCommand(commandID: "", methodName: "jazzy", className: nil, args: [RubyCommand.Argument(name: "config", value: config)])
1888
+ _ = runner.executeCommand(command)
1889
+ }
1890
+ func jira(url: String,
1891
+ username: String,
1892
+ password: String,
1893
+ ticketId: String,
1894
+ commentText: String) {
1895
+ let command = RubyCommand(commandID: "", methodName: "jira", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
1896
+ RubyCommand.Argument(name: "username", value: username),
1897
+ RubyCommand.Argument(name: "password", value: password),
1898
+ RubyCommand.Argument(name: "ticket_id", value: ticketId),
1899
+ RubyCommand.Argument(name: "comment_text", value: commentText)])
1900
+ _ = runner.executeCommand(command)
1901
+ }
1902
+ func laneContext() {
1903
+ let command = RubyCommand(commandID: "", methodName: "lane_context", className: nil, args: [])
1904
+ _ = runner.executeCommand(command)
1905
+ }
1906
+ @discardableResult func lastGitTag() -> String {
1907
+ let command = RubyCommand(commandID: "", methodName: "last_git_tag", className: nil, args: [])
1908
+ return runner.executeCommand(command)
1909
+ }
1910
+ @discardableResult func latestTestflightBuildNumber(live: Bool = false,
1911
+ appIdentifier: String,
1912
+ username: String,
1913
+ version: String? = nil,
1914
+ platform: String = "ios",
1915
+ initialBuildNumber: String = "1",
1916
+ teamId: String? = nil,
1917
+ teamName: String? = nil) -> Int {
1918
+ let command = RubyCommand(commandID: "", methodName: "latest_testflight_build_number", className: nil, args: [RubyCommand.Argument(name: "live", value: live),
1919
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1920
+ RubyCommand.Argument(name: "username", value: username),
1921
+ RubyCommand.Argument(name: "version", value: version),
1922
+ RubyCommand.Argument(name: "platform", value: platform),
1923
+ RubyCommand.Argument(name: "initial_build_number", value: initialBuildNumber),
1924
+ RubyCommand.Argument(name: "team_id", value: teamId),
1925
+ RubyCommand.Argument(name: "team_name", value: teamName)])
1926
+ return parseInt(fromString: runner.executeCommand(command))
1927
+ }
1928
+ func lcov(projectName: String,
1929
+ scheme: String,
1930
+ arch: String = "i386",
1931
+ outputDir: String = "coverage_reports") {
1932
+ let command = RubyCommand(commandID: "", methodName: "lcov", className: nil, args: [RubyCommand.Argument(name: "project_name", value: projectName),
1933
+ RubyCommand.Argument(name: "scheme", value: scheme),
1934
+ RubyCommand.Argument(name: "arch", value: arch),
1935
+ RubyCommand.Argument(name: "output_dir", value: outputDir)])
1936
+ _ = runner.executeCommand(command)
1937
+ }
1938
+ func mailgun(mailgunSandboxDomain: String? = nil,
1939
+ mailgunSandboxPostmaster: String? = nil,
1940
+ mailgunApikey: String? = nil,
1941
+ postmaster: String,
1942
+ apikey: String,
1943
+ to: String,
1944
+ from: String = "Mailgun Sandbox",
1945
+ message: String,
1946
+ subject: String = "fastlane build",
1947
+ success: Bool = true,
1948
+ appLink: String,
1949
+ ciBuildLink: String? = nil,
1950
+ templatePath: String? = nil,
1951
+ replyTo: String? = nil,
1952
+ attachment: String? = nil) {
1953
+ let command = RubyCommand(commandID: "", methodName: "mailgun", className: nil, args: [RubyCommand.Argument(name: "mailgun_sandbox_domain", value: mailgunSandboxDomain),
1954
+ RubyCommand.Argument(name: "mailgun_sandbox_postmaster", value: mailgunSandboxPostmaster),
1955
+ RubyCommand.Argument(name: "mailgun_apikey", value: mailgunApikey),
1956
+ RubyCommand.Argument(name: "postmaster", value: postmaster),
1957
+ RubyCommand.Argument(name: "apikey", value: apikey),
1958
+ RubyCommand.Argument(name: "to", value: to),
1959
+ RubyCommand.Argument(name: "from", value: from),
1960
+ RubyCommand.Argument(name: "message", value: message),
1961
+ RubyCommand.Argument(name: "subject", value: subject),
1962
+ RubyCommand.Argument(name: "success", value: success),
1963
+ RubyCommand.Argument(name: "app_link", value: appLink),
1964
+ RubyCommand.Argument(name: "ci_build_link", value: ciBuildLink),
1965
+ RubyCommand.Argument(name: "template_path", value: templatePath),
1966
+ RubyCommand.Argument(name: "reply_to", value: replyTo),
1967
+ RubyCommand.Argument(name: "attachment", value: attachment)])
1968
+ _ = runner.executeCommand(command)
1969
+ }
1970
+ func makeChangelogFromJenkins(fallbackChangelog: String = "",
1971
+ includeCommitBody: Bool = true) {
1972
+ let command = RubyCommand(commandID: "", methodName: "make_changelog_from_jenkins", className: nil, args: [RubyCommand.Argument(name: "fallback_changelog", value: fallbackChangelog),
1973
+ RubyCommand.Argument(name: "include_commit_body", value: includeCommitBody)])
1974
+ _ = runner.executeCommand(command)
1975
+ }
1976
+ func match(gitUrl: String = matchfile.gitUrl,
1977
+ gitBranch: String = matchfile.gitBranch,
1978
+ type: String = matchfile.type,
1979
+ appIdentifier: [String] = matchfile.appIdentifier,
1980
+ username: String = matchfile.username,
1981
+ keychainName: String = matchfile.keychainName,
1982
+ keychainPassword: String? = matchfile.keychainPassword,
1983
+ readonly: Bool = matchfile.readonly,
1984
+ teamId: String? = matchfile.teamId,
1985
+ gitFullName: String? = matchfile.gitFullName,
1986
+ gitUserEmail: String? = matchfile.gitUserEmail,
1987
+ teamName: String? = matchfile.teamName,
1988
+ verbose: Bool = matchfile.verbose,
1989
+ force: Bool = matchfile.force,
1990
+ skipConfirmation: Bool = matchfile.skipConfirmation,
1991
+ shallowClone: Bool = matchfile.shallowClone,
1992
+ cloneBranchDirectly: Bool = matchfile.cloneBranchDirectly,
1993
+ workspace: String? = matchfile.workspace,
1994
+ forceForNewDevices: Bool = matchfile.forceForNewDevices,
1995
+ skipDocs: Bool = matchfile.skipDocs,
1996
+ platform: String = matchfile.platform,
1997
+ templateName: String? = matchfile.templateName) {
1998
+ let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "git_url", value: gitUrl),
1999
+ RubyCommand.Argument(name: "git_branch", value: gitBranch),
2000
+ RubyCommand.Argument(name: "type", value: type),
2001
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2002
+ RubyCommand.Argument(name: "username", value: username),
2003
+ RubyCommand.Argument(name: "keychain_name", value: keychainName),
2004
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
2005
+ RubyCommand.Argument(name: "readonly", value: readonly),
2006
+ RubyCommand.Argument(name: "team_id", value: teamId),
2007
+ RubyCommand.Argument(name: "git_full_name", value: gitFullName),
2008
+ RubyCommand.Argument(name: "git_user_email", value: gitUserEmail),
2009
+ RubyCommand.Argument(name: "team_name", value: teamName),
2010
+ RubyCommand.Argument(name: "verbose", value: verbose),
2011
+ RubyCommand.Argument(name: "force", value: force),
2012
+ RubyCommand.Argument(name: "skip_confirmation", value: skipConfirmation),
2013
+ RubyCommand.Argument(name: "shallow_clone", value: shallowClone),
2014
+ RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
2015
+ RubyCommand.Argument(name: "workspace", value: workspace),
2016
+ RubyCommand.Argument(name: "force_for_new_devices", value: forceForNewDevices),
2017
+ RubyCommand.Argument(name: "skip_docs", value: skipDocs),
2018
+ RubyCommand.Argument(name: "platform", value: platform),
2019
+ RubyCommand.Argument(name: "template_name", value: templateName)])
2020
+ _ = runner.executeCommand(command)
2021
+ }
2022
+ func modifyServices(username: String,
2023
+ appIdentifier: String,
2024
+ services: [String : Any] = [:],
2025
+ teamId: String? = nil,
2026
+ teamName: String? = nil) {
2027
+ let command = RubyCommand(commandID: "", methodName: "modify_services", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2028
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2029
+ RubyCommand.Argument(name: "services", value: services),
2030
+ RubyCommand.Argument(name: "team_id", value: teamId),
2031
+ RubyCommand.Argument(name: "team_name", value: teamName)])
2032
+ _ = runner.executeCommand(command)
2033
+ }
2034
+ func nexusUpload(file: String,
2035
+ repoId: String,
2036
+ repoGroupId: String,
2037
+ repoProjectName: String,
2038
+ repoProjectVersion: String,
2039
+ repoClassifier: String? = nil,
2040
+ endpoint: String,
2041
+ mountPath: String = "/nexus",
2042
+ username: String,
2043
+ password: String,
2044
+ sslVerify: Bool = true,
2045
+ verbose: Bool = false,
2046
+ proxyUsername: String? = nil,
2047
+ proxyPassword: String? = nil,
2048
+ proxyAddress: String? = nil,
2049
+ proxyPort: String? = nil) {
2050
+ let command = RubyCommand(commandID: "", methodName: "nexus_upload", className: nil, args: [RubyCommand.Argument(name: "file", value: file),
2051
+ RubyCommand.Argument(name: "repo_id", value: repoId),
2052
+ RubyCommand.Argument(name: "repo_group_id", value: repoGroupId),
2053
+ RubyCommand.Argument(name: "repo_project_name", value: repoProjectName),
2054
+ RubyCommand.Argument(name: "repo_project_version", value: repoProjectVersion),
2055
+ RubyCommand.Argument(name: "repo_classifier", value: repoClassifier),
2056
+ RubyCommand.Argument(name: "endpoint", value: endpoint),
2057
+ RubyCommand.Argument(name: "mount_path", value: mountPath),
2058
+ RubyCommand.Argument(name: "username", value: username),
2059
+ RubyCommand.Argument(name: "password", value: password),
2060
+ RubyCommand.Argument(name: "ssl_verify", value: sslVerify),
2061
+ RubyCommand.Argument(name: "verbose", value: verbose),
2062
+ RubyCommand.Argument(name: "proxy_username", value: proxyUsername),
2063
+ RubyCommand.Argument(name: "proxy_password", value: proxyPassword),
2064
+ RubyCommand.Argument(name: "proxy_address", value: proxyAddress),
2065
+ RubyCommand.Argument(name: "proxy_port", value: proxyPort)])
2066
+ _ = runner.executeCommand(command)
2067
+ }
2068
+ func notification(title: String = "fastlane",
2069
+ subtitle: String? = nil,
2070
+ message: String,
2071
+ sound: String? = nil,
2072
+ activate: String? = nil,
2073
+ appIcon: String? = nil,
2074
+ contentImage: String? = nil,
2075
+ open: String? = nil,
2076
+ execute: String? = nil) {
2077
+ let command = RubyCommand(commandID: "", methodName: "notification", className: nil, args: [RubyCommand.Argument(name: "title", value: title),
2078
+ RubyCommand.Argument(name: "subtitle", value: subtitle),
2079
+ RubyCommand.Argument(name: "message", value: message),
2080
+ RubyCommand.Argument(name: "sound", value: sound),
2081
+ RubyCommand.Argument(name: "activate", value: activate),
2082
+ RubyCommand.Argument(name: "app_icon", value: appIcon),
2083
+ RubyCommand.Argument(name: "content_image", value: contentImage),
2084
+ RubyCommand.Argument(name: "open", value: open),
2085
+ RubyCommand.Argument(name: "execute", value: execute)])
2086
+ _ = runner.executeCommand(command)
2087
+ }
2088
+ @discardableResult func numberOfCommits(all: String? = nil) -> Int {
2089
+ let command = RubyCommand(commandID: "", methodName: "number_of_commits", className: nil, args: [RubyCommand.Argument(name: "all", value: all)])
2090
+ return parseInt(fromString: runner.executeCommand(command))
2091
+ }
2092
+ func oclint(oclintPath: String = "oclint",
2093
+ compileCommands: String = "compile_commands.json",
2094
+ selectReqex: String? = nil,
2095
+ selectRegex: String? = nil,
2096
+ excludeRegex: String? = nil,
2097
+ reportType: String = "html",
2098
+ reportPath: String? = nil,
2099
+ listEnabledRules: Bool = false,
2100
+ rc: String? = nil,
2101
+ thresholds: String? = nil,
2102
+ enableRules: String? = nil,
2103
+ disableRules: String? = nil,
2104
+ maxPriority1: String? = nil,
2105
+ maxPriority2: String? = nil,
2106
+ maxPriority3: String? = nil,
2107
+ enableClangStaticAnalyzer: Bool = false,
2108
+ enableGlobalAnalysis: Bool = false,
2109
+ allowDuplicatedViolations: Bool = false) {
2110
+ let command = RubyCommand(commandID: "", methodName: "oclint", className: nil, args: [RubyCommand.Argument(name: "oclint_path", value: oclintPath),
2111
+ RubyCommand.Argument(name: "compile_commands", value: compileCommands),
2112
+ RubyCommand.Argument(name: "select_reqex", value: selectReqex),
2113
+ RubyCommand.Argument(name: "select_regex", value: selectRegex),
2114
+ RubyCommand.Argument(name: "exclude_regex", value: excludeRegex),
2115
+ RubyCommand.Argument(name: "report_type", value: reportType),
2116
+ RubyCommand.Argument(name: "report_path", value: reportPath),
2117
+ RubyCommand.Argument(name: "list_enabled_rules", value: listEnabledRules),
2118
+ RubyCommand.Argument(name: "rc", value: rc),
2119
+ RubyCommand.Argument(name: "thresholds", value: thresholds),
2120
+ RubyCommand.Argument(name: "enable_rules", value: enableRules),
2121
+ RubyCommand.Argument(name: "disable_rules", value: disableRules),
2122
+ RubyCommand.Argument(name: "max_priority_1", value: maxPriority1),
2123
+ RubyCommand.Argument(name: "max_priority_2", value: maxPriority2),
2124
+ RubyCommand.Argument(name: "max_priority_3", value: maxPriority3),
2125
+ RubyCommand.Argument(name: "enable_clang_static_analyzer", value: enableClangStaticAnalyzer),
2126
+ RubyCommand.Argument(name: "enable_global_analysis", value: enableGlobalAnalysis),
2127
+ RubyCommand.Argument(name: "allow_duplicated_violations", value: allowDuplicatedViolations)])
2128
+ _ = runner.executeCommand(command)
2129
+ }
2130
+ func onesignal(authToken: String,
2131
+ appName: String,
2132
+ androidToken: String? = nil,
2133
+ apnsP12: String? = nil,
2134
+ apnsP12Password: String? = nil,
2135
+ apnsEnv: String = "production") {
2136
+ let command = RubyCommand(commandID: "", methodName: "onesignal", className: nil, args: [RubyCommand.Argument(name: "auth_token", value: authToken),
2137
+ RubyCommand.Argument(name: "app_name", value: appName),
2138
+ RubyCommand.Argument(name: "android_token", value: androidToken),
2139
+ RubyCommand.Argument(name: "apns_p12", value: apnsP12),
2140
+ RubyCommand.Argument(name: "apns_p12_password", value: apnsP12Password),
2141
+ RubyCommand.Argument(name: "apns_env", value: apnsEnv)])
2142
+ _ = runner.executeCommand(command)
2143
+ }
2144
+ func pem(development: Bool = false,
2145
+ generateP12: Bool = true,
2146
+ activeDaysLimit: String = "30",
2147
+ force: Bool = false,
2148
+ savePrivateKey: Bool = true,
2149
+ appIdentifier: String,
2150
+ username: String,
2151
+ teamId: String? = nil,
2152
+ teamName: String? = nil,
2153
+ p12Password: String = "",
2154
+ pemName: String? = nil,
2155
+ outputPath: String = ".",
2156
+ newProfile: String? = nil) {
2157
+ let command = RubyCommand(commandID: "", methodName: "pem", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
2158
+ RubyCommand.Argument(name: "generate_p12", value: generateP12),
2159
+ RubyCommand.Argument(name: "active_days_limit", value: activeDaysLimit),
2160
+ RubyCommand.Argument(name: "force", value: force),
2161
+ RubyCommand.Argument(name: "save_private_key", value: savePrivateKey),
2162
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2163
+ RubyCommand.Argument(name: "username", value: username),
2164
+ RubyCommand.Argument(name: "team_id", value: teamId),
2165
+ RubyCommand.Argument(name: "team_name", value: teamName),
2166
+ RubyCommand.Argument(name: "p12_password", value: p12Password),
2167
+ RubyCommand.Argument(name: "pem_name", value: pemName),
2168
+ RubyCommand.Argument(name: "output_path", value: outputPath),
2169
+ RubyCommand.Argument(name: "new_profile", value: newProfile)])
2170
+ _ = runner.executeCommand(command)
2171
+ }
2172
+ func pilot(username: String,
2173
+ appIdentifier: String? = nil,
2174
+ appPlatform: String = "ios",
2175
+ ipa: String? = nil,
2176
+ changelog: String? = nil,
2177
+ betaAppDescription: String? = nil,
2178
+ betaAppFeedbackEmail: String? = nil,
2179
+ skipSubmission: Bool = false,
2180
+ skipWaitingForBuildProcessing: Bool = false,
2181
+ updateBuildInfoOnUpload: Bool = false,
2182
+ appleId: String? = nil,
2183
+ distributeExternal: Bool = false,
2184
+ firstName: String? = nil,
2185
+ lastName: String? = nil,
2186
+ email: String? = nil,
2187
+ testersFilePath: String = "./testers.csv",
2188
+ waitProcessingInterval: Int = 30,
2189
+ teamId: String? = nil,
2190
+ teamName: String? = nil,
2191
+ devPortalTeamId: String? = nil,
2192
+ itcProvider: String? = nil,
2193
+ groups: [String]? = nil,
2194
+ waitForUploadedBuild: Bool = false) {
2195
+ let command = RubyCommand(commandID: "", methodName: "pilot", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2196
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2197
+ RubyCommand.Argument(name: "app_platform", value: appPlatform),
2198
+ RubyCommand.Argument(name: "ipa", value: ipa),
2199
+ RubyCommand.Argument(name: "changelog", value: changelog),
2200
+ RubyCommand.Argument(name: "beta_app_description", value: betaAppDescription),
2201
+ RubyCommand.Argument(name: "beta_app_feedback_email", value: betaAppFeedbackEmail),
2202
+ RubyCommand.Argument(name: "skip_submission", value: skipSubmission),
2203
+ RubyCommand.Argument(name: "skip_waiting_for_build_processing", value: skipWaitingForBuildProcessing),
2204
+ RubyCommand.Argument(name: "update_build_info_on_upload", value: updateBuildInfoOnUpload),
2205
+ RubyCommand.Argument(name: "apple_id", value: appleId),
2206
+ RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
2207
+ RubyCommand.Argument(name: "first_name", value: firstName),
2208
+ RubyCommand.Argument(name: "last_name", value: lastName),
2209
+ RubyCommand.Argument(name: "email", value: email),
2210
+ RubyCommand.Argument(name: "testers_file_path", value: testersFilePath),
2211
+ RubyCommand.Argument(name: "wait_processing_interval", value: waitProcessingInterval),
2212
+ RubyCommand.Argument(name: "team_id", value: teamId),
2213
+ RubyCommand.Argument(name: "team_name", value: teamName),
2214
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
2215
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
2216
+ RubyCommand.Argument(name: "groups", value: groups),
2217
+ RubyCommand.Argument(name: "wait_for_uploaded_build", value: waitForUploadedBuild)])
2218
+ _ = runner.executeCommand(command)
2219
+ }
2220
+ func pluginScores(outputPath: String,
2221
+ templatePath: String) {
2222
+ let command = RubyCommand(commandID: "", methodName: "plugin_scores", className: nil, args: [RubyCommand.Argument(name: "output_path", value: outputPath),
2223
+ RubyCommand.Argument(name: "template_path", value: templatePath)])
2224
+ _ = runner.executeCommand(command)
2225
+ }
2226
+ func podLibLint(useBundleExec: Bool = true,
2227
+ verbose: String? = nil,
2228
+ allowWarnings: String? = nil,
2229
+ sources: String? = nil,
2230
+ useLibraries: Bool = false,
2231
+ failFast: Bool = false,
2232
+ `private`: Bool = false,
2233
+ quick: Bool = false) {
2234
+ let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
2235
+ RubyCommand.Argument(name: "verbose", value: verbose),
2236
+ RubyCommand.Argument(name: "allow_warnings", value: allowWarnings),
2237
+ RubyCommand.Argument(name: "sources", value: sources),
2238
+ RubyCommand.Argument(name: "use_libraries", value: useLibraries),
2239
+ RubyCommand.Argument(name: "fail_fast", value: failFast),
2240
+ RubyCommand.Argument(name: "private", value: `private`),
2241
+ RubyCommand.Argument(name: "quick", value: quick)])
2242
+ _ = runner.executeCommand(command)
2243
+ }
2244
+ func podPush(path: String? = nil,
2245
+ repo: String? = nil,
2246
+ allowWarnings: String? = nil,
2247
+ useLibraries: String? = nil,
2248
+ sources: String? = nil,
2249
+ swiftVersion: String? = nil,
2250
+ verbose: Bool = false) {
2251
+ let command = RubyCommand(commandID: "", methodName: "pod_push", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
2252
+ RubyCommand.Argument(name: "repo", value: repo),
2253
+ RubyCommand.Argument(name: "allow_warnings", value: allowWarnings),
2254
+ RubyCommand.Argument(name: "use_libraries", value: useLibraries),
2255
+ RubyCommand.Argument(name: "sources", value: sources),
2256
+ RubyCommand.Argument(name: "swift_version", value: swiftVersion),
2257
+ RubyCommand.Argument(name: "verbose", value: verbose)])
2258
+ _ = runner.executeCommand(command)
2259
+ }
2260
+ func podioItem(clientId: String,
2261
+ clientSecret: String,
2262
+ appId: String,
2263
+ appToken: String,
2264
+ identifyingField: String,
2265
+ identifyingValue: String,
2266
+ otherFields: [String : Any]? = nil) {
2267
+ let command = RubyCommand(commandID: "", methodName: "podio_item", className: nil, args: [RubyCommand.Argument(name: "client_id", value: clientId),
2268
+ RubyCommand.Argument(name: "client_secret", value: clientSecret),
2269
+ RubyCommand.Argument(name: "app_id", value: appId),
2270
+ RubyCommand.Argument(name: "app_token", value: appToken),
2271
+ RubyCommand.Argument(name: "identifying_field", value: identifyingField),
2272
+ RubyCommand.Argument(name: "identifying_value", value: identifyingValue),
2273
+ RubyCommand.Argument(name: "other_fields", value: otherFields)])
2274
+ _ = runner.executeCommand(command)
2275
+ }
2276
+ func precheck(appIdentifier: String = precheckfile.appIdentifier,
2277
+ username: String = precheckfile.username,
2278
+ teamId: String? = precheckfile.teamId,
2279
+ teamName: String? = precheckfile.teamName,
2280
+ defaultRuleLevel: String = precheckfile.defaultRuleLevel,
2281
+ includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
2282
+ freeStuffInIap: String? = precheckfile.freeStuffInIap) {
2283
+ let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2284
+ RubyCommand.Argument(name: "username", value: username),
2285
+ RubyCommand.Argument(name: "team_id", value: teamId),
2286
+ RubyCommand.Argument(name: "team_name", value: teamName),
2287
+ RubyCommand.Argument(name: "default_rule_level", value: defaultRuleLevel),
2288
+ RubyCommand.Argument(name: "include_in_app_purchases", value: includeInAppPurchases),
2289
+ RubyCommand.Argument(name: "free_stuff_in_iap", value: freeStuffInIap)])
2290
+ _ = runner.executeCommand(command)
2291
+ }
2292
+ func produce(username: String,
2293
+ appIdentifier: String,
2294
+ bundleIdentifierSuffix: String? = nil,
2295
+ appName: String,
2296
+ appVersion: String? = nil,
2297
+ sku: String,
2298
+ platform: String = "ios",
2299
+ language: String = "English",
2300
+ companyName: String? = nil,
2301
+ skipItc: Bool = false,
2302
+ itcUsers: [String]? = nil,
2303
+ enabledFeatures: String = "{}",
2304
+ enableServices: String = "{}",
2305
+ skipDevcenter: Bool = false,
2306
+ teamId: String? = nil,
2307
+ teamName: String? = nil,
2308
+ itcTeamId: String? = nil,
2309
+ itcTeamName: String? = nil) {
2310
+ let command = RubyCommand(commandID: "", methodName: "produce", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2311
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2312
+ RubyCommand.Argument(name: "bundle_identifier_suffix", value: bundleIdentifierSuffix),
2313
+ RubyCommand.Argument(name: "app_name", value: appName),
2314
+ RubyCommand.Argument(name: "app_version", value: appVersion),
2315
+ RubyCommand.Argument(name: "sku", value: sku),
2316
+ RubyCommand.Argument(name: "platform", value: platform),
2317
+ RubyCommand.Argument(name: "language", value: language),
2318
+ RubyCommand.Argument(name: "company_name", value: companyName),
2319
+ RubyCommand.Argument(name: "skip_itc", value: skipItc),
2320
+ RubyCommand.Argument(name: "itc_users", value: itcUsers),
2321
+ RubyCommand.Argument(name: "enabled_features", value: enabledFeatures),
2322
+ RubyCommand.Argument(name: "enable_services", value: enableServices),
2323
+ RubyCommand.Argument(name: "skip_devcenter", value: skipDevcenter),
2324
+ RubyCommand.Argument(name: "team_id", value: teamId),
2325
+ RubyCommand.Argument(name: "team_name", value: teamName),
2326
+ RubyCommand.Argument(name: "itc_team_id", value: itcTeamId),
2327
+ RubyCommand.Argument(name: "itc_team_name", value: itcTeamName)])
2328
+ _ = runner.executeCommand(command)
2329
+ }
2330
+ @discardableResult func prompt(text: String = "Please enter some text: ",
2331
+ ciInput: String = "",
2332
+ boolean: Bool = false,
2333
+ multiLineEndKeyword: String? = nil) -> String {
2334
+ let command = RubyCommand(commandID: "", methodName: "prompt", className: nil, args: [RubyCommand.Argument(name: "text", value: text),
2335
+ RubyCommand.Argument(name: "ci_input", value: ciInput),
2336
+ RubyCommand.Argument(name: "boolean", value: boolean),
2337
+ RubyCommand.Argument(name: "multi_line_end_keyword", value: multiLineEndKeyword)])
2338
+ return runner.executeCommand(command)
2339
+ }
2340
+ func pushGitTags(force: Bool = false,
2341
+ remote: String? = nil) {
2342
+ let command = RubyCommand(commandID: "", methodName: "push_git_tags", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
2343
+ RubyCommand.Argument(name: "remote", value: remote)])
2344
+ _ = runner.executeCommand(command)
2345
+ }
2346
+ func pushToGitRemote(localBranch: String? = nil,
2347
+ remoteBranch: String? = nil,
2348
+ force: Bool = false,
2349
+ tags: Bool = true,
2350
+ remote: String = "origin") {
2351
+ let command = RubyCommand(commandID: "", methodName: "push_to_git_remote", className: nil, args: [RubyCommand.Argument(name: "local_branch", value: localBranch),
2352
+ RubyCommand.Argument(name: "remote_branch", value: remoteBranch),
2353
+ RubyCommand.Argument(name: "force", value: force),
2354
+ RubyCommand.Argument(name: "tags", value: tags),
2355
+ RubyCommand.Argument(name: "remote", value: remote)])
2356
+ _ = runner.executeCommand(command)
2357
+ }
2358
+ @discardableResult func readPodspec(path: String) -> [String : String] {
2359
+ let command = RubyCommand(commandID: "", methodName: "read_podspec", className: nil, args: [RubyCommand.Argument(name: "path", value: path)])
2360
+ return parseDictionary(fromString: runner.executeCommand(command))
2361
+ }
2362
+ func recreateSchemes(project: String) {
2363
+ let command = RubyCommand(commandID: "", methodName: "recreate_schemes", className: nil, args: [RubyCommand.Argument(name: "project", value: project)])
2364
+ _ = runner.executeCommand(command)
2365
+ }
2366
+ @discardableResult func registerDevice(name: String,
2367
+ udid: String,
2368
+ teamId: String? = nil,
2369
+ teamName: String? = nil,
2370
+ username: String) -> String {
2371
+ let command = RubyCommand(commandID: "", methodName: "register_device", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
2372
+ RubyCommand.Argument(name: "udid", value: udid),
2373
+ RubyCommand.Argument(name: "team_id", value: teamId),
2374
+ RubyCommand.Argument(name: "team_name", value: teamName),
2375
+ RubyCommand.Argument(name: "username", value: username)])
2376
+ return runner.executeCommand(command)
2377
+ }
2378
+ func registerDevices(devices: [String : Any]? = nil,
2379
+ devicesFile: String? = nil,
2380
+ teamId: String? = nil,
2381
+ teamName: String? = nil,
2382
+ username: String) {
2383
+ let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
2384
+ RubyCommand.Argument(name: "devices_file", value: devicesFile),
2385
+ RubyCommand.Argument(name: "team_id", value: teamId),
2386
+ RubyCommand.Argument(name: "team_name", value: teamName),
2387
+ RubyCommand.Argument(name: "username", value: username)])
2388
+ _ = runner.executeCommand(command)
2389
+ }
2390
+ func resetGitRepo(files: String? = nil,
2391
+ force: Bool = false,
2392
+ skipClean: Bool = false,
2393
+ disregardGitignore: Bool = true,
2394
+ exclude: String? = nil) {
2395
+ let command = RubyCommand(commandID: "", methodName: "reset_git_repo", className: nil, args: [RubyCommand.Argument(name: "files", value: files),
2396
+ RubyCommand.Argument(name: "force", value: force),
2397
+ RubyCommand.Argument(name: "skip_clean", value: skipClean),
2398
+ RubyCommand.Argument(name: "disregard_gitignore", value: disregardGitignore),
2399
+ RubyCommand.Argument(name: "exclude", value: exclude)])
2400
+ _ = runner.executeCommand(command)
2401
+ }
2402
+ func resetSimulatorContents(ios: [String]? = nil) {
2403
+ let command = RubyCommand(commandID: "", methodName: "reset_simulator_contents", className: nil, args: [RubyCommand.Argument(name: "ios", value: ios)])
2404
+ _ = runner.executeCommand(command)
2405
+ }
2406
+ func resign(ipa: String,
2407
+ signingIdentity: String,
2408
+ entitlements: String? = nil,
2409
+ provisioningProfile: String,
2410
+ version: String? = nil,
2411
+ displayName: String? = nil,
2412
+ shortVersion: String? = nil,
2413
+ bundleVersion: String? = nil,
2414
+ bundleId: String? = nil,
2415
+ useAppEntitlements: String? = nil,
2416
+ keychainPath: String? = nil) {
2417
+ let command = RubyCommand(commandID: "", methodName: "resign", className: nil, args: [RubyCommand.Argument(name: "ipa", value: ipa),
2418
+ RubyCommand.Argument(name: "signing_identity", value: signingIdentity),
2419
+ RubyCommand.Argument(name: "entitlements", value: entitlements),
2420
+ RubyCommand.Argument(name: "provisioning_profile", value: provisioningProfile),
2421
+ RubyCommand.Argument(name: "version", value: version),
2422
+ RubyCommand.Argument(name: "display_name", value: displayName),
2423
+ RubyCommand.Argument(name: "short_version", value: shortVersion),
2424
+ RubyCommand.Argument(name: "bundle_version", value: bundleVersion),
2425
+ RubyCommand.Argument(name: "bundle_id", value: bundleId),
2426
+ RubyCommand.Argument(name: "use_app_entitlements", value: useAppEntitlements),
2427
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath)])
2428
+ _ = runner.executeCommand(command)
2429
+ }
2430
+ func restoreFile(path: String) {
2431
+ let command = RubyCommand(commandID: "", methodName: "restore_file", className: nil, args: [RubyCommand.Argument(name: "path", value: path)])
2432
+ _ = runner.executeCommand(command)
2433
+ }
2434
+ @discardableResult func rocket() -> String {
2435
+ let command = RubyCommand(commandID: "", methodName: "rocket", className: nil, args: [])
2436
+ return runner.executeCommand(command)
2437
+ }
2438
+ func rspec() {
2439
+ let command = RubyCommand(commandID: "", methodName: "rspec", className: nil, args: [])
2440
+ _ = runner.executeCommand(command)
2441
+ }
2442
+ func rsync(extra: String = "-av",
2443
+ source: String,
2444
+ destination: String) {
2445
+ let command = RubyCommand(commandID: "", methodName: "rsync", className: nil, args: [RubyCommand.Argument(name: "extra", value: extra),
2446
+ RubyCommand.Argument(name: "source", value: source),
2447
+ RubyCommand.Argument(name: "destination", value: destination)])
2448
+ _ = runner.executeCommand(command)
2449
+ }
2450
+ func rubocop() {
2451
+ let command = RubyCommand(commandID: "", methodName: "rubocop", className: nil, args: [])
2452
+ _ = runner.executeCommand(command)
2453
+ }
2454
+ func runTests(workspace: String? = nil,
2455
+ project: String? = nil,
2456
+ device: String? = nil,
2457
+ toolchain: String? = nil,
2458
+ devices: [String]? = nil,
2459
+ scheme: String? = nil,
2460
+ clean: Bool = false,
2461
+ codeCoverage: Bool? = nil,
2462
+ addressSanitizer: Bool? = nil,
2463
+ threadSanitizer: Bool? = nil,
2464
+ skipBuild: Bool = false,
2465
+ outputDirectory: String = "./test_output",
2466
+ outputStyle: String? = nil,
2467
+ outputTypes: String = "html,junit",
2468
+ outputFiles: String? = nil,
2469
+ buildlogPath: String = "~/Library/Logs/scan",
2470
+ includeSimulatorLogs: Bool = false,
2471
+ formatter: String? = nil,
2472
+ testWithoutBuilding: Bool? = nil,
2473
+ buildForTesting: Bool? = nil,
2474
+ xctestrun: String? = nil,
2475
+ derivedDataPath: String? = nil,
2476
+ resultBundle: String? = nil,
2477
+ sdk: String? = nil,
2478
+ openReport: Bool = false,
2479
+ configuration: String? = nil,
2480
+ destination: String? = nil,
2481
+ xcargs: String? = nil,
2482
+ xcconfig: String? = nil,
2483
+ onlyTesting: String? = nil,
2484
+ skipTesting: String? = nil,
2485
+ slackUrl: String? = nil,
2486
+ slackChannel: String? = nil,
2487
+ slackMessage: String? = nil,
2488
+ skipSlack: Bool = false,
2489
+ slackOnlyOnFailure: Bool = false,
2490
+ useClangReportName: Bool = false,
2491
+ customReportFileName: String? = nil,
2492
+ failBuild: Bool = true) {
2493
+ let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
2494
+ RubyCommand.Argument(name: "project", value: project),
2495
+ RubyCommand.Argument(name: "device", value: device),
2496
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
2497
+ RubyCommand.Argument(name: "devices", value: devices),
2498
+ RubyCommand.Argument(name: "scheme", value: scheme),
2499
+ RubyCommand.Argument(name: "clean", value: clean),
2500
+ RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
2501
+ RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
2502
+ RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
2503
+ RubyCommand.Argument(name: "skip_build", value: skipBuild),
2504
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2505
+ RubyCommand.Argument(name: "output_style", value: outputStyle),
2506
+ RubyCommand.Argument(name: "output_types", value: outputTypes),
2507
+ RubyCommand.Argument(name: "output_files", value: outputFiles),
2508
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
2509
+ RubyCommand.Argument(name: "include_simulator_logs", value: includeSimulatorLogs),
2510
+ RubyCommand.Argument(name: "formatter", value: formatter),
2511
+ RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
2512
+ RubyCommand.Argument(name: "build_for_testing", value: buildForTesting),
2513
+ RubyCommand.Argument(name: "xctestrun", value: xctestrun),
2514
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
2515
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
2516
+ RubyCommand.Argument(name: "sdk", value: sdk),
2517
+ RubyCommand.Argument(name: "open_report", value: openReport),
2518
+ RubyCommand.Argument(name: "configuration", value: configuration),
2519
+ RubyCommand.Argument(name: "destination", value: destination),
2520
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
2521
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
2522
+ RubyCommand.Argument(name: "only_testing", value: onlyTesting),
2523
+ RubyCommand.Argument(name: "skip_testing", value: skipTesting),
2524
+ RubyCommand.Argument(name: "slack_url", value: slackUrl),
2525
+ RubyCommand.Argument(name: "slack_channel", value: slackChannel),
2526
+ RubyCommand.Argument(name: "slack_message", value: slackMessage),
2527
+ RubyCommand.Argument(name: "skip_slack", value: skipSlack),
2528
+ RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
2529
+ RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
2530
+ RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
2531
+ RubyCommand.Argument(name: "fail_build", value: failBuild)])
2532
+ _ = runner.executeCommand(command)
2533
+ }
2534
+ func s3(ipa: String? = nil,
2535
+ dsym: String? = nil,
2536
+ uploadMetadata: Bool = true,
2537
+ plistTemplatePath: String? = nil,
2538
+ plistFileName: String? = nil,
2539
+ htmlTemplatePath: String? = nil,
2540
+ htmlFileName: String? = nil,
2541
+ versionTemplatePath: String? = nil,
2542
+ versionFileName: String? = nil,
2543
+ accessKey: String? = nil,
2544
+ secretAccessKey: String? = nil,
2545
+ bucket: String? = nil,
2546
+ region: String? = nil,
2547
+ path: String = "v{CFBundleShortVersionString}_b{CFBundleVersion}/",
2548
+ source: String? = nil,
2549
+ acl: String = "public_read") {
2550
+ let command = RubyCommand(commandID: "", methodName: "s3", className: nil, args: [RubyCommand.Argument(name: "ipa", value: ipa),
2551
+ RubyCommand.Argument(name: "dsym", value: dsym),
2552
+ RubyCommand.Argument(name: "upload_metadata", value: uploadMetadata),
2553
+ RubyCommand.Argument(name: "plist_template_path", value: plistTemplatePath),
2554
+ RubyCommand.Argument(name: "plist_file_name", value: plistFileName),
2555
+ RubyCommand.Argument(name: "html_template_path", value: htmlTemplatePath),
2556
+ RubyCommand.Argument(name: "html_file_name", value: htmlFileName),
2557
+ RubyCommand.Argument(name: "version_template_path", value: versionTemplatePath),
2558
+ RubyCommand.Argument(name: "version_file_name", value: versionFileName),
2559
+ RubyCommand.Argument(name: "access_key", value: accessKey),
2560
+ RubyCommand.Argument(name: "secret_access_key", value: secretAccessKey),
2561
+ RubyCommand.Argument(name: "bucket", value: bucket),
2562
+ RubyCommand.Argument(name: "region", value: region),
2563
+ RubyCommand.Argument(name: "path", value: path),
2564
+ RubyCommand.Argument(name: "source", value: source),
2565
+ RubyCommand.Argument(name: "acl", value: acl)])
2566
+ _ = runner.executeCommand(command)
2567
+ }
2568
+ func scan(workspace: String? = scanfile.workspace,
2569
+ project: String? = scanfile.project,
2570
+ device: String? = scanfile.device,
2571
+ toolchain: String? = scanfile.toolchain,
2572
+ devices: [String]? = scanfile.devices,
2573
+ scheme: String? = scanfile.scheme,
2574
+ clean: Bool = scanfile.clean,
2575
+ codeCoverage: Bool? = scanfile.codeCoverage,
2576
+ addressSanitizer: Bool? = scanfile.addressSanitizer,
2577
+ threadSanitizer: Bool? = scanfile.threadSanitizer,
2578
+ skipBuild: Bool = scanfile.skipBuild,
2579
+ outputDirectory: String = scanfile.outputDirectory,
2580
+ outputStyle: String? = scanfile.outputStyle,
2581
+ outputTypes: String = scanfile.outputTypes,
2582
+ outputFiles: String? = scanfile.outputFiles,
2583
+ buildlogPath: String = scanfile.buildlogPath,
2584
+ includeSimulatorLogs: Bool = scanfile.includeSimulatorLogs,
2585
+ formatter: String? = scanfile.formatter,
2586
+ testWithoutBuilding: Bool? = scanfile.testWithoutBuilding,
2587
+ buildForTesting: Bool? = scanfile.buildForTesting,
2588
+ xctestrun: String? = scanfile.xctestrun,
2589
+ derivedDataPath: String? = scanfile.derivedDataPath,
2590
+ resultBundle: String? = scanfile.resultBundle,
2591
+ sdk: String? = scanfile.sdk,
2592
+ openReport: Bool = scanfile.openReport,
2593
+ configuration: String? = scanfile.configuration,
2594
+ destination: String? = scanfile.destination,
2595
+ xcargs: String? = scanfile.xcargs,
2596
+ xcconfig: String? = scanfile.xcconfig,
2597
+ onlyTesting: String? = scanfile.onlyTesting,
2598
+ skipTesting: String? = scanfile.skipTesting,
2599
+ slackUrl: String? = scanfile.slackUrl,
2600
+ slackChannel: String? = scanfile.slackChannel,
2601
+ slackMessage: String? = scanfile.slackMessage,
2602
+ skipSlack: Bool = scanfile.skipSlack,
2603
+ slackOnlyOnFailure: Bool = scanfile.slackOnlyOnFailure,
2604
+ useClangReportName: Bool = scanfile.useClangReportName,
2605
+ customReportFileName: String? = scanfile.customReportFileName,
2606
+ failBuild: Bool = scanfile.failBuild) {
2607
+ let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
2608
+ RubyCommand.Argument(name: "project", value: project),
2609
+ RubyCommand.Argument(name: "device", value: device),
2610
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
2611
+ RubyCommand.Argument(name: "devices", value: devices),
2612
+ RubyCommand.Argument(name: "scheme", value: scheme),
2613
+ RubyCommand.Argument(name: "clean", value: clean),
2614
+ RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
2615
+ RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
2616
+ RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
2617
+ RubyCommand.Argument(name: "skip_build", value: skipBuild),
2618
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2619
+ RubyCommand.Argument(name: "output_style", value: outputStyle),
2620
+ RubyCommand.Argument(name: "output_types", value: outputTypes),
2621
+ RubyCommand.Argument(name: "output_files", value: outputFiles),
2622
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
2623
+ RubyCommand.Argument(name: "include_simulator_logs", value: includeSimulatorLogs),
2624
+ RubyCommand.Argument(name: "formatter", value: formatter),
2625
+ RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
2626
+ RubyCommand.Argument(name: "build_for_testing", value: buildForTesting),
2627
+ RubyCommand.Argument(name: "xctestrun", value: xctestrun),
2628
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
2629
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
2630
+ RubyCommand.Argument(name: "sdk", value: sdk),
2631
+ RubyCommand.Argument(name: "open_report", value: openReport),
2632
+ RubyCommand.Argument(name: "configuration", value: configuration),
2633
+ RubyCommand.Argument(name: "destination", value: destination),
2634
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
2635
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
2636
+ RubyCommand.Argument(name: "only_testing", value: onlyTesting),
2637
+ RubyCommand.Argument(name: "skip_testing", value: skipTesting),
2638
+ RubyCommand.Argument(name: "slack_url", value: slackUrl),
2639
+ RubyCommand.Argument(name: "slack_channel", value: slackChannel),
2640
+ RubyCommand.Argument(name: "slack_message", value: slackMessage),
2641
+ RubyCommand.Argument(name: "skip_slack", value: skipSlack),
2642
+ RubyCommand.Argument(name: "slack_only_on_failure", value: slackOnlyOnFailure),
2643
+ RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
2644
+ RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
2645
+ RubyCommand.Argument(name: "fail_build", value: failBuild)])
2646
+ _ = runner.executeCommand(command)
2647
+ }
2648
+ func scp(username: String,
2649
+ password: String? = nil,
2650
+ host: String,
2651
+ port: String = "22",
2652
+ upload: [String : Any]? = nil,
2653
+ download: [String : Any]? = nil) {
2654
+ let command = RubyCommand(commandID: "", methodName: "scp", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2655
+ RubyCommand.Argument(name: "password", value: password),
2656
+ RubyCommand.Argument(name: "host", value: host),
2657
+ RubyCommand.Argument(name: "port", value: port),
2658
+ RubyCommand.Argument(name: "upload", value: upload),
2659
+ RubyCommand.Argument(name: "download", value: download)])
2660
+ _ = runner.executeCommand(command)
2661
+ }
2662
+ func screengrab(androidHome: String? = screengrabfile.androidHome,
2663
+ buildToolsVersion: String? = screengrabfile.buildToolsVersion,
2664
+ locales: [String] = screengrabfile.locales,
2665
+ clearPreviousScreenshots: Bool = screengrabfile.clearPreviousScreenshots,
2666
+ outputDirectory: String = screengrabfile.outputDirectory,
2667
+ skipOpenSummary: Bool = screengrabfile.skipOpenSummary,
2668
+ appPackageName: String = screengrabfile.appPackageName,
2669
+ testsPackageName: String? = screengrabfile.testsPackageName,
2670
+ useTestsInPackages: [String]? = screengrabfile.useTestsInPackages,
2671
+ useTestsInClasses: [String]? = screengrabfile.useTestsInClasses,
2672
+ launchArguments: [String]? = screengrabfile.launchArguments,
2673
+ testInstrumentationRunner: String = screengrabfile.testInstrumentationRunner,
2674
+ endingLocale: String = screengrabfile.endingLocale,
2675
+ appApkPath: String? = screengrabfile.appApkPath,
2676
+ testsApkPath: String? = screengrabfile.testsApkPath,
2677
+ specificDevice: String? = screengrabfile.specificDevice,
2678
+ deviceType: String = screengrabfile.deviceType,
2679
+ exitOnTestFailure: Bool = screengrabfile.exitOnTestFailure,
2680
+ reinstallApp: Bool = screengrabfile.reinstallApp) {
2681
+ let command = RubyCommand(commandID: "", methodName: "screengrab", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
2682
+ RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
2683
+ RubyCommand.Argument(name: "locales", value: locales),
2684
+ RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
2685
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2686
+ RubyCommand.Argument(name: "skip_open_summary", value: skipOpenSummary),
2687
+ RubyCommand.Argument(name: "app_package_name", value: appPackageName),
2688
+ RubyCommand.Argument(name: "tests_package_name", value: testsPackageName),
2689
+ RubyCommand.Argument(name: "use_tests_in_packages", value: useTestsInPackages),
2690
+ RubyCommand.Argument(name: "use_tests_in_classes", value: useTestsInClasses),
2691
+ RubyCommand.Argument(name: "launch_arguments", value: launchArguments),
2692
+ RubyCommand.Argument(name: "test_instrumentation_runner", value: testInstrumentationRunner),
2693
+ RubyCommand.Argument(name: "ending_locale", value: endingLocale),
2694
+ RubyCommand.Argument(name: "app_apk_path", value: appApkPath),
2695
+ RubyCommand.Argument(name: "tests_apk_path", value: testsApkPath),
2696
+ RubyCommand.Argument(name: "specific_device", value: specificDevice),
2697
+ RubyCommand.Argument(name: "device_type", value: deviceType),
2698
+ RubyCommand.Argument(name: "exit_on_test_failure", value: exitOnTestFailure),
2699
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp)])
2700
+ _ = runner.executeCommand(command)
2701
+ }
2702
+ func setBuildNumberRepository(useHgRevisionNumber: Bool = false,
2703
+ xcodeproj: String? = nil) {
2704
+ let command = RubyCommand(commandID: "", methodName: "set_build_number_repository", className: nil, args: [RubyCommand.Argument(name: "use_hg_revision_number", value: useHgRevisionNumber),
2705
+ RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
2706
+ _ = runner.executeCommand(command)
2707
+ }
2708
+ func setChangelog(appIdentifier: String,
2709
+ username: String,
2710
+ version: String? = nil,
2711
+ changelog: String? = nil,
2712
+ teamId: String? = nil,
2713
+ teamName: String? = nil) {
2714
+ let command = RubyCommand(commandID: "", methodName: "set_changelog", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2715
+ RubyCommand.Argument(name: "username", value: username),
2716
+ RubyCommand.Argument(name: "version", value: version),
2717
+ RubyCommand.Argument(name: "changelog", value: changelog),
2718
+ RubyCommand.Argument(name: "team_id", value: teamId),
2719
+ RubyCommand.Argument(name: "team_name", value: teamName)])
2720
+ _ = runner.executeCommand(command)
2721
+ }
2722
+ @discardableResult func setGithubRelease(repositoryName: String,
2723
+ serverUrl: String = "https://api.github.com",
2724
+ apiToken: String,
2725
+ tagName: String,
2726
+ name: String? = nil,
2727
+ commitish: String? = nil,
2728
+ description: String? = nil,
2729
+ isDraft: Bool = false,
2730
+ isPrerelease: Bool = false,
2731
+ uploadAssets: String? = nil) -> [String : String] {
2732
+ let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
2733
+ RubyCommand.Argument(name: "server_url", value: serverUrl),
2734
+ RubyCommand.Argument(name: "api_token", value: apiToken),
2735
+ RubyCommand.Argument(name: "tag_name", value: tagName),
2736
+ RubyCommand.Argument(name: "name", value: name),
2737
+ RubyCommand.Argument(name: "commitish", value: commitish),
2738
+ RubyCommand.Argument(name: "description", value: description),
2739
+ RubyCommand.Argument(name: "is_draft", value: isDraft),
2740
+ RubyCommand.Argument(name: "is_prerelease", value: isPrerelease),
2741
+ RubyCommand.Argument(name: "upload_assets", value: uploadAssets)])
2742
+ return parseDictionary(fromString: runner.executeCommand(command))
2743
+ }
2744
+ func setInfoPlistValue(key: String,
2745
+ subkey: String? = nil,
2746
+ value: String,
2747
+ path: String,
2748
+ outputFileName: String? = nil) {
2749
+ let command = RubyCommand(commandID: "", methodName: "set_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
2750
+ RubyCommand.Argument(name: "subkey", value: subkey),
2751
+ RubyCommand.Argument(name: "value", value: value),
2752
+ RubyCommand.Argument(name: "path", value: path),
2753
+ RubyCommand.Argument(name: "output_file_name", value: outputFileName)])
2754
+ _ = runner.executeCommand(command)
2755
+ }
2756
+ func setPodKey(useBundleExec: Bool = true,
2757
+ key: String,
2758
+ value: String,
2759
+ project: String? = nil) {
2760
+ let command = RubyCommand(commandID: "", methodName: "set_pod_key", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
2761
+ RubyCommand.Argument(name: "key", value: key),
2762
+ RubyCommand.Argument(name: "value", value: value),
2763
+ RubyCommand.Argument(name: "project", value: project)])
2764
+ _ = runner.executeCommand(command)
2765
+ }
2766
+ func setupCircleCi(force: Bool = false) {
2767
+ let command = RubyCommand(commandID: "", methodName: "setup_circle_ci", className: nil, args: [RubyCommand.Argument(name: "force", value: force)])
2768
+ _ = runner.executeCommand(command)
2769
+ }
2770
+ func setupJenkins(force: Bool = false,
2771
+ unlockKeychain: Bool = true,
2772
+ addKeychainToSearchList: String = "replace",
2773
+ setDefaultKeychain: Bool = true,
2774
+ keychainPath: String? = nil,
2775
+ keychainPassword: String = "",
2776
+ setCodeSigningIdentity: Bool = true,
2777
+ codeSigningIdentity: String? = nil,
2778
+ outputDirectory: String = "./output",
2779
+ derivedDataPath: String = "./derivedData",
2780
+ resultBundle: Bool = true) {
2781
+ let command = RubyCommand(commandID: "", methodName: "setup_jenkins", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
2782
+ RubyCommand.Argument(name: "unlock_keychain", value: unlockKeychain),
2783
+ RubyCommand.Argument(name: "add_keychain_to_search_list", value: addKeychainToSearchList),
2784
+ RubyCommand.Argument(name: "set_default_keychain", value: setDefaultKeychain),
2785
+ RubyCommand.Argument(name: "keychain_path", value: keychainPath),
2786
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
2787
+ RubyCommand.Argument(name: "set_code_signing_identity", value: setCodeSigningIdentity),
2788
+ RubyCommand.Argument(name: "code_signing_identity", value: codeSigningIdentity),
2789
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2790
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
2791
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle)])
2792
+ _ = runner.executeCommand(command)
2793
+ }
2794
+ func setupTravis(force: Bool = false) {
2795
+ let command = RubyCommand(commandID: "", methodName: "setup_travis", className: nil, args: [RubyCommand.Argument(name: "force", value: force)])
2796
+ _ = runner.executeCommand(command)
2797
+ }
2798
+ @discardableResult func sh(command: String,
2799
+ log: Bool = true,
2800
+ errorCallback: String? = nil) -> String {
2801
+ let command = RubyCommand(commandID: "", methodName: "sh", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
2802
+ RubyCommand.Argument(name: "log", value: log),
2803
+ RubyCommand.Argument(name: "error_callback", value: errorCallback)])
2804
+ return runner.executeCommand(command)
2805
+ }
2806
+ func sigh(adhoc: Bool = false,
2807
+ development: Bool = false,
2808
+ skipInstall: Bool = false,
2809
+ force: Bool = false,
2810
+ appIdentifier: String,
2811
+ username: String,
2812
+ teamId: String? = nil,
2813
+ teamName: String? = nil,
2814
+ provisioningName: String? = nil,
2815
+ ignoreProfilesWithDifferentName: Bool = false,
2816
+ outputPath: String = ".",
2817
+ certId: String? = nil,
2818
+ certOwnerName: String? = nil,
2819
+ filename: String? = nil,
2820
+ skipFetchProfiles: Bool = false,
2821
+ skipCertificateVerification: Bool = false,
2822
+ platform: String = "ios",
2823
+ readonly: Bool = false,
2824
+ templateName: String? = nil) {
2825
+ let command = RubyCommand(commandID: "", methodName: "sigh", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
2826
+ RubyCommand.Argument(name: "development", value: development),
2827
+ RubyCommand.Argument(name: "skip_install", value: skipInstall),
2828
+ RubyCommand.Argument(name: "force", value: force),
2829
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2830
+ RubyCommand.Argument(name: "username", value: username),
2831
+ RubyCommand.Argument(name: "team_id", value: teamId),
2832
+ RubyCommand.Argument(name: "team_name", value: teamName),
2833
+ RubyCommand.Argument(name: "provisioning_name", value: provisioningName),
2834
+ RubyCommand.Argument(name: "ignore_profiles_with_different_name", value: ignoreProfilesWithDifferentName),
2835
+ RubyCommand.Argument(name: "output_path", value: outputPath),
2836
+ RubyCommand.Argument(name: "cert_id", value: certId),
2837
+ RubyCommand.Argument(name: "cert_owner_name", value: certOwnerName),
2838
+ RubyCommand.Argument(name: "filename", value: filename),
2839
+ RubyCommand.Argument(name: "skip_fetch_profiles", value: skipFetchProfiles),
2840
+ RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
2841
+ RubyCommand.Argument(name: "platform", value: platform),
2842
+ RubyCommand.Argument(name: "readonly", value: readonly),
2843
+ RubyCommand.Argument(name: "template_name", value: templateName)])
2844
+ _ = runner.executeCommand(command)
2845
+ }
2846
+ func slack(message: String? = nil,
2847
+ channel: String? = nil,
2848
+ useWebhookConfiguredUsernameAndIcon: Bool = false,
2849
+ slackUrl: String,
2850
+ username: String = "fastlane",
2851
+ iconUrl: String = "https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png",
2852
+ payload: String = "{}",
2853
+ defaultPayloads: [String]? = nil,
2854
+ attachmentProperties: String = "{}",
2855
+ success: Bool = true) {
2856
+ let command = RubyCommand(commandID: "", methodName: "slack", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
2857
+ RubyCommand.Argument(name: "channel", value: channel),
2858
+ RubyCommand.Argument(name: "use_webhook_configured_username_and_icon", value: useWebhookConfiguredUsernameAndIcon),
2859
+ RubyCommand.Argument(name: "slack_url", value: slackUrl),
2860
+ RubyCommand.Argument(name: "username", value: username),
2861
+ RubyCommand.Argument(name: "icon_url", value: iconUrl),
2862
+ RubyCommand.Argument(name: "payload", value: payload),
2863
+ RubyCommand.Argument(name: "default_payloads", value: defaultPayloads),
2864
+ RubyCommand.Argument(name: "attachment_properties", value: attachmentProperties),
2865
+ RubyCommand.Argument(name: "success", value: success)])
2866
+ _ = runner.executeCommand(command)
2867
+ }
2868
+ func slackTrain() {
2869
+ let command = RubyCommand(commandID: "", methodName: "slack_train", className: nil, args: [])
2870
+ _ = runner.executeCommand(command)
2871
+ }
2872
+ func slackTrainStart(distance: Int = 5,
2873
+ train: String = "🚝",
2874
+ rail: String = "=",
2875
+ reverseDirection: Bool = false) {
2876
+ let command = RubyCommand(commandID: "", methodName: "slack_train_start", className: nil, args: [RubyCommand.Argument(name: "distance", value: distance),
2877
+ RubyCommand.Argument(name: "train", value: train),
2878
+ RubyCommand.Argument(name: "rail", value: rail),
2879
+ RubyCommand.Argument(name: "reverse_direction", value: reverseDirection)])
2880
+ _ = runner.executeCommand(command)
2881
+ }
2882
+ func slather(buildDirectory: String? = nil,
2883
+ proj: String? = nil,
2884
+ workspace: String? = nil,
2885
+ scheme: String? = nil,
2886
+ configuration: String? = nil,
2887
+ inputFormat: String? = nil,
2888
+ buildkite: Bool? = nil,
2889
+ teamcity: Bool? = nil,
2890
+ jenkins: Bool? = nil,
2891
+ travis: Bool? = nil,
2892
+ travisPro: Bool? = nil,
2893
+ circleci: Bool? = nil,
2894
+ coveralls: Bool? = nil,
2895
+ simpleOutput: Bool? = nil,
2896
+ gutterJson: Bool? = nil,
2897
+ coberturaXml: Bool? = nil,
2898
+ html: Bool? = nil,
2899
+ show: Bool = false,
2900
+ sourceDirectory: String? = nil,
2901
+ outputDirectory: String? = nil,
2902
+ ignore: String? = nil,
2903
+ verbose: Bool? = nil,
2904
+ useBundleExec: Bool = false,
2905
+ binaryBasename: Bool = false,
2906
+ binaryFile: Bool = false,
2907
+ sourceFiles: Bool = false,
2908
+ decimals: Bool = false) {
2909
+ let command = RubyCommand(commandID: "", methodName: "slather", className: nil, args: [RubyCommand.Argument(name: "build_directory", value: buildDirectory),
2910
+ RubyCommand.Argument(name: "proj", value: proj),
2911
+ RubyCommand.Argument(name: "workspace", value: workspace),
2912
+ RubyCommand.Argument(name: "scheme", value: scheme),
2913
+ RubyCommand.Argument(name: "configuration", value: configuration),
2914
+ RubyCommand.Argument(name: "input_format", value: inputFormat),
2915
+ RubyCommand.Argument(name: "buildkite", value: buildkite),
2916
+ RubyCommand.Argument(name: "teamcity", value: teamcity),
2917
+ RubyCommand.Argument(name: "jenkins", value: jenkins),
2918
+ RubyCommand.Argument(name: "travis", value: travis),
2919
+ RubyCommand.Argument(name: "travis_pro", value: travisPro),
2920
+ RubyCommand.Argument(name: "circleci", value: circleci),
2921
+ RubyCommand.Argument(name: "coveralls", value: coveralls),
2922
+ RubyCommand.Argument(name: "simple_output", value: simpleOutput),
2923
+ RubyCommand.Argument(name: "gutter_json", value: gutterJson),
2924
+ RubyCommand.Argument(name: "cobertura_xml", value: coberturaXml),
2925
+ RubyCommand.Argument(name: "html", value: html),
2926
+ RubyCommand.Argument(name: "show", value: show),
2927
+ RubyCommand.Argument(name: "source_directory", value: sourceDirectory),
2928
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2929
+ RubyCommand.Argument(name: "ignore", value: ignore),
2930
+ RubyCommand.Argument(name: "verbose", value: verbose),
2931
+ RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
2932
+ RubyCommand.Argument(name: "binary_basename", value: binaryBasename),
2933
+ RubyCommand.Argument(name: "binary_file", value: binaryFile),
2934
+ RubyCommand.Argument(name: "source_files", value: sourceFiles),
2935
+ RubyCommand.Argument(name: "decimals", value: decimals)])
2936
+ _ = runner.executeCommand(command)
2937
+ }
2938
+ func snapshot(workspace: String? = snapshotfile.workspace,
2939
+ project: String? = snapshotfile.project,
2940
+ xcargs: String? = snapshotfile.xcargs,
2941
+ devices: [String]? = snapshotfile.devices,
2942
+ languages: [String] = snapshotfile.languages,
2943
+ launchArguments: [String] = snapshotfile.launchArguments,
2944
+ outputDirectory: String = snapshotfile.outputDirectory,
2945
+ outputSimulatorLogs: Bool = snapshotfile.outputSimulatorLogs,
2946
+ iosVersion: String? = snapshotfile.iosVersion,
2947
+ skipOpenSummary: Bool = snapshotfile.skipOpenSummary,
2948
+ skipHelperVersionCheck: Bool = snapshotfile.skipHelperVersionCheck,
2949
+ clearPreviousScreenshots: Bool = snapshotfile.clearPreviousScreenshots,
2950
+ reinstallApp: Bool = snapshotfile.reinstallApp,
2951
+ eraseSimulator: Bool = snapshotfile.eraseSimulator,
2952
+ localizeSimulator: Bool = snapshotfile.localizeSimulator,
2953
+ appIdentifier: String? = snapshotfile.appIdentifier,
2954
+ addPhotos: [String]? = snapshotfile.addPhotos,
2955
+ addVideos: [String]? = snapshotfile.addVideos,
2956
+ buildlogPath: String = snapshotfile.buildlogPath,
2957
+ clean: Bool = snapshotfile.clean,
2958
+ configuration: String? = snapshotfile.configuration,
2959
+ xcprettyArgs: String? = snapshotfile.xcprettyArgs,
2960
+ sdk: String? = snapshotfile.sdk,
2961
+ scheme: String? = snapshotfile.scheme,
2962
+ numberOfRetries: Int = snapshotfile.numberOfRetries,
2963
+ stopAfterFirstError: Bool = snapshotfile.stopAfterFirstError,
2964
+ derivedDataPath: String? = snapshotfile.derivedDataPath,
2965
+ testTargetName: String? = snapshotfile.testTargetName,
2966
+ namespaceLogFiles: String? = snapshotfile.namespaceLogFiles,
2967
+ concurrentSimulators: Bool = snapshotfile.concurrentSimulators) {
2968
+ let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
2969
+ RubyCommand.Argument(name: "project", value: project),
2970
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
2971
+ RubyCommand.Argument(name: "devices", value: devices),
2972
+ RubyCommand.Argument(name: "languages", value: languages),
2973
+ RubyCommand.Argument(name: "launch_arguments", value: launchArguments),
2974
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2975
+ RubyCommand.Argument(name: "output_simulator_logs", value: outputSimulatorLogs),
2976
+ RubyCommand.Argument(name: "ios_version", value: iosVersion),
2977
+ RubyCommand.Argument(name: "skip_open_summary", value: skipOpenSummary),
2978
+ RubyCommand.Argument(name: "skip_helper_version_check", value: skipHelperVersionCheck),
2979
+ RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
2980
+ RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
2981
+ RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
2982
+ RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
2983
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2984
+ RubyCommand.Argument(name: "add_photos", value: addPhotos),
2985
+ RubyCommand.Argument(name: "add_videos", value: addVideos),
2986
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
2987
+ RubyCommand.Argument(name: "clean", value: clean),
2988
+ RubyCommand.Argument(name: "configuration", value: configuration),
2989
+ RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
2990
+ RubyCommand.Argument(name: "sdk", value: sdk),
2991
+ RubyCommand.Argument(name: "scheme", value: scheme),
2992
+ RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries),
2993
+ RubyCommand.Argument(name: "stop_after_first_error", value: stopAfterFirstError),
2994
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
2995
+ RubyCommand.Argument(name: "test_target_name", value: testTargetName),
2996
+ RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
2997
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
2998
+ _ = runner.executeCommand(command)
2999
+ }
3000
+ func sonar(projectConfigurationPath: String? = nil,
3001
+ projectKey: String? = nil,
3002
+ projectName: String? = nil,
3003
+ projectVersion: String? = nil,
3004
+ sourcesPath: String? = nil,
3005
+ projectLanguage: String? = nil,
3006
+ sourceEncoding: String? = nil,
3007
+ sonarRunnerArgs: String? = nil,
3008
+ sonarLogin: String? = nil) {
3009
+ let command = RubyCommand(commandID: "", methodName: "sonar", className: nil, args: [RubyCommand.Argument(name: "project_configuration_path", value: projectConfigurationPath),
3010
+ RubyCommand.Argument(name: "project_key", value: projectKey),
3011
+ RubyCommand.Argument(name: "project_name", value: projectName),
3012
+ RubyCommand.Argument(name: "project_version", value: projectVersion),
3013
+ RubyCommand.Argument(name: "sources_path", value: sourcesPath),
3014
+ RubyCommand.Argument(name: "project_language", value: projectLanguage),
3015
+ RubyCommand.Argument(name: "source_encoding", value: sourceEncoding),
3016
+ RubyCommand.Argument(name: "sonar_runner_args", value: sonarRunnerArgs),
3017
+ RubyCommand.Argument(name: "sonar_login", value: sonarLogin)])
3018
+ _ = runner.executeCommand(command)
3019
+ }
3020
+ func splunkmint(dsym: String? = nil,
3021
+ apiKey: String,
3022
+ apiToken: String,
3023
+ verbose: Bool = false,
3024
+ uploadProgress: Bool = false,
3025
+ proxyUsername: String? = nil,
3026
+ proxyPassword: String? = nil,
3027
+ proxyAddress: String? = nil,
3028
+ proxyPort: String? = nil) {
3029
+ let command = RubyCommand(commandID: "", methodName: "splunkmint", className: nil, args: [RubyCommand.Argument(name: "dsym", value: dsym),
3030
+ RubyCommand.Argument(name: "api_key", value: apiKey),
3031
+ RubyCommand.Argument(name: "api_token", value: apiToken),
3032
+ RubyCommand.Argument(name: "verbose", value: verbose),
3033
+ RubyCommand.Argument(name: "upload_progress", value: uploadProgress),
3034
+ RubyCommand.Argument(name: "proxy_username", value: proxyUsername),
3035
+ RubyCommand.Argument(name: "proxy_password", value: proxyPassword),
3036
+ RubyCommand.Argument(name: "proxy_address", value: proxyAddress),
3037
+ RubyCommand.Argument(name: "proxy_port", value: proxyPort)])
3038
+ _ = runner.executeCommand(command)
3039
+ }
3040
+ func ssh(username: String,
3041
+ password: String? = nil,
3042
+ host: String,
3043
+ port: String = "22",
3044
+ commands: [String]? = nil,
3045
+ log: Bool = true) {
3046
+ let command = RubyCommand(commandID: "", methodName: "ssh", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
3047
+ RubyCommand.Argument(name: "password", value: password),
3048
+ RubyCommand.Argument(name: "host", value: host),
3049
+ RubyCommand.Argument(name: "port", value: port),
3050
+ RubyCommand.Argument(name: "commands", value: commands),
3051
+ RubyCommand.Argument(name: "log", value: log)])
3052
+ _ = runner.executeCommand(command)
3053
+ }
3054
+ func supply(packageName: String,
3055
+ track: String = "production",
3056
+ rollout: String? = nil,
3057
+ metadataPath: String? = nil,
3058
+ key: String? = nil,
3059
+ issuer: String? = nil,
3060
+ jsonKey: String? = nil,
3061
+ jsonKeyData: String? = nil,
3062
+ apk: String? = nil,
3063
+ apkPaths: [String]? = nil,
3064
+ skipUploadApk: Bool = false,
3065
+ skipUploadMetadata: Bool = false,
3066
+ skipUploadImages: Bool = false,
3067
+ skipUploadScreenshots: Bool = false,
3068
+ trackPromoteTo: String? = nil,
3069
+ validateOnly: Bool = false,
3070
+ mapping: String? = nil,
3071
+ mappingPaths: [String]? = nil,
3072
+ rootUrl: String? = nil,
3073
+ checkSupersededTracks: Bool = false) {
3074
+ let command = RubyCommand(commandID: "", methodName: "supply", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3075
+ RubyCommand.Argument(name: "track", value: track),
3076
+ RubyCommand.Argument(name: "rollout", value: rollout),
3077
+ RubyCommand.Argument(name: "metadata_path", value: metadataPath),
3078
+ RubyCommand.Argument(name: "key", value: key),
3079
+ RubyCommand.Argument(name: "issuer", value: issuer),
3080
+ RubyCommand.Argument(name: "json_key", value: jsonKey),
3081
+ RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
3082
+ RubyCommand.Argument(name: "apk", value: apk),
3083
+ RubyCommand.Argument(name: "apk_paths", value: apkPaths),
3084
+ RubyCommand.Argument(name: "skip_upload_apk", value: skipUploadApk),
3085
+ RubyCommand.Argument(name: "skip_upload_metadata", value: skipUploadMetadata),
3086
+ RubyCommand.Argument(name: "skip_upload_images", value: skipUploadImages),
3087
+ RubyCommand.Argument(name: "skip_upload_screenshots", value: skipUploadScreenshots),
3088
+ RubyCommand.Argument(name: "track_promote_to", value: trackPromoteTo),
3089
+ RubyCommand.Argument(name: "validate_only", value: validateOnly),
3090
+ RubyCommand.Argument(name: "mapping", value: mapping),
3091
+ RubyCommand.Argument(name: "mapping_paths", value: mappingPaths),
3092
+ RubyCommand.Argument(name: "root_url", value: rootUrl),
3093
+ RubyCommand.Argument(name: "check_superseded_tracks", value: checkSupersededTracks)])
3094
+ _ = runner.executeCommand(command)
3095
+ }
3096
+ func swiftlint(mode: String = "lint",
3097
+ outputFile: String? = nil,
3098
+ configFile: String? = nil,
3099
+ strict: Bool = false,
3100
+ files: String? = nil,
3101
+ ignoreExitStatus: Bool = false,
3102
+ reporter: String? = nil,
3103
+ quiet: Bool = false,
3104
+ executable: String? = nil) {
3105
+ let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
3106
+ RubyCommand.Argument(name: "output_file", value: outputFile),
3107
+ RubyCommand.Argument(name: "config_file", value: configFile),
3108
+ RubyCommand.Argument(name: "strict", value: strict),
3109
+ RubyCommand.Argument(name: "files", value: files),
3110
+ RubyCommand.Argument(name: "ignore_exit_status", value: ignoreExitStatus),
3111
+ RubyCommand.Argument(name: "reporter", value: reporter),
3112
+ RubyCommand.Argument(name: "quiet", value: quiet),
3113
+ RubyCommand.Argument(name: "executable", value: executable)])
3114
+ _ = runner.executeCommand(command)
3115
+ }
3116
+ func syncCodeSigning(gitUrl: String,
3117
+ gitBranch: String = "master",
3118
+ type: String = "development",
3119
+ appIdentifier: [String],
3120
+ username: String,
3121
+ keychainName: String = "login.keychain",
3122
+ keychainPassword: String? = nil,
3123
+ readonly: Bool = false,
3124
+ teamId: String? = nil,
3125
+ gitFullName: String? = nil,
3126
+ gitUserEmail: String? = nil,
3127
+ teamName: String? = nil,
3128
+ verbose: Bool = false,
3129
+ force: Bool = false,
3130
+ skipConfirmation: Bool = false,
3131
+ shallowClone: Bool = false,
3132
+ cloneBranchDirectly: Bool = false,
3133
+ workspace: String? = nil,
3134
+ forceForNewDevices: Bool = false,
3135
+ skipDocs: Bool = false,
3136
+ platform: String = "ios",
3137
+ templateName: String? = nil) {
3138
+ let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "git_url", value: gitUrl),
3139
+ RubyCommand.Argument(name: "git_branch", value: gitBranch),
3140
+ RubyCommand.Argument(name: "type", value: type),
3141
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3142
+ RubyCommand.Argument(name: "username", value: username),
3143
+ RubyCommand.Argument(name: "keychain_name", value: keychainName),
3144
+ RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
3145
+ RubyCommand.Argument(name: "readonly", value: readonly),
3146
+ RubyCommand.Argument(name: "team_id", value: teamId),
3147
+ RubyCommand.Argument(name: "git_full_name", value: gitFullName),
3148
+ RubyCommand.Argument(name: "git_user_email", value: gitUserEmail),
3149
+ RubyCommand.Argument(name: "team_name", value: teamName),
3150
+ RubyCommand.Argument(name: "verbose", value: verbose),
3151
+ RubyCommand.Argument(name: "force", value: force),
3152
+ RubyCommand.Argument(name: "skip_confirmation", value: skipConfirmation),
3153
+ RubyCommand.Argument(name: "shallow_clone", value: shallowClone),
3154
+ RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
3155
+ RubyCommand.Argument(name: "workspace", value: workspace),
3156
+ RubyCommand.Argument(name: "force_for_new_devices", value: forceForNewDevices),
3157
+ RubyCommand.Argument(name: "skip_docs", value: skipDocs),
3158
+ RubyCommand.Argument(name: "platform", value: platform),
3159
+ RubyCommand.Argument(name: "template_name", value: templateName)])
3160
+ _ = runner.executeCommand(command)
3161
+ }
3162
+ func testfairy(apiKey: String,
3163
+ ipa: String,
3164
+ symbolsFile: String? = nil,
3165
+ testersGroups: [String] = [],
3166
+ metrics: [String] = [],
3167
+ iconWatermark: String = "off",
3168
+ comment: String = "No comment provided",
3169
+ autoUpdate: String = "off",
3170
+ notify: String = "off",
3171
+ options: [String] = []) {
3172
+ let command = RubyCommand(commandID: "", methodName: "testfairy", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
3173
+ RubyCommand.Argument(name: "ipa", value: ipa),
3174
+ RubyCommand.Argument(name: "symbols_file", value: symbolsFile),
3175
+ RubyCommand.Argument(name: "testers_groups", value: testersGroups),
3176
+ RubyCommand.Argument(name: "metrics", value: metrics),
3177
+ RubyCommand.Argument(name: "icon_watermark", value: iconWatermark),
3178
+ RubyCommand.Argument(name: "comment", value: comment),
3179
+ RubyCommand.Argument(name: "auto_update", value: autoUpdate),
3180
+ RubyCommand.Argument(name: "notify", value: notify),
3181
+ RubyCommand.Argument(name: "options", value: options)])
3182
+ _ = runner.executeCommand(command)
3183
+ }
3184
+ func testflight(username: String,
3185
+ appIdentifier: String? = nil,
3186
+ appPlatform: String = "ios",
3187
+ ipa: String? = nil,
3188
+ changelog: String? = nil,
3189
+ betaAppDescription: String? = nil,
3190
+ betaAppFeedbackEmail: String? = nil,
3191
+ skipSubmission: Bool = false,
3192
+ skipWaitingForBuildProcessing: Bool = false,
3193
+ updateBuildInfoOnUpload: Bool = false,
3194
+ appleId: String? = nil,
3195
+ distributeExternal: Bool = false,
3196
+ firstName: String? = nil,
3197
+ lastName: String? = nil,
3198
+ email: String? = nil,
3199
+ testersFilePath: String = "./testers.csv",
3200
+ waitProcessingInterval: Int = 30,
3201
+ teamId: String? = nil,
3202
+ teamName: String? = nil,
3203
+ devPortalTeamId: String? = nil,
3204
+ itcProvider: String? = nil,
3205
+ groups: [String]? = nil,
3206
+ waitForUploadedBuild: Bool = false) {
3207
+ let command = RubyCommand(commandID: "", methodName: "testflight", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
3208
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3209
+ RubyCommand.Argument(name: "app_platform", value: appPlatform),
3210
+ RubyCommand.Argument(name: "ipa", value: ipa),
3211
+ RubyCommand.Argument(name: "changelog", value: changelog),
3212
+ RubyCommand.Argument(name: "beta_app_description", value: betaAppDescription),
3213
+ RubyCommand.Argument(name: "beta_app_feedback_email", value: betaAppFeedbackEmail),
3214
+ RubyCommand.Argument(name: "skip_submission", value: skipSubmission),
3215
+ RubyCommand.Argument(name: "skip_waiting_for_build_processing", value: skipWaitingForBuildProcessing),
3216
+ RubyCommand.Argument(name: "update_build_info_on_upload", value: updateBuildInfoOnUpload),
3217
+ RubyCommand.Argument(name: "apple_id", value: appleId),
3218
+ RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
3219
+ RubyCommand.Argument(name: "first_name", value: firstName),
3220
+ RubyCommand.Argument(name: "last_name", value: lastName),
3221
+ RubyCommand.Argument(name: "email", value: email),
3222
+ RubyCommand.Argument(name: "testers_file_path", value: testersFilePath),
3223
+ RubyCommand.Argument(name: "wait_processing_interval", value: waitProcessingInterval),
3224
+ RubyCommand.Argument(name: "team_id", value: teamId),
3225
+ RubyCommand.Argument(name: "team_name", value: teamName),
3226
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
3227
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
3228
+ RubyCommand.Argument(name: "groups", value: groups),
3229
+ RubyCommand.Argument(name: "wait_for_uploaded_build", value: waitForUploadedBuild)])
3230
+ _ = runner.executeCommand(command)
3231
+ }
3232
+ func tryouts(appId: String,
3233
+ apiToken: String,
3234
+ buildFile: String,
3235
+ notes: String? = nil,
3236
+ notesPath: String? = nil,
3237
+ notify: String = "1",
3238
+ status: String = "2") {
3239
+ let command = RubyCommand(commandID: "", methodName: "tryouts", className: nil, args: [RubyCommand.Argument(name: "app_id", value: appId),
3240
+ RubyCommand.Argument(name: "api_token", value: apiToken),
3241
+ RubyCommand.Argument(name: "build_file", value: buildFile),
3242
+ RubyCommand.Argument(name: "notes", value: notes),
3243
+ RubyCommand.Argument(name: "notes_path", value: notesPath),
3244
+ RubyCommand.Argument(name: "notify", value: notify),
3245
+ RubyCommand.Argument(name: "status", value: status)])
3246
+ _ = runner.executeCommand(command)
3247
+ }
3248
+ func twitter(consumerKey: String,
3249
+ consumerSecret: String,
3250
+ accessToken: String,
3251
+ accessTokenSecret: String,
3252
+ message: String) {
3253
+ let command = RubyCommand(commandID: "", methodName: "twitter", className: nil, args: [RubyCommand.Argument(name: "consumer_key", value: consumerKey),
3254
+ RubyCommand.Argument(name: "consumer_secret", value: consumerSecret),
3255
+ RubyCommand.Argument(name: "access_token", value: accessToken),
3256
+ RubyCommand.Argument(name: "access_token_secret", value: accessTokenSecret),
3257
+ RubyCommand.Argument(name: "message", value: message)])
3258
+ _ = runner.executeCommand(command)
3259
+ }
3260
+ func typetalk() {
3261
+ let command = RubyCommand(commandID: "", methodName: "typetalk", className: nil, args: [])
3262
+ _ = runner.executeCommand(command)
3263
+ }
3264
+ func unlockKeychain(path: String,
3265
+ password: String,
3266
+ addToSearchList: Bool = true,
3267
+ setDefault: Bool = false) {
3268
+ let command = RubyCommand(commandID: "", methodName: "unlock_keychain", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3269
+ RubyCommand.Argument(name: "password", value: password),
3270
+ RubyCommand.Argument(name: "add_to_search_list", value: addToSearchList),
3271
+ RubyCommand.Argument(name: "set_default", value: setDefault)])
3272
+ _ = runner.executeCommand(command)
3273
+ }
3274
+ func updateAppGroupIdentifiers(entitlementsFile: String,
3275
+ appGroupIdentifiers: String) {
3276
+ let command = RubyCommand(commandID: "", methodName: "update_app_group_identifiers", className: nil, args: [RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile),
3277
+ RubyCommand.Argument(name: "app_group_identifiers", value: appGroupIdentifiers)])
3278
+ _ = runner.executeCommand(command)
3279
+ }
3280
+ func updateAppIdentifier(xcodeproj: String,
3281
+ plistPath: String,
3282
+ appIdentifier: String) {
3283
+ let command = RubyCommand(commandID: "", methodName: "update_app_identifier", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3284
+ RubyCommand.Argument(name: "plist_path", value: plistPath),
3285
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier)])
3286
+ _ = runner.executeCommand(command)
3287
+ }
3288
+ func updateFastlane(nightly: Bool = false,
3289
+ noUpdate: Bool = false,
3290
+ tools: String? = nil) {
3291
+ let command = RubyCommand(commandID: "", methodName: "update_fastlane", className: nil, args: [RubyCommand.Argument(name: "nightly", value: nightly),
3292
+ RubyCommand.Argument(name: "no_update", value: noUpdate),
3293
+ RubyCommand.Argument(name: "tools", value: tools)])
3294
+ _ = runner.executeCommand(command)
3295
+ }
3296
+ func updateIcloudContainerIdentifiers(entitlementsFile: String,
3297
+ icloudContainerIdentifiers: String) {
3298
+ let command = RubyCommand(commandID: "", methodName: "update_icloud_container_identifiers", className: nil, args: [RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile),
3299
+ RubyCommand.Argument(name: "icloud_container_identifiers", value: icloudContainerIdentifiers)])
3300
+ _ = runner.executeCommand(command)
3301
+ }
3302
+ func updateInfoPlist(xcodeproj: String? = nil,
3303
+ plistPath: String? = nil,
3304
+ scheme: String? = nil,
3305
+ appIdentifier: String? = nil,
3306
+ displayName: String? = nil,
3307
+ block: String? = nil) {
3308
+ let command = RubyCommand(commandID: "", methodName: "update_info_plist", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3309
+ RubyCommand.Argument(name: "plist_path", value: plistPath),
3310
+ RubyCommand.Argument(name: "scheme", value: scheme),
3311
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3312
+ RubyCommand.Argument(name: "display_name", value: displayName),
3313
+ RubyCommand.Argument(name: "block", value: block)])
3314
+ _ = runner.executeCommand(command)
3315
+ }
3316
+ func updateProjectCodeSigning(path: String,
3317
+ udid: String,
3318
+ uuid: String) {
3319
+ let command = RubyCommand(commandID: "", methodName: "update_project_code_signing", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3320
+ RubyCommand.Argument(name: "udid", value: udid),
3321
+ RubyCommand.Argument(name: "uuid", value: uuid)])
3322
+ _ = runner.executeCommand(command)
3323
+ }
3324
+ func updateProjectProvisioning(xcodeproj: String? = nil,
3325
+ profile: String,
3326
+ targetFilter: String? = nil,
3327
+ buildConfigurationFilter: String? = nil,
3328
+ buildConfiguration: String? = nil,
3329
+ certificate: String = "/tmp/AppleIncRootCertificate.cer") {
3330
+ let command = RubyCommand(commandID: "", methodName: "update_project_provisioning", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3331
+ RubyCommand.Argument(name: "profile", value: profile),
3332
+ RubyCommand.Argument(name: "target_filter", value: targetFilter),
3333
+ RubyCommand.Argument(name: "build_configuration_filter", value: buildConfigurationFilter),
3334
+ RubyCommand.Argument(name: "build_configuration", value: buildConfiguration),
3335
+ RubyCommand.Argument(name: "certificate", value: certificate)])
3336
+ _ = runner.executeCommand(command)
3337
+ }
3338
+ func updateProjectTeam(path: String,
3339
+ teamid: String) {
3340
+ let command = RubyCommand(commandID: "", methodName: "update_project_team", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3341
+ RubyCommand.Argument(name: "teamid", value: teamid)])
3342
+ _ = runner.executeCommand(command)
3343
+ }
3344
+ func updateUrbanAirshipConfiguration(plistPath: String,
3345
+ developmentAppKey: String? = nil,
3346
+ developmentAppSecret: String? = nil,
3347
+ productionAppKey: String? = nil,
3348
+ productionAppSecret: String? = nil,
3349
+ detectProvisioningMode: Bool? = nil) {
3350
+ let command = RubyCommand(commandID: "", methodName: "update_urban_airship_configuration", className: nil, args: [RubyCommand.Argument(name: "plist_path", value: plistPath),
3351
+ RubyCommand.Argument(name: "development_app_key", value: developmentAppKey),
3352
+ RubyCommand.Argument(name: "development_app_secret", value: developmentAppSecret),
3353
+ RubyCommand.Argument(name: "production_app_key", value: productionAppKey),
3354
+ RubyCommand.Argument(name: "production_app_secret", value: productionAppSecret),
3355
+ RubyCommand.Argument(name: "detect_provisioning_mode", value: detectProvisioningMode)])
3356
+ _ = runner.executeCommand(command)
3357
+ }
3358
+ func updateUrlSchemes(path: String,
3359
+ urlSchemes: String) {
3360
+ let command = RubyCommand(commandID: "", methodName: "update_url_schemes", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3361
+ RubyCommand.Argument(name: "url_schemes", value: urlSchemes)])
3362
+ _ = runner.executeCommand(command)
3363
+ }
3364
+ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji.dSYM.zip",
3365
+ apiToken: String? = nil,
3366
+ binaryPath: String? = nil,
3367
+ platform: String = "ios",
3368
+ dsymWorkerThreads: Int = 1) {
3369
+ let command = RubyCommand(commandID: "", methodName: "upload_symbols_to_crashlytics", className: nil, args: [RubyCommand.Argument(name: "dsym_path", value: dsymPath),
3370
+ RubyCommand.Argument(name: "api_token", value: apiToken),
3371
+ RubyCommand.Argument(name: "binary_path", value: binaryPath),
3372
+ RubyCommand.Argument(name: "platform", value: platform),
3373
+ RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads)])
3374
+ _ = runner.executeCommand(command)
3375
+ }
3376
+ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
3377
+ apiKey: String? = nil,
3378
+ authToken: String? = nil,
3379
+ orgSlug: String,
3380
+ projectSlug: String,
3381
+ dsymPath: String? = nil,
3382
+ dsymPaths: String? = nil) {
3383
+ let command = RubyCommand(commandID: "", methodName: "upload_symbols_to_sentry", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
3384
+ RubyCommand.Argument(name: "api_key", value: apiKey),
3385
+ RubyCommand.Argument(name: "auth_token", value: authToken),
3386
+ RubyCommand.Argument(name: "org_slug", value: orgSlug),
3387
+ RubyCommand.Argument(name: "project_slug", value: projectSlug),
3388
+ RubyCommand.Argument(name: "dsym_path", value: dsymPath),
3389
+ RubyCommand.Argument(name: "dsym_paths", value: dsymPaths)])
3390
+ _ = runner.executeCommand(command)
3391
+ }
3392
+ func uploadToAppStore(username: String,
3393
+ appIdentifier: String? = nil,
3394
+ app: String,
3395
+ editLive: Bool = false,
3396
+ ipa: String? = nil,
3397
+ pkg: String? = nil,
3398
+ platform: String = "ios",
3399
+ metadataPath: String? = nil,
3400
+ screenshotsPath: String? = nil,
3401
+ skipBinaryUpload: Bool = false,
3402
+ skipScreenshots: Bool = false,
3403
+ appVersion: String? = nil,
3404
+ skipMetadata: Bool = false,
3405
+ skipAppVersionUpdate: Bool = false,
3406
+ force: Bool = false,
3407
+ submitForReview: Bool = false,
3408
+ automaticRelease: Bool = false,
3409
+ autoReleaseDate: String? = nil,
3410
+ phasedRelease: Bool = false,
3411
+ priceTier: String? = nil,
3412
+ buildNumber: String? = nil,
3413
+ appRatingConfigPath: String? = nil,
3414
+ submissionInformation: String? = nil,
3415
+ teamId: String? = nil,
3416
+ teamName: String? = nil,
3417
+ devPortalTeamId: String? = nil,
3418
+ devPortalTeamName: String? = nil,
3419
+ itcProvider: String? = nil,
3420
+ overwriteScreenshots: Bool = false,
3421
+ runPrecheckBeforeSubmit: Bool = true,
3422
+ precheckDefaultRuleLevel: String = "warn",
3423
+ appIcon: String? = nil,
3424
+ appleWatchAppIcon: String? = nil,
3425
+ copyright: String? = nil,
3426
+ primaryCategory: String? = nil,
3427
+ secondaryCategory: String? = nil,
3428
+ primaryFirstSubCategory: String? = nil,
3429
+ primarySecondSubCategory: String? = nil,
3430
+ secondaryFirstSubCategory: String? = nil,
3431
+ secondarySecondSubCategory: String? = nil,
3432
+ tradeRepresentativeContactInformation: [String : Any]? = nil,
3433
+ appReviewInformation: [String : Any]? = nil,
3434
+ description: String? = nil,
3435
+ name: String? = nil,
3436
+ subtitle: [String : Any]? = nil,
3437
+ keywords: [String : Any]? = nil,
3438
+ promotionalText: [String : Any]? = nil,
3439
+ releaseNotes: String? = nil,
3440
+ privacyUrl: String? = nil,
3441
+ supportUrl: String? = nil,
3442
+ marketingUrl: String? = nil,
3443
+ languages: [String]? = nil,
3444
+ ignoreLanguageDirectoryValidation: Bool = false,
3445
+ precheckIncludeInAppPurchases: Bool = true) {
3446
+ let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
3447
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3448
+ RubyCommand.Argument(name: "app", value: app),
3449
+ RubyCommand.Argument(name: "edit_live", value: editLive),
3450
+ RubyCommand.Argument(name: "ipa", value: ipa),
3451
+ RubyCommand.Argument(name: "pkg", value: pkg),
3452
+ RubyCommand.Argument(name: "platform", value: platform),
3453
+ RubyCommand.Argument(name: "metadata_path", value: metadataPath),
3454
+ RubyCommand.Argument(name: "screenshots_path", value: screenshotsPath),
3455
+ RubyCommand.Argument(name: "skip_binary_upload", value: skipBinaryUpload),
3456
+ RubyCommand.Argument(name: "skip_screenshots", value: skipScreenshots),
3457
+ RubyCommand.Argument(name: "app_version", value: appVersion),
3458
+ RubyCommand.Argument(name: "skip_metadata", value: skipMetadata),
3459
+ RubyCommand.Argument(name: "skip_app_version_update", value: skipAppVersionUpdate),
3460
+ RubyCommand.Argument(name: "force", value: force),
3461
+ RubyCommand.Argument(name: "submit_for_review", value: submitForReview),
3462
+ RubyCommand.Argument(name: "automatic_release", value: automaticRelease),
3463
+ RubyCommand.Argument(name: "auto_release_date", value: autoReleaseDate),
3464
+ RubyCommand.Argument(name: "phased_release", value: phasedRelease),
3465
+ RubyCommand.Argument(name: "price_tier", value: priceTier),
3466
+ RubyCommand.Argument(name: "build_number", value: buildNumber),
3467
+ RubyCommand.Argument(name: "app_rating_config_path", value: appRatingConfigPath),
3468
+ RubyCommand.Argument(name: "submission_information", value: submissionInformation),
3469
+ RubyCommand.Argument(name: "team_id", value: teamId),
3470
+ RubyCommand.Argument(name: "team_name", value: teamName),
3471
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
3472
+ RubyCommand.Argument(name: "dev_portal_team_name", value: devPortalTeamName),
3473
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
3474
+ RubyCommand.Argument(name: "overwrite_screenshots", value: overwriteScreenshots),
3475
+ RubyCommand.Argument(name: "run_precheck_before_submit", value: runPrecheckBeforeSubmit),
3476
+ RubyCommand.Argument(name: "precheck_default_rule_level", value: precheckDefaultRuleLevel),
3477
+ RubyCommand.Argument(name: "app_icon", value: appIcon),
3478
+ RubyCommand.Argument(name: "apple_watch_app_icon", value: appleWatchAppIcon),
3479
+ RubyCommand.Argument(name: "copyright", value: copyright),
3480
+ RubyCommand.Argument(name: "primary_category", value: primaryCategory),
3481
+ RubyCommand.Argument(name: "secondary_category", value: secondaryCategory),
3482
+ RubyCommand.Argument(name: "primary_first_sub_category", value: primaryFirstSubCategory),
3483
+ RubyCommand.Argument(name: "primary_second_sub_category", value: primarySecondSubCategory),
3484
+ RubyCommand.Argument(name: "secondary_first_sub_category", value: secondaryFirstSubCategory),
3485
+ RubyCommand.Argument(name: "secondary_second_sub_category", value: secondarySecondSubCategory),
3486
+ RubyCommand.Argument(name: "trade_representative_contact_information", value: tradeRepresentativeContactInformation),
3487
+ RubyCommand.Argument(name: "app_review_information", value: appReviewInformation),
3488
+ RubyCommand.Argument(name: "description", value: description),
3489
+ RubyCommand.Argument(name: "name", value: name),
3490
+ RubyCommand.Argument(name: "subtitle", value: subtitle),
3491
+ RubyCommand.Argument(name: "keywords", value: keywords),
3492
+ RubyCommand.Argument(name: "promotional_text", value: promotionalText),
3493
+ RubyCommand.Argument(name: "release_notes", value: releaseNotes),
3494
+ RubyCommand.Argument(name: "privacy_url", value: privacyUrl),
3495
+ RubyCommand.Argument(name: "support_url", value: supportUrl),
3496
+ RubyCommand.Argument(name: "marketing_url", value: marketingUrl),
3497
+ RubyCommand.Argument(name: "languages", value: languages),
3498
+ RubyCommand.Argument(name: "ignore_language_directory_validation", value: ignoreLanguageDirectoryValidation),
3499
+ RubyCommand.Argument(name: "precheck_include_in_app_purchases", value: precheckIncludeInAppPurchases)])
3500
+ _ = runner.executeCommand(command)
3501
+ }
3502
+ func uploadToPlayStore(packageName: String,
3503
+ track: String = "production",
3504
+ rollout: String? = nil,
3505
+ metadataPath: String? = nil,
3506
+ key: String? = nil,
3507
+ issuer: String? = nil,
3508
+ jsonKey: String? = nil,
3509
+ jsonKeyData: String? = nil,
3510
+ apk: String? = nil,
3511
+ apkPaths: [String]? = nil,
3512
+ skipUploadApk: Bool = false,
3513
+ skipUploadMetadata: Bool = false,
3514
+ skipUploadImages: Bool = false,
3515
+ skipUploadScreenshots: Bool = false,
3516
+ trackPromoteTo: String? = nil,
3517
+ validateOnly: Bool = false,
3518
+ mapping: String? = nil,
3519
+ mappingPaths: [String]? = nil,
3520
+ rootUrl: String? = nil,
3521
+ checkSupersededTracks: Bool = false) {
3522
+ let command = RubyCommand(commandID: "", methodName: "upload_to_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3523
+ RubyCommand.Argument(name: "track", value: track),
3524
+ RubyCommand.Argument(name: "rollout", value: rollout),
3525
+ RubyCommand.Argument(name: "metadata_path", value: metadataPath),
3526
+ RubyCommand.Argument(name: "key", value: key),
3527
+ RubyCommand.Argument(name: "issuer", value: issuer),
3528
+ RubyCommand.Argument(name: "json_key", value: jsonKey),
3529
+ RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
3530
+ RubyCommand.Argument(name: "apk", value: apk),
3531
+ RubyCommand.Argument(name: "apk_paths", value: apkPaths),
3532
+ RubyCommand.Argument(name: "skip_upload_apk", value: skipUploadApk),
3533
+ RubyCommand.Argument(name: "skip_upload_metadata", value: skipUploadMetadata),
3534
+ RubyCommand.Argument(name: "skip_upload_images", value: skipUploadImages),
3535
+ RubyCommand.Argument(name: "skip_upload_screenshots", value: skipUploadScreenshots),
3536
+ RubyCommand.Argument(name: "track_promote_to", value: trackPromoteTo),
3537
+ RubyCommand.Argument(name: "validate_only", value: validateOnly),
3538
+ RubyCommand.Argument(name: "mapping", value: mapping),
3539
+ RubyCommand.Argument(name: "mapping_paths", value: mappingPaths),
3540
+ RubyCommand.Argument(name: "root_url", value: rootUrl),
3541
+ RubyCommand.Argument(name: "check_superseded_tracks", value: checkSupersededTracks)])
3542
+ _ = runner.executeCommand(command)
3543
+ }
3544
+ func uploadToTestflight(username: String,
3545
+ appIdentifier: String? = nil,
3546
+ appPlatform: String = "ios",
3547
+ ipa: String? = nil,
3548
+ changelog: String? = nil,
3549
+ betaAppDescription: String? = nil,
3550
+ betaAppFeedbackEmail: String? = nil,
3551
+ skipSubmission: Bool = false,
3552
+ skipWaitingForBuildProcessing: Bool = false,
3553
+ updateBuildInfoOnUpload: Bool = false,
3554
+ appleId: String? = nil,
3555
+ distributeExternal: Bool = false,
3556
+ firstName: String? = nil,
3557
+ lastName: String? = nil,
3558
+ email: String? = nil,
3559
+ testersFilePath: String = "./testers.csv",
3560
+ waitProcessingInterval: Int = 30,
3561
+ teamId: String? = nil,
3562
+ teamName: String? = nil,
3563
+ devPortalTeamId: String? = nil,
3564
+ itcProvider: String? = nil,
3565
+ groups: [String]? = nil,
3566
+ waitForUploadedBuild: Bool = false) {
3567
+ let command = RubyCommand(commandID: "", methodName: "upload_to_testflight", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
3568
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3569
+ RubyCommand.Argument(name: "app_platform", value: appPlatform),
3570
+ RubyCommand.Argument(name: "ipa", value: ipa),
3571
+ RubyCommand.Argument(name: "changelog", value: changelog),
3572
+ RubyCommand.Argument(name: "beta_app_description", value: betaAppDescription),
3573
+ RubyCommand.Argument(name: "beta_app_feedback_email", value: betaAppFeedbackEmail),
3574
+ RubyCommand.Argument(name: "skip_submission", value: skipSubmission),
3575
+ RubyCommand.Argument(name: "skip_waiting_for_build_processing", value: skipWaitingForBuildProcessing),
3576
+ RubyCommand.Argument(name: "update_build_info_on_upload", value: updateBuildInfoOnUpload),
3577
+ RubyCommand.Argument(name: "apple_id", value: appleId),
3578
+ RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
3579
+ RubyCommand.Argument(name: "first_name", value: firstName),
3580
+ RubyCommand.Argument(name: "last_name", value: lastName),
3581
+ RubyCommand.Argument(name: "email", value: email),
3582
+ RubyCommand.Argument(name: "testers_file_path", value: testersFilePath),
3583
+ RubyCommand.Argument(name: "wait_processing_interval", value: waitProcessingInterval),
3584
+ RubyCommand.Argument(name: "team_id", value: teamId),
3585
+ RubyCommand.Argument(name: "team_name", value: teamName),
3586
+ RubyCommand.Argument(name: "dev_portal_team_id", value: devPortalTeamId),
3587
+ RubyCommand.Argument(name: "itc_provider", value: itcProvider),
3588
+ RubyCommand.Argument(name: "groups", value: groups),
3589
+ RubyCommand.Argument(name: "wait_for_uploaded_build", value: waitForUploadedBuild)])
3590
+ _ = runner.executeCommand(command)
3591
+ }
3592
+ func verifyBuild(provisioningType: String? = nil,
3593
+ provisioningUuid: String? = nil,
3594
+ teamIdentifier: String? = nil,
3595
+ teamName: String? = nil,
3596
+ appName: String? = nil,
3597
+ bundleIdentifier: String? = nil,
3598
+ ipaPath: String? = nil) {
3599
+ let command = RubyCommand(commandID: "", methodName: "verify_build", className: nil, args: [RubyCommand.Argument(name: "provisioning_type", value: provisioningType),
3600
+ RubyCommand.Argument(name: "provisioning_uuid", value: provisioningUuid),
3601
+ RubyCommand.Argument(name: "team_identifier", value: teamIdentifier),
3602
+ RubyCommand.Argument(name: "team_name", value: teamName),
3603
+ RubyCommand.Argument(name: "app_name", value: appName),
3604
+ RubyCommand.Argument(name: "bundle_identifier", value: bundleIdentifier),
3605
+ RubyCommand.Argument(name: "ipa_path", value: ipaPath)])
3606
+ _ = runner.executeCommand(command)
3607
+ }
3608
+ func verifyXcode(xcodePath: String) {
3609
+ let command = RubyCommand(commandID: "", methodName: "verify_xcode", className: nil, args: [RubyCommand.Argument(name: "xcode_path", value: xcodePath)])
3610
+ _ = runner.executeCommand(command)
3611
+ }
3612
+ func versionBumpPodspec(path: String,
3613
+ bumpType: String = "patch",
3614
+ versionNumber: String? = nil,
3615
+ versionAppendix: String? = nil) {
3616
+ let command = RubyCommand(commandID: "", methodName: "version_bump_podspec", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3617
+ RubyCommand.Argument(name: "bump_type", value: bumpType),
3618
+ RubyCommand.Argument(name: "version_number", value: versionNumber),
3619
+ RubyCommand.Argument(name: "version_appendix", value: versionAppendix)])
3620
+ _ = runner.executeCommand(command)
3621
+ }
3622
+ func versionGetPodspec(path: String) {
3623
+ let command = RubyCommand(commandID: "", methodName: "version_get_podspec", className: nil, args: [RubyCommand.Argument(name: "path", value: path)])
3624
+ _ = runner.executeCommand(command)
3625
+ }
3626
+ func xcarchive() {
3627
+ let command = RubyCommand(commandID: "", methodName: "xcarchive", className: nil, args: [])
3628
+ _ = runner.executeCommand(command)
3629
+ }
3630
+ func xcbuild() {
3631
+ let command = RubyCommand(commandID: "", methodName: "xcbuild", className: nil, args: [])
3632
+ _ = runner.executeCommand(command)
3633
+ }
3634
+ func xcclean() {
3635
+ let command = RubyCommand(commandID: "", methodName: "xcclean", className: nil, args: [])
3636
+ _ = runner.executeCommand(command)
3637
+ }
3638
+ func xcexport() {
3639
+ let command = RubyCommand(commandID: "", methodName: "xcexport", className: nil, args: [])
3640
+ _ = runner.executeCommand(command)
3641
+ }
3642
+ @discardableResult func xcodeInstall(version: String,
3643
+ username: String,
3644
+ teamId: String? = nil) -> String {
3645
+ let command = RubyCommand(commandID: "", methodName: "xcode_install", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
3646
+ RubyCommand.Argument(name: "username", value: username),
3647
+ RubyCommand.Argument(name: "team_id", value: teamId)])
3648
+ return runner.executeCommand(command)
3649
+ }
3650
+ @discardableResult func xcodeServerGetAssets(host: String,
3651
+ botName: String,
3652
+ integrationNumber: String? = nil,
3653
+ username: String = "",
3654
+ password: String = "",
3655
+ targetFolder: String = "./xcs_assets",
3656
+ keepAllAssets: Bool = false,
3657
+ trustSelfSignedCerts: Bool = true) -> [String] {
3658
+ let command = RubyCommand(commandID: "", methodName: "xcode_server_get_assets", className: nil, args: [RubyCommand.Argument(name: "host", value: host),
3659
+ RubyCommand.Argument(name: "bot_name", value: botName),
3660
+ RubyCommand.Argument(name: "integration_number", value: integrationNumber),
3661
+ RubyCommand.Argument(name: "username", value: username),
3662
+ RubyCommand.Argument(name: "password", value: password),
3663
+ RubyCommand.Argument(name: "target_folder", value: targetFolder),
3664
+ RubyCommand.Argument(name: "keep_all_assets", value: keepAllAssets),
3665
+ RubyCommand.Argument(name: "trust_self_signed_certs", value: trustSelfSignedCerts)])
3666
+ return parseArray(fromString: runner.executeCommand(command))
3667
+ }
3668
+ func xcodebuild() {
3669
+ let command = RubyCommand(commandID: "", methodName: "xcodebuild", className: nil, args: [])
3670
+ _ = runner.executeCommand(command)
3671
+ }
3672
+ func xcov() {
3673
+ let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [])
3674
+ _ = runner.executeCommand(command)
3675
+ }
3676
+ func xctest() {
3677
+ let command = RubyCommand(commandID: "", methodName: "xctest", className: nil, args: [])
3678
+ _ = runner.executeCommand(command)
3679
+ }
3680
+ func xcversion(version: String) {
3681
+ let command = RubyCommand(commandID: "", methodName: "xcversion", className: nil, args: [RubyCommand.Argument(name: "version", value: version)])
3682
+ _ = runner.executeCommand(command)
3683
+ }
3684
+ @discardableResult func zip(path: String,
3685
+ outputPath: String? = nil,
3686
+ verbose: Bool = true) -> String {
3687
+ let command = RubyCommand(commandID: "", methodName: "zip", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3688
+ RubyCommand.Argument(name: "output_path", value: outputPath),
3689
+ RubyCommand.Argument(name: "verbose", value: verbose)])
3690
+ return runner.executeCommand(command)
3691
+ }
3692
+
3693
+ // These are all the parsing functions needed to transform our data into the expected types
3694
+ func parseArray(fromString: String, function: String = #function) -> [String] {
3695
+ verbose(message: "parsing an Array from data: \(fromString), from function: \(function)")
3696
+ let potentialArray: String
3697
+ if fromString.count < 2 {
3698
+ potentialArray = "[\(fromString)]"
3699
+ } else {
3700
+ potentialArray = fromString
3701
+ }
3702
+ let array: [String] = try! JSONSerialization.jsonObject(with: potentialArray.data(using: .utf8)!, options: []) as! [String]
3703
+ return array
3704
+ }
3705
+
3706
+ func parseDictionary(fromString: String, function: String = #function) -> [String : String] {
3707
+ verbose(message: "parsing an Array from data: \(fromString), from function: \(function)")
3708
+ let potentialDictionary: String
3709
+ if fromString.count < 2 {
3710
+ verbose(message: "Dictionary value too small: \(fromString), from function: \(function)")
3711
+ potentialDictionary = "{}"
3712
+ } else {
3713
+ potentialDictionary = fromString
3714
+ }
3715
+ let dictionary: [String : String] = try! JSONSerialization.jsonObject(with: potentialDictionary.data(using: .utf8)!, options: []) as! [String : String]
3716
+ return dictionary
3717
+ }
3718
+
3719
+ func parseBool(fromString: String, function: String = #function) -> Bool {
3720
+ verbose(message: "parsing a Bool from data: \(fromString), from function: \(function)")
3721
+ return NSString(string: fromString).boolValue
3722
+ }
3723
+
3724
+ func parseInt(fromString: String, function: String = #function) -> Int {
3725
+ verbose(message: "parsing a Bool from data: \(fromString), from function: \(function)")
3726
+ return NSString(string: fromString).integerValue
3727
+ }
3728
+
3729
+ let deliverfile: Deliverfile = Deliverfile()
3730
+ let gymfile: Gymfile = Gymfile()
3731
+ let matchfile: Matchfile = Matchfile()
3732
+ let precheckfile: Precheckfile = Precheckfile()
3733
+ let scanfile: Scanfile = Scanfile()
3734
+ let screengrabfile: Screengrabfile = Screengrabfile()
3735
+ let snapshotfile: Snapshotfile = Snapshotfile()
3736
+
3737
+ // Please don't remove the lines below
3738
+ // They are used to detect outdated files
3739
+ // FastlaneRunnerAPIVersion [0.9.1]