fastlane 2.143.0 → 2.144.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +72 -72
- data/deliver/lib/deliver/options.rb +26 -0
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -1
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
- data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
- data/fastlane/lib/fastlane/actions/swiftlint.rb +28 -7
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +190 -0
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +56 -4
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +5 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
- data/gym/lib/gym/runner.rb +14 -0
- data/match/lib/match/importer.rb +33 -18
- data/scan/lib/scan/options.rb +5 -0
- data/scan/lib/scan/test_command_generator.rb +3 -0
- data/sigh/lib/sigh/.runner.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.bundle_id_capability.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +23 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
- data/supply/lib/supply/client.rb +1 -1
- metadata +24 -21
- data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
@@ -465,13 +465,13 @@ You'll be asked for the new password on all your machines on the next run.
|
|
465
465
|
|
466
466
|
### Import
|
467
467
|
|
468
|
-
To import and encrypt a certificate (`.cer`)
|
468
|
+
To import and encrypt a certificate (`.cer`), the private key (`.p12`) and the provisioning profiles (`.mobileprovision` or `.provisionprofile`) into the _match_ repo run:
|
469
469
|
|
470
470
|
```no-highlight
|
471
471
|
fastlane match import
|
472
472
|
```
|
473
473
|
|
474
|
-
You'll be prompted for the certificate (`.cer`)
|
474
|
+
You'll be prompted for the certificate (`.cer`), the private key (`.p12`) and the provisioning profiles (`.mobileprovision` or `.provisionprofile`) paths. _match_ will first validate the certificate (`.cer`) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified _match_ repository.
|
475
475
|
|
476
476
|
### Manual Decrypt
|
477
477
|
|
@@ -26,6 +26,7 @@ module Fastlane
|
|
26
26
|
command << "--platforms=#{params[:platforms]}" if params[:platforms]
|
27
27
|
command << "--skip-import-validation" if params[:skip_import_validation]
|
28
28
|
command << "--skip-tests" if params[:skip_tests]
|
29
|
+
command << "--analyze" if params[:analyze]
|
29
30
|
|
30
31
|
result = Actions.sh(command.join(' '))
|
31
32
|
UI.success("Pod lib lint Successfully ⬆️ ")
|
@@ -144,7 +145,12 @@ module Fastlane
|
|
144
145
|
description: "Lint skips building and running tests during validation (available since cocoapods >= 1.3)",
|
145
146
|
type: Boolean,
|
146
147
|
default_value: false,
|
147
|
-
env_name: "FL_POD_LIB_LINT_SKIP_TESTS")
|
148
|
+
env_name: "FL_POD_LIB_LINT_SKIP_TESTS"),
|
149
|
+
FastlaneCore::ConfigItem.new(key: :analyze,
|
150
|
+
description: "Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1)",
|
151
|
+
type: Boolean,
|
152
|
+
default_value: false,
|
153
|
+
env_name: "FL_POD_LIB_LINT_ANALYZE")
|
148
154
|
]
|
149
155
|
end
|
150
156
|
|
@@ -13,13 +13,7 @@ module Fastlane
|
|
13
13
|
|
14
14
|
command = (params[:executable] || "swiftlint").dup
|
15
15
|
command << " #{params[:mode]}"
|
16
|
-
command <<
|
17
|
-
command << supported_option_switch(params, :strict, "0.9.2", true)
|
18
|
-
command << " --config #{params[:config_file].shellescape}" if params[:config_file]
|
19
|
-
command << " --reporter #{params[:reporter]}" if params[:reporter]
|
20
|
-
command << supported_option_switch(params, :quiet, "0.9.0", true)
|
21
|
-
command << supported_option_switch(params, :format, "0.11.0", true) if params[:mode] == :autocorrect
|
22
|
-
command << " --compiler-log-path #{params[:compiler_log_path].shellescape}" if params[:compiler_log_path]
|
16
|
+
command << optional_flags(params)
|
23
17
|
|
24
18
|
if params[:files]
|
25
19
|
if version < Gem::Version.new('0.5.1')
|
@@ -41,12 +35,33 @@ module Fastlane
|
|
41
35
|
end
|
42
36
|
end
|
43
37
|
|
38
|
+
def self.optional_flags(params)
|
39
|
+
command = ""
|
40
|
+
command << " --path #{params[:path].shellescape}" if params[:path]
|
41
|
+
command << supported_option_switch(params, :strict, "0.9.2", true)
|
42
|
+
command << " --config #{params[:config_file].shellescape}" if params[:config_file]
|
43
|
+
command << " --reporter #{params[:reporter]}" if params[:reporter]
|
44
|
+
command << supported_option_switch(params, :quiet, "0.9.0", true)
|
45
|
+
command << supported_option_switch(params, :format, "0.11.0", true) if params[:mode] == :autocorrect
|
46
|
+
command << supported_no_cache_option(params) if params[:no_cache]
|
47
|
+
command << " --compiler-log-path #{params[:compiler_log_path].shellescape}" if params[:compiler_log_path]
|
48
|
+
return command
|
49
|
+
end
|
50
|
+
|
44
51
|
# Get current SwiftLint version
|
45
52
|
def self.swiftlint_version(executable: nil)
|
46
53
|
binary = executable || 'swiftlint'
|
47
54
|
Gem::Version.new(`#{binary} version`.chomp)
|
48
55
|
end
|
49
56
|
|
57
|
+
def self.supported_no_cache_option(params)
|
58
|
+
if params[:mode] == :autocorrect || params[:mode] == :lint
|
59
|
+
return " --no-cache"
|
60
|
+
else
|
61
|
+
return ""
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
50
65
|
# Return "--option" switch if option is on and current SwiftLint version is greater or equal than min version.
|
51
66
|
# Return "" otherwise.
|
52
67
|
def self.supported_option_switch(params, option, min_version, can_ignore = false)
|
@@ -139,6 +154,12 @@ module Fastlane
|
|
139
154
|
is_string: false,
|
140
155
|
type: Boolean,
|
141
156
|
optional: true),
|
157
|
+
FastlaneCore::ConfigItem.new(key: :no_cache,
|
158
|
+
description: "Ignore the cache when mode is :autocorrect or :lint",
|
159
|
+
default_value: false,
|
160
|
+
is_string: false,
|
161
|
+
type: Boolean,
|
162
|
+
optional: true),
|
142
163
|
FastlaneCore::ConfigItem.new(key: :compiler_log_path,
|
143
164
|
description: "Compiler log path when mode is :analyze",
|
144
165
|
is_string: true,
|
@@ -0,0 +1,190 @@
|
|
1
|
+
require 'xcodeproj'
|
2
|
+
module Fastlane
|
3
|
+
module Actions
|
4
|
+
class UpdateCodeSigningSettingsAction < Action
|
5
|
+
def self.run(params)
|
6
|
+
FastlaneCore::PrintTable.print_values(config: params, title: "Summary for code signing settings")
|
7
|
+
path = params[:path]
|
8
|
+
path = File.join(File.expand_path(path), "project.pbxproj")
|
9
|
+
|
10
|
+
project = Xcodeproj::Project.open(params[:path])
|
11
|
+
UI.user_error!("Could not find path to project config '#{path}'. Pass the path to your project (not workspace)!") unless File.exist?(path)
|
12
|
+
UI.message("Updating the Automatic Codesigning flag to #{params[:use_automatic_signing] ? 'enabled' : 'disabled'} for the given project '#{path}'")
|
13
|
+
|
14
|
+
unless project.root_object.attributes["TargetAttributes"]
|
15
|
+
UI.user_error!("Seems to be a very old project file format - please open your project file in a more recent version of Xcode")
|
16
|
+
return false
|
17
|
+
end
|
18
|
+
|
19
|
+
target_dictionary = project.targets.map { |f| { name: f.name, uuid: f.uuid, build_configuration_list: f.build_configuration_list } }
|
20
|
+
target_attributes = project.root_object.attributes["TargetAttributes"]
|
21
|
+
changed_targets = []
|
22
|
+
|
23
|
+
# make sure TargetAttributes exist for all targets
|
24
|
+
target_dictionary.each do |props|
|
25
|
+
unless target_attributes.key?(props[:uuid])
|
26
|
+
target_attributes[props[:uuid]] = {}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
target_attributes.each do |target, sett|
|
31
|
+
found_target = target_dictionary.detect { |h| h[:uuid] == target }
|
32
|
+
if params[:targets]
|
33
|
+
# get target name
|
34
|
+
unless params[:targets].include?(found_target[:name])
|
35
|
+
UI.important("Skipping #{found_target[:name]} not selected (#{params[:targets].join(',')})")
|
36
|
+
next
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
style_value = params[:use_automatic_signing] ? 'Automatic' : 'Manual'
|
41
|
+
build_configuration_list = found_target[:build_configuration_list]
|
42
|
+
build_configuration_list.set_setting("CODE_SIGN_STYLE", style_value)
|
43
|
+
sett["ProvisioningStyle"] = style_value
|
44
|
+
|
45
|
+
if params[:team_id]
|
46
|
+
sett["DevelopmentTeam"] = params[:team_id]
|
47
|
+
build_configuration_list.set_setting("DEVELOPMENT_TEAM", params[:team_id])
|
48
|
+
UI.important("Set Team id to: #{params[:team_id]} for target: #{found_target[:name]}")
|
49
|
+
end
|
50
|
+
if params[:code_sign_identity]
|
51
|
+
build_configuration_list.set_setting("CODE_SIGN_IDENTITY", params[:code_sign_identity])
|
52
|
+
|
53
|
+
# We also need to update the value if it was overridden for a specific SDK
|
54
|
+
build_configuration_list.build_configurations.each do |build_configuration|
|
55
|
+
codesign_build_settings_keys = build_configuration.build_settings.keys.select { |key| key.to_s.match(/CODE_SIGN_IDENTITY.*/) }
|
56
|
+
codesign_build_settings_keys.each do |setting|
|
57
|
+
build_configuration_list.set_setting(setting, params[:code_sign_identity])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
UI.important("Set Code Sign identity to: #{params[:code_sign_identity]} for target: #{found_target[:name]}")
|
61
|
+
end
|
62
|
+
if params[:profile_name]
|
63
|
+
build_configuration_list.set_setting("PROVISIONING_PROFILE_SPECIFIER", params[:profile_name])
|
64
|
+
UI.important("Set Provisioning Profile name to: #{params[:profile_name]} for target: #{found_target[:name]}")
|
65
|
+
end
|
66
|
+
# Since Xcode 8, this is no longer needed, you simply use PROVISIONING_PROFILE_SPECIFIER
|
67
|
+
if params[:profile_uuid]
|
68
|
+
build_configuration_list.set_setting("PROVISIONING_PROFILE", params[:profile_uuid])
|
69
|
+
UI.important("Set Provisioning Profile UUID to: #{params[:profile_uuid]} for target: #{found_target[:name]}")
|
70
|
+
end
|
71
|
+
if params[:bundle_identifier]
|
72
|
+
build_configuration_list.set_setting("PRODUCT_BUNDLE_IDENTIFIER", params[:bundle_identifier])
|
73
|
+
UI.important("Set Bundle identifier to: #{params[:bundle_identifier]} for target: #{found_target[:name]}")
|
74
|
+
end
|
75
|
+
|
76
|
+
changed_targets << found_target[:name]
|
77
|
+
end
|
78
|
+
project.save
|
79
|
+
|
80
|
+
if changed_targets.empty?
|
81
|
+
UI.important("None of the specified targets has been modified")
|
82
|
+
UI.important("available targets:")
|
83
|
+
target_dictionary.each do |target|
|
84
|
+
UI.important("\t* #{target[:name]}")
|
85
|
+
end
|
86
|
+
else
|
87
|
+
UI.success("Successfully updated project settings to use Code Sign Style = '#{params[:use_automatic_signing] ? 'Automatic' : 'Manual'}'")
|
88
|
+
UI.success("Modified Targets:")
|
89
|
+
changed_targets.each do |target|
|
90
|
+
UI.success("\t * #{target}")
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
params[:use_automatic_signing]
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.description
|
98
|
+
"Configures Xcode's Codesigning options"
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.details
|
102
|
+
"Configures Xcode's Codesigning options of all targets in the project"
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.available_options
|
106
|
+
[
|
107
|
+
FastlaneCore::ConfigItem.new(key: :path,
|
108
|
+
env_name: "FL_PROJECT_SIGNING_PROJECT_PATH",
|
109
|
+
description: "Path to your Xcode project",
|
110
|
+
code_gen_sensitive: true,
|
111
|
+
default_value: Dir['*.xcodeproj'].first,
|
112
|
+
default_value_dynamic: true,
|
113
|
+
verify_block: proc do |value|
|
114
|
+
UI.user_error!("Path is invalid") unless File.exist?(File.expand_path(value))
|
115
|
+
end),
|
116
|
+
FastlaneCore::ConfigItem.new(key: :use_automatic_signing,
|
117
|
+
env_name: "FL_PROJECT_USE_AUTOMATIC_SIGNING",
|
118
|
+
description: "Defines if project should use automatic signing",
|
119
|
+
is_string: false,
|
120
|
+
default_value: false),
|
121
|
+
FastlaneCore::ConfigItem.new(key: :team_id,
|
122
|
+
env_name: "FASTLANE_TEAM_ID",
|
123
|
+
optional: true,
|
124
|
+
description: "Team ID, is used when upgrading project",
|
125
|
+
is_string: true),
|
126
|
+
FastlaneCore::ConfigItem.new(key: :targets,
|
127
|
+
env_name: "FL_PROJECT_SIGNING_TARGETS",
|
128
|
+
optional: true,
|
129
|
+
type: Array,
|
130
|
+
description: "Specify targets you want to toggle the signing mech. (default to all targets)",
|
131
|
+
is_string: false),
|
132
|
+
FastlaneCore::ConfigItem.new(key: :code_sign_identity,
|
133
|
+
env_name: "FL_CODE_SIGN_IDENTITY",
|
134
|
+
description: "Code signing identity type (iPhone Developer, iPhone Distribution)",
|
135
|
+
optional: true,
|
136
|
+
is_string: true),
|
137
|
+
FastlaneCore::ConfigItem.new(key: :profile_name,
|
138
|
+
env_name: "FL_PROVISIONING_PROFILE_SPECIFIER",
|
139
|
+
description: "Provisioning profile name to use for code signing",
|
140
|
+
optional: true,
|
141
|
+
is_string: true),
|
142
|
+
FastlaneCore::ConfigItem.new(key: :profile_uuid,
|
143
|
+
env_name: "FL_PROVISIONING_PROFILE",
|
144
|
+
description: "Provisioning profile UUID to use for code signing",
|
145
|
+
optional: true,
|
146
|
+
is_string: true),
|
147
|
+
FastlaneCore::ConfigItem.new(key: :bundle_identifier,
|
148
|
+
env_name: "FL_APP_IDENTIFIER",
|
149
|
+
description: "Application Product Bundle Identifier",
|
150
|
+
optional: true,
|
151
|
+
is_string: true)
|
152
|
+
]
|
153
|
+
end
|
154
|
+
|
155
|
+
def self.output
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.example_code
|
159
|
+
[
|
160
|
+
' # manual code signing
|
161
|
+
update_code_signing_settings(
|
162
|
+
use_automatic_signing: false,
|
163
|
+
path: "demo-project/demo/demo.xcodeproj"
|
164
|
+
)',
|
165
|
+
' # automatic code signing
|
166
|
+
update_code_signing_settings(
|
167
|
+
use_automatic_signing: true,
|
168
|
+
path: "demo-project/demo/demo.xcodeproj"
|
169
|
+
)'
|
170
|
+
]
|
171
|
+
end
|
172
|
+
|
173
|
+
def self.category
|
174
|
+
:code_signing
|
175
|
+
end
|
176
|
+
|
177
|
+
def self.return_value
|
178
|
+
"The current status (boolean) of codesigning after modification"
|
179
|
+
end
|
180
|
+
|
181
|
+
def self.authors
|
182
|
+
["mathiasAichinger", "hjanuschka", "p4checo", "portellaa", "aeons", "att55"]
|
183
|
+
end
|
184
|
+
|
185
|
+
def self.is_supported?(platform)
|
186
|
+
[:ios, :mac].include?(platform)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
@@ -2122,7 +2122,7 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2122
2122
|
}
|
2123
2123
|
|
2124
2124
|
/**
|
2125
|
-
|
2125
|
+
Refer to [Firebase App Distribution](https://appdistro.page.link/fastlane-repo)
|
2126
2126
|
|
2127
2127
|
- parameters:
|
2128
2128
|
- ipaPath: Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action
|
@@ -2137,6 +2137,10 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2137
2137
|
- notifications: Crashlytics notification option (true/false)
|
2138
2138
|
- debug: Crashlytics debug option (true/false)
|
2139
2139
|
|
2140
|
+
Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.
|
2141
|
+
Beta will continue working until May 4, 2020.
|
2142
|
+
Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.
|
2143
|
+
|
2140
2144
|
Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
|
2141
2145
|
Distributing to Groups: When using the `groups` parameter, it's important to use the group **alias** names for each group you'd like to distribute to. A group's alias can be found in the web UI. If you're viewing the Beta page, you can open the groups dialog by clicking the 'Manage Groups' button.
|
2142
2146
|
This action uses the `submit` binary provided by the Crashlytics framework. If the binary is not found in its usual path, you'll need to specify the path manually by using the `crashlytics_path` option.
|
@@ -5071,6 +5075,7 @@ func pluginScores(outputPath: String,
|
|
5071
5075
|
- platforms: Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6)
|
5072
5076
|
- skipImportValidation: Lint skips validating that the pod can be imported (available since cocoapods >= 1.3)
|
5073
5077
|
- skipTests: Lint skips building and running tests during validation (available since cocoapods >= 1.3)
|
5078
|
+
- analyze: Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1)
|
5074
5079
|
|
5075
5080
|
Test the syntax of your Podfile by linting the pod against the files of its directory
|
5076
5081
|
*/
|
@@ -5092,7 +5097,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5092
5097
|
noSubspecs: Bool = false,
|
5093
5098
|
platforms: String? = nil,
|
5094
5099
|
skipImportValidation: Bool = false,
|
5095
|
-
skipTests: Bool = false
|
5100
|
+
skipTests: Bool = false,
|
5101
|
+
analyze: Bool = false) {
|
5096
5102
|
let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
5097
5103
|
RubyCommand.Argument(name: "podspec", value: podspec),
|
5098
5104
|
RubyCommand.Argument(name: "verbose", value: verbose),
|
@@ -5111,7 +5117,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5111
5117
|
RubyCommand.Argument(name: "no_subspecs", value: noSubspecs),
|
5112
5118
|
RubyCommand.Argument(name: "platforms", value: platforms),
|
5113
5119
|
RubyCommand.Argument(name: "skip_import_validation", value: skipImportValidation),
|
5114
|
-
RubyCommand.Argument(name: "skip_tests", value: skipTests)
|
5120
|
+
RubyCommand.Argument(name: "skip_tests", value: skipTests),
|
5121
|
+
RubyCommand.Argument(name: "analyze", value: analyze)])
|
5115
5122
|
_ = runner.executeCommand(command)
|
5116
5123
|
}
|
5117
5124
|
|
@@ -5640,6 +5647,7 @@ func rubyVersion() {
|
|
5640
5647
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5641
5648
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5642
5649
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5650
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5643
5651
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5644
5652
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5645
5653
|
- clean: Should the project be cleaned before building it?
|
@@ -5702,6 +5710,7 @@ func runTests(workspace: String? = nil,
|
|
5702
5710
|
appIdentifier: String? = nil,
|
5703
5711
|
onlyTesting: Any? = nil,
|
5704
5712
|
skipTesting: Any? = nil,
|
5713
|
+
testplan: String? = nil,
|
5705
5714
|
xctestrun: String? = nil,
|
5706
5715
|
toolchain: Any? = nil,
|
5707
5716
|
clean: Bool = false,
|
@@ -5761,6 +5770,7 @@ func runTests(workspace: String? = nil,
|
|
5761
5770
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5762
5771
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5763
5772
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
5773
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5764
5774
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5765
5775
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5766
5776
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5901,6 +5911,7 @@ func say(text: Any,
|
|
5901
5911
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5902
5912
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5903
5913
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5914
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5904
5915
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5905
5916
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5906
5917
|
- clean: Should the project be cleaned before building it?
|
@@ -5963,6 +5974,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5963
5974
|
appIdentifier: Any? = scanfile.appIdentifier,
|
5964
5975
|
onlyTesting: Any? = scanfile.onlyTesting,
|
5965
5976
|
skipTesting: Any? = scanfile.skipTesting,
|
5977
|
+
testplan: Any? = scanfile.testplan,
|
5966
5978
|
xctestrun: Any? = scanfile.xctestrun,
|
5967
5979
|
toolchain: Any? = scanfile.toolchain,
|
5968
5980
|
clean: Bool = scanfile.clean,
|
@@ -6022,6 +6034,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
6022
6034
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
6023
6035
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
6024
6036
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6037
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
6025
6038
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
6026
6039
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
6027
6040
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -7123,6 +7136,7 @@ func supply(packageName: String,
|
|
7123
7136
|
- quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
|
7124
7137
|
- executable: Path to the `swiftlint` executable on your machine
|
7125
7138
|
- format: Format code when mode is :autocorrect
|
7139
|
+
- noCache: Ignore the cache when mode is :autocorrect or :lint
|
7126
7140
|
- compilerLogPath: Compiler log path when mode is :analyze
|
7127
7141
|
*/
|
7128
7142
|
func swiftlint(mode: Any = "lint",
|
@@ -7137,6 +7151,7 @@ func swiftlint(mode: Any = "lint",
|
|
7137
7151
|
quiet: Bool = false,
|
7138
7152
|
executable: String? = nil,
|
7139
7153
|
format: Bool = false,
|
7154
|
+
noCache: Bool = false,
|
7140
7155
|
compilerLogPath: String? = nil) {
|
7141
7156
|
let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
|
7142
7157
|
RubyCommand.Argument(name: "path", value: path),
|
@@ -7150,6 +7165,7 @@ func swiftlint(mode: Any = "lint",
|
|
7150
7165
|
RubyCommand.Argument(name: "quiet", value: quiet),
|
7151
7166
|
RubyCommand.Argument(name: "executable", value: executable),
|
7152
7167
|
RubyCommand.Argument(name: "format", value: format),
|
7168
|
+
RubyCommand.Argument(name: "no_cache", value: noCache),
|
7153
7169
|
RubyCommand.Argument(name: "compiler_log_path", value: compilerLogPath)])
|
7154
7170
|
_ = runner.executeCommand(command)
|
7155
7171
|
}
|
@@ -7557,6 +7573,42 @@ func updateAppIdentifier(xcodeproj: String,
|
|
7557
7573
|
_ = runner.executeCommand(command)
|
7558
7574
|
}
|
7559
7575
|
|
7576
|
+
/**
|
7577
|
+
Configures Xcode's Codesigning options
|
7578
|
+
|
7579
|
+
- parameters:
|
7580
|
+
- path: Path to your Xcode project
|
7581
|
+
- useAutomaticSigning: Defines if project should use automatic signing
|
7582
|
+
- teamId: Team ID, is used when upgrading project
|
7583
|
+
- targets: Specify targets you want to toggle the signing mech. (default to all targets)
|
7584
|
+
- codeSignIdentity: Code signing identity type (iPhone Developer, iPhone Distribution)
|
7585
|
+
- profileName: Provisioning profile name to use for code signing
|
7586
|
+
- profileUuid: Provisioning profile UUID to use for code signing
|
7587
|
+
- bundleIdentifier: Application Product Bundle Identifier
|
7588
|
+
|
7589
|
+
- returns: The current status (boolean) of codesigning after modification
|
7590
|
+
|
7591
|
+
Configures Xcode's Codesigning options of all targets in the project
|
7592
|
+
*/
|
7593
|
+
func updateCodeSigningSettings(path: String,
|
7594
|
+
useAutomaticSigning: Bool = false,
|
7595
|
+
teamId: String? = nil,
|
7596
|
+
targets: [String]? = nil,
|
7597
|
+
codeSignIdentity: String? = nil,
|
7598
|
+
profileName: String? = nil,
|
7599
|
+
profileUuid: String? = nil,
|
7600
|
+
bundleIdentifier: String? = nil) {
|
7601
|
+
let command = RubyCommand(commandID: "", methodName: "update_code_signing_settings", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
|
7602
|
+
RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
|
7603
|
+
RubyCommand.Argument(name: "team_id", value: teamId),
|
7604
|
+
RubyCommand.Argument(name: "targets", value: targets),
|
7605
|
+
RubyCommand.Argument(name: "code_sign_identity", value: codeSignIdentity),
|
7606
|
+
RubyCommand.Argument(name: "profile_name", value: profileName),
|
7607
|
+
RubyCommand.Argument(name: "profile_uuid", value: profileUuid),
|
7608
|
+
RubyCommand.Argument(name: "bundle_identifier", value: bundleIdentifier)])
|
7609
|
+
_ = runner.executeCommand(command)
|
7610
|
+
}
|
7611
|
+
|
7560
7612
|
/**
|
7561
7613
|
Makes sure fastlane-tools are up-to-date when running fastlane
|
7562
7614
|
|
@@ -8735,4 +8787,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8735
8787
|
|
8736
8788
|
// Please don't remove the lines below
|
8737
8789
|
// They are used to detect outdated files
|
8738
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8790
|
+
// FastlaneRunnerAPIVersion [0.9.72]
|