fastlane 2.143.0 → 2.144.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -72
  3. data/deliver/lib/deliver/options.rb +26 -0
  4. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -1
  5. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
  6. data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
  7. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
  8. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
  9. data/fastlane/lib/fastlane/actions/swiftlint.rb +28 -7
  10. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +190 -0
  11. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +1 -1
  12. data/fastlane/lib/fastlane/version.rb +1 -1
  13. data/fastlane/swift/Deliverfile.swift +1 -1
  14. data/fastlane/swift/Fastlane.swift +56 -4
  15. data/fastlane/swift/Gymfile.swift +1 -1
  16. data/fastlane/swift/Matchfile.swift +1 -1
  17. data/fastlane/swift/Precheckfile.swift +1 -1
  18. data/fastlane/swift/Scanfile.swift +1 -1
  19. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  20. data/fastlane/swift/Screengrabfile.swift +1 -1
  21. data/fastlane/swift/Snapshotfile.swift +1 -1
  22. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  23. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
  24. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  25. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
  26. data/gym/lib/gym/runner.rb +14 -0
  27. data/match/lib/match/importer.rb +33 -18
  28. data/scan/lib/scan/options.rb +5 -0
  29. data/scan/lib/scan/test_command_generator.rb +3 -0
  30. data/sigh/lib/sigh/.runner.rb.swp +0 -0
  31. data/spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp +0 -0
  32. data/spaceship/lib/spaceship/connect_api/models/.bundle_id_capability.rb.swp +0 -0
  33. data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
  34. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +23 -0
  35. data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
  36. data/supply/lib/supply/client.rb +1 -1
  37. metadata +24 -21
  38. 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`) and the private key (`.p12`) into the _match_ repo run:
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`) and the private key (`.p12`) paths. _match_ will first validate the certificate (`.cer`) against the Developer Portal before importing the certificate (`.cer`) and the private key (`.p12`).
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 << " --path #{params[:path].shellescape}" if params[:path]
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
@@ -1,4 +1,4 @@
1
- require 'aws-sdk'
1
+ require 'aws-sdk-s3'
2
2
 
3
3
  module Fastlane
4
4
  module Helper
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.143.0'.freeze
2
+ VERSION = '2.144.0'.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
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.143.0
21
+ // Generated with fastlane 2.144.0
@@ -2122,7 +2122,7 @@ func copyArtifacts(keepOriginal: Bool = true,
2122
2122
  }
2123
2123
 
2124
2124
  /**
2125
- Upload a new build to [Crashlytics Beta](http://try.crashlytics.com/beta/)
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.71]
8790
+ // FastlaneRunnerAPIVersion [0.9.72]