fastlane 2.143.0 → 2.147.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 +82 -82
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
- data/deliver/lib/deliver/app_screenshot.rb +1 -0
- data/deliver/lib/deliver/options.rb +30 -1
- data/deliver/lib/deliver/setup.rb +4 -4
- data/fastlane/lib/assets/custom_action_template.rb +6 -6
- 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/cocoapods.rb +1 -1
- data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +7 -1
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +13 -5
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +3 -3
- data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -3
- data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +11 -2
- data/fastlane/lib/fastlane/actions/slather.rb +1 -1
- data/fastlane/lib/fastlane/actions/swiftlint.rb +28 -7
- data/fastlane/lib/fastlane/actions/testfairy.rb +18 -3
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +203 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -1
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/actions/verify_xcode.rb +7 -0
- data/fastlane/lib/fastlane/commands_generator.rb +4 -1
- data/fastlane/lib/fastlane/helper/lane_helper.rb +13 -0
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +14 -9
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +138 -23
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +6 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +10 -2
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +9 -0
- data/fastlane_core/lib/fastlane_core/device_manager.rb +3 -3
- data/fastlane_core/lib/fastlane_core/helper.rb +17 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +46 -2
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
- data/frameit/lib/frameit/device_types.rb +10 -0
- data/frameit/lib/frameit/editor.rb +1 -1
- data/frameit/lib/frameit/options.rb +5 -2
- data/frameit/lib/frameit/runner.rb +5 -0
- data/frameit/lib/frameit/screenshot.rb +5 -0
- 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/change_password.rb +1 -18
- data/match/lib/match/encryption/openssl.rb +1 -1
- data/match/lib/match/generator.rb +5 -1
- data/match/lib/match/importer.rb +35 -18
- data/match/lib/match/options.rb +6 -1
- data/match/lib/match/storage/s3_storage.rb +10 -5
- data/match/lib/match/utils.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +15 -4
- data/pilot/lib/pilot/options.rb +8 -0
- data/produce/lib/produce/developer_center.rb +11 -2
- data/produce/lib/produce/itunes_connect.rb +11 -3
- data/produce/lib/produce/options.rb +12 -0
- data/scan/lib/scan/options.rb +11 -1
- data/scan/lib/scan/runner.rb +2 -0
- data/scan/lib/scan/test_command_generator.rb +4 -1
- data/screengrab/lib/screengrab/runner.rb +1 -1
- data/snapshot/lib/assets/SnapfileTemplate +3 -0
- data/snapshot/lib/snapshot/options.rb +10 -0
- data/snapshot/lib/snapshot/reports_generator.rb +4 -0
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +4 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +21 -0
- data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -0
- data/spaceship/lib/spaceship/base.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/model.rb +6 -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/portal/app_service.rb +2 -2
- data/spaceship/lib/spaceship/portal/portal_client.rb +13 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
- data/spaceship/lib/spaceship/tunes/application.rb +2 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +15 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +16 -2
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +52 -16
- data/supply/lib/supply/.client.rb.swp +0 -0
- data/supply/lib/supply/client.rb +4 -4
- data/supply/lib/supply/setup.rb +5 -3
- metadata +40 -32
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/pilot/lib/pilot/.manager.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
@@ -0,0 +1,203 @@
|
|
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
|
+
changed_targets = []
|
20
|
+
changed_build_configurations = []
|
21
|
+
|
22
|
+
project.targets.each do |target|
|
23
|
+
if params[:targets]
|
24
|
+
unless params[:targets].include?(target.name)
|
25
|
+
UI.important("Skipping #{target.name} not selected (#{params[:targets].join(',')})")
|
26
|
+
next
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
target.build_configurations.each do |config|
|
31
|
+
if params[:build_configurations]
|
32
|
+
unless params[:build_configurations].include?(config.name)
|
33
|
+
UI.important("Skipping #{config.name} not selected (#{params[:build_configurations].join(',')})")
|
34
|
+
next
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
style_value = params[:use_automatic_signing] ? 'Automatic' : 'Manual'
|
39
|
+
set_build_setting(config, "CODE_SIGN_STYLE", style_value)
|
40
|
+
|
41
|
+
if params[:team_id]
|
42
|
+
set_build_setting(config, "DEVELOPMENT_TEAM", params[:team_id])
|
43
|
+
UI.important("Set Team id to: #{params[:team_id]} for target: #{target.name} for build configuration: #{config.name}")
|
44
|
+
end
|
45
|
+
if params[:code_sign_identity]
|
46
|
+
set_build_setting(config, "CODE_SIGN_IDENTITY", params[:code_sign_identity])
|
47
|
+
UI.important("Set Code Sign identity to: #{params[:code_sign_identity]} for target: #{target.name} for build configuration: #{config.name}")
|
48
|
+
end
|
49
|
+
if params[:profile_name]
|
50
|
+
set_build_setting(config, "PROVISIONING_PROFILE_SPECIFIER", params[:profile_name])
|
51
|
+
UI.important("Set Provisioning Profile name to: #{params[:profile_name]} for target: #{target.name} for build configuration: #{config.name}")
|
52
|
+
end
|
53
|
+
# Since Xcode 8, this is no longer needed, you simply use PROVISIONING_PROFILE_SPECIFIER
|
54
|
+
if params[:profile_uuid]
|
55
|
+
set_build_setting(config, "PROVISIONING_PROFILE", params[:profile_uuid])
|
56
|
+
UI.important("Set Provisioning Profile UUID to: #{params[:profile_uuid]} for target: #{target.name} for build configuration: #{config.name}")
|
57
|
+
end
|
58
|
+
if params[:bundle_identifier]
|
59
|
+
set_build_setting(config, "PRODUCT_BUNDLE_IDENTIFIER", params[:bundle_identifier])
|
60
|
+
UI.important("Set Bundle identifier to: #{params[:bundle_identifier]} for target: #{target.name} for build configuration: #{config.name}")
|
61
|
+
end
|
62
|
+
|
63
|
+
changed_build_configurations << config.name
|
64
|
+
end
|
65
|
+
|
66
|
+
changed_targets << target.name
|
67
|
+
end
|
68
|
+
project.save
|
69
|
+
|
70
|
+
if changed_targets.empty?
|
71
|
+
UI.important("None of the specified targets has been modified")
|
72
|
+
UI.important("available targets:")
|
73
|
+
project.targets.each do |target|
|
74
|
+
UI.important("\t* #{target.name}")
|
75
|
+
end
|
76
|
+
else
|
77
|
+
UI.success("Successfully updated project settings to use Code Sign Style = '#{params[:use_automatic_signing] ? 'Automatic' : 'Manual'}'")
|
78
|
+
UI.success("Modified Targets:")
|
79
|
+
changed_targets.each do |target|
|
80
|
+
UI.success("\t * #{target}")
|
81
|
+
end
|
82
|
+
|
83
|
+
UI.success("Modified Build Configurations:")
|
84
|
+
changed_build_configurations.each do |name|
|
85
|
+
UI.success("\t * #{name}")
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
params[:use_automatic_signing]
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.set_build_setting(configuration, name, value)
|
93
|
+
# Iterate over any keys that start with this name
|
94
|
+
# This will also set keys that have filtering like [sdk=iphoneos*]
|
95
|
+
keys = configuration.build_settings.keys.select { |key| key.to_s.match(/#{name}.*/) }
|
96
|
+
keys.each do |key|
|
97
|
+
configuration.build_settings[key] = value
|
98
|
+
end
|
99
|
+
|
100
|
+
# Explicitly set the key with value if keys don't exist
|
101
|
+
configuration.build_settings[name] = value
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.description
|
105
|
+
"Configures Xcode's Codesigning options"
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.details
|
109
|
+
"Configures Xcode's Codesigning options of all targets in the project"
|
110
|
+
end
|
111
|
+
|
112
|
+
def self.available_options
|
113
|
+
[
|
114
|
+
FastlaneCore::ConfigItem.new(key: :path,
|
115
|
+
env_name: "FL_PROJECT_SIGNING_PROJECT_PATH",
|
116
|
+
description: "Path to your Xcode project",
|
117
|
+
code_gen_sensitive: true,
|
118
|
+
default_value: Dir['*.xcodeproj'].first,
|
119
|
+
default_value_dynamic: true,
|
120
|
+
verify_block: proc do |value|
|
121
|
+
UI.user_error!("Path is invalid") unless File.exist?(File.expand_path(value))
|
122
|
+
end),
|
123
|
+
FastlaneCore::ConfigItem.new(key: :use_automatic_signing,
|
124
|
+
env_name: "FL_PROJECT_USE_AUTOMATIC_SIGNING",
|
125
|
+
description: "Defines if project should use automatic signing",
|
126
|
+
is_string: false,
|
127
|
+
default_value: false),
|
128
|
+
FastlaneCore::ConfigItem.new(key: :team_id,
|
129
|
+
env_name: "FASTLANE_TEAM_ID",
|
130
|
+
optional: true,
|
131
|
+
description: "Team ID, is used when upgrading project",
|
132
|
+
is_string: true),
|
133
|
+
FastlaneCore::ConfigItem.new(key: :targets,
|
134
|
+
env_name: "FL_PROJECT_SIGNING_TARGETS",
|
135
|
+
optional: true,
|
136
|
+
type: Array,
|
137
|
+
description: "Specify targets you want to toggle the signing mech. (default to all targets)",
|
138
|
+
is_string: false),
|
139
|
+
FastlaneCore::ConfigItem.new(key: :build_configurations,
|
140
|
+
env_name: "FL_PROJECT_SIGNING_BUILD_CONFIGURATIONS",
|
141
|
+
optional: true,
|
142
|
+
type: Array,
|
143
|
+
description: "Specify build_configurations you want to toggle the signing mech. (default to all targets)",
|
144
|
+
is_string: false),
|
145
|
+
FastlaneCore::ConfigItem.new(key: :code_sign_identity,
|
146
|
+
env_name: "FL_CODE_SIGN_IDENTITY",
|
147
|
+
description: "Code signing identity type (iPhone Developer, iPhone Distribution)",
|
148
|
+
optional: true,
|
149
|
+
is_string: true),
|
150
|
+
FastlaneCore::ConfigItem.new(key: :profile_name,
|
151
|
+
env_name: "FL_PROVISIONING_PROFILE_SPECIFIER",
|
152
|
+
description: "Provisioning profile name to use for code signing",
|
153
|
+
optional: true,
|
154
|
+
is_string: true),
|
155
|
+
FastlaneCore::ConfigItem.new(key: :profile_uuid,
|
156
|
+
env_name: "FL_PROVISIONING_PROFILE",
|
157
|
+
description: "Provisioning profile UUID to use for code signing",
|
158
|
+
optional: true,
|
159
|
+
is_string: true),
|
160
|
+
FastlaneCore::ConfigItem.new(key: :bundle_identifier,
|
161
|
+
env_name: "FL_APP_IDENTIFIER",
|
162
|
+
description: "Application Product Bundle Identifier",
|
163
|
+
optional: true,
|
164
|
+
is_string: true)
|
165
|
+
]
|
166
|
+
end
|
167
|
+
|
168
|
+
def self.output
|
169
|
+
end
|
170
|
+
|
171
|
+
def self.example_code
|
172
|
+
[
|
173
|
+
' # manual code signing
|
174
|
+
update_code_signing_settings(
|
175
|
+
use_automatic_signing: false,
|
176
|
+
path: "demo-project/demo/demo.xcodeproj"
|
177
|
+
)',
|
178
|
+
' # automatic code signing
|
179
|
+
update_code_signing_settings(
|
180
|
+
use_automatic_signing: true,
|
181
|
+
path: "demo-project/demo/demo.xcodeproj"
|
182
|
+
)'
|
183
|
+
]
|
184
|
+
end
|
185
|
+
|
186
|
+
def self.category
|
187
|
+
:code_signing
|
188
|
+
end
|
189
|
+
|
190
|
+
def self.return_value
|
191
|
+
"The current status (boolean) of codesigning after modification"
|
192
|
+
end
|
193
|
+
|
194
|
+
def self.authors
|
195
|
+
["mathiasAichinger", "hjanuschka", "p4checo", "portellaa", "aeons", "att55"]
|
196
|
+
end
|
197
|
+
|
198
|
+
def self.is_supported?(platform)
|
199
|
+
[:ios, :mac].include?(platform)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
@@ -130,7 +130,7 @@ module Fastlane
|
|
130
130
|
end
|
131
131
|
|
132
132
|
def self.find_binary_path(params)
|
133
|
-
params[:binary_path] ||= (Dir["/Applications/Fabric.app/**/upload-symbols"] + Dir["./Pods
|
133
|
+
params[:binary_path] ||= (Dir["/Applications/Fabric.app/**/upload-symbols"] + Dir["./Pods/Fabric/upload-symbols"] + Dir["./Pods/FirebaseCrashlytics/upload-symbols"]).last
|
134
134
|
UI.user_error!("Failed to find Fabric's upload_symbols binary at /Applications/Fabric.app/**/upload-symbols or ./Pods/**/upload-symbols. Please specify the location of the binary explicitly by using the binary_path option") unless params[:binary_path]
|
135
135
|
|
136
136
|
params[:binary_path] = File.expand_path(params[:binary_path])
|
@@ -46,7 +46,7 @@ module Fastlane
|
|
46
46
|
|
47
47
|
parts = cert_info.strip.split(/\r?\n/)
|
48
48
|
parts.each do |part|
|
49
|
-
if part =~ /\AAuthority=
|
49
|
+
if part =~ /\AAuthority=(iPhone|iOS|Apple)\s(Distribution|Development)/
|
50
50
|
type = part.split('=')[1].split(':')[0]
|
51
51
|
values['provisioning_type'] = type.downcase =~ /distribution/i ? "distribution" : "development"
|
52
52
|
end
|
@@ -33,6 +33,13 @@ module Fastlane
|
|
33
33
|
"Authority=Apple Root CA",
|
34
34
|
"TeamIdentifier=59GAB85EFG"
|
35
35
|
],
|
36
|
+
[ # Found on App Store installed Xcode installations post-Xcode 11.3
|
37
|
+
"Identifier=com.apple.dt.Xcode",
|
38
|
+
"Authority=Apple Mac OS Application Signing",
|
39
|
+
"Authority=Apple Worldwide Developer Relations Certification Authority",
|
40
|
+
"Authority=Apple Root CA",
|
41
|
+
"TeamIdentifier=APPLECOMPUTER"
|
42
|
+
],
|
36
43
|
[ # Found on Xcode installations (pre-Xcode 8) downloaded from developer.apple.com
|
37
44
|
"Identifier=com.apple.dt.Xcode",
|
38
45
|
"Authority=Software Signing",
|
@@ -141,10 +141,12 @@ module Fastlane
|
|
141
141
|
c.description = 'Starts local socket server and enables only a single local connection'
|
142
142
|
c.option('-s', '--stay_alive', 'Keeps socket server up even after error or disconnects, requires CTRL-C to kill.')
|
143
143
|
c.option('-c seconds', '--connection_timeout', 'Sets connection established timeout')
|
144
|
+
c.option('-p port', '--port', "Sets the port on localhost for the socket connection")
|
144
145
|
c.action do |args, options|
|
145
146
|
default_connection_timeout = 5
|
146
147
|
stay_alive = options.stay_alive || false
|
147
148
|
connection_timeout = options.connection_timeout || default_connection_timeout
|
149
|
+
port = options.port || 2000
|
148
150
|
|
149
151
|
if stay_alive && options.connection_timeout.nil?
|
150
152
|
UI.important("stay_alive is set, but the connection timeout is not, this will give you #{default_connection_timeout} seconds to (re)connect")
|
@@ -157,7 +159,8 @@ module Fastlane
|
|
157
159
|
server = Fastlane::SocketServer.new(
|
158
160
|
command_executor: command_executor,
|
159
161
|
connection_timeout: connection_timeout,
|
160
|
-
stay_alive: stay_alive
|
162
|
+
stay_alive: stay_alive,
|
163
|
+
port: port
|
161
164
|
)
|
162
165
|
result = server.start
|
163
166
|
UI.success("Result: #{result}") if result
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Helper
|
3
|
+
class LaneHelper
|
4
|
+
def self.current_platform
|
5
|
+
return Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::PLATFORM_NAME]
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.current_lane
|
9
|
+
return Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::LANE_NAME]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'aws-sdk'
|
1
|
+
require 'aws-sdk-s3'
|
2
2
|
|
3
3
|
module Fastlane
|
4
4
|
module Helper
|
@@ -7,16 +7,14 @@ module Fastlane
|
|
7
7
|
|
8
8
|
def initialize(access_key: nil, secret_access_key: nil, region: nil)
|
9
9
|
creds = Aws::Credentials.new(access_key, secret_access_key)
|
10
|
-
Aws.config.update(
|
10
|
+
Aws.config.update(
|
11
11
|
region: region,
|
12
12
|
credentials: creds
|
13
|
-
|
14
|
-
|
15
|
-
@client = Aws::S3::Client.new
|
13
|
+
)
|
16
14
|
end
|
17
15
|
|
18
16
|
def list_buckets
|
19
|
-
return
|
17
|
+
return client.list_buckets
|
20
18
|
end
|
21
19
|
|
22
20
|
def upload_file(bucket_name, file_name, file_data, acl)
|
@@ -40,17 +38,24 @@ module Fastlane
|
|
40
38
|
obj.public_url.to_s
|
41
39
|
end
|
42
40
|
|
43
|
-
def delete_file(
|
41
|
+
def delete_file(bucket_name, file_name)
|
44
42
|
bucket = find_bucket!(bucket_name)
|
45
|
-
bucket.
|
43
|
+
file = bucket.object(file_name)
|
44
|
+
file.delete
|
46
45
|
end
|
47
46
|
|
48
47
|
def find_bucket!(bucket_name)
|
49
|
-
bucket = Aws::S3::Bucket.new(bucket_name, client:
|
48
|
+
bucket = Aws::S3::Bucket.new(bucket_name, client: client)
|
50
49
|
raise "Bucket '#{bucket_name}' not found" unless bucket.exists?
|
51
50
|
|
52
51
|
return bucket
|
53
52
|
end
|
54
53
|
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def client
|
58
|
+
@client ||= Aws::S3::Client.new
|
59
|
+
end
|
55
60
|
end
|
56
61
|
end
|
@@ -1442,6 +1442,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1442
1442
|
- clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
|
1443
1443
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
1444
1444
|
- eraseSimulator: Enabling this option will automatically erase the simulator before running the application
|
1445
|
+
- overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
|
1445
1446
|
- localizeSimulator: Enabling this option will configure the Simulator's system language
|
1446
1447
|
- darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
|
1447
1448
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
@@ -1463,6 +1464,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1463
1464
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1464
1465
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1465
1466
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1467
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
1466
1468
|
*/
|
1467
1469
|
func captureIosScreenshots(workspace: String? = nil,
|
1468
1470
|
project: String? = nil,
|
@@ -1479,6 +1481,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1479
1481
|
clearPreviousScreenshots: Bool = false,
|
1480
1482
|
reinstallApp: Bool = false,
|
1481
1483
|
eraseSimulator: Bool = false,
|
1484
|
+
overrideStatusBar: Bool = false,
|
1482
1485
|
localizeSimulator: Bool = false,
|
1483
1486
|
darkMode: Bool? = nil,
|
1484
1487
|
appIdentifier: String? = nil,
|
@@ -1499,7 +1502,8 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1499
1502
|
namespaceLogFiles: Any? = nil,
|
1500
1503
|
concurrentSimulators: Bool = true,
|
1501
1504
|
disableSlideToType: Bool = false,
|
1502
|
-
clonedSourcePackagesPath: String? = nil
|
1505
|
+
clonedSourcePackagesPath: String? = nil,
|
1506
|
+
testplan: String? = nil) {
|
1503
1507
|
let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1504
1508
|
RubyCommand.Argument(name: "project", value: project),
|
1505
1509
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1515,6 +1519,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1515
1519
|
RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
|
1516
1520
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
1517
1521
|
RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
|
1522
|
+
RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
|
1518
1523
|
RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
|
1519
1524
|
RubyCommand.Argument(name: "dark_mode", value: darkMode),
|
1520
1525
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
@@ -1535,7 +1540,8 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1535
1540
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1536
1541
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1537
1542
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1538
|
-
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)
|
1543
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
1544
|
+
RubyCommand.Argument(name: "testplan", value: testplan)])
|
1539
1545
|
_ = runner.executeCommand(command)
|
1540
1546
|
}
|
1541
1547
|
|
@@ -1558,6 +1564,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1558
1564
|
- clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
|
1559
1565
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
1560
1566
|
- eraseSimulator: Enabling this option will automatically erase the simulator before running the application
|
1567
|
+
- overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
|
1561
1568
|
- localizeSimulator: Enabling this option will configure the Simulator's system language
|
1562
1569
|
- darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
|
1563
1570
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
@@ -1579,6 +1586,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1579
1586
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1580
1587
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1581
1588
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1589
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
1582
1590
|
*/
|
1583
1591
|
func captureScreenshots(workspace: String? = nil,
|
1584
1592
|
project: String? = nil,
|
@@ -1595,6 +1603,7 @@ func captureScreenshots(workspace: String? = nil,
|
|
1595
1603
|
clearPreviousScreenshots: Bool = false,
|
1596
1604
|
reinstallApp: Bool = false,
|
1597
1605
|
eraseSimulator: Bool = false,
|
1606
|
+
overrideStatusBar: Bool = false,
|
1598
1607
|
localizeSimulator: Bool = false,
|
1599
1608
|
darkMode: Bool? = nil,
|
1600
1609
|
appIdentifier: String? = nil,
|
@@ -1615,7 +1624,8 @@ func captureScreenshots(workspace: String? = nil,
|
|
1615
1624
|
namespaceLogFiles: Any? = nil,
|
1616
1625
|
concurrentSimulators: Bool = true,
|
1617
1626
|
disableSlideToType: Bool = false,
|
1618
|
-
clonedSourcePackagesPath: String? = nil
|
1627
|
+
clonedSourcePackagesPath: String? = nil,
|
1628
|
+
testplan: String? = nil) {
|
1619
1629
|
let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1620
1630
|
RubyCommand.Argument(name: "project", value: project),
|
1621
1631
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1631,6 +1641,7 @@ func captureScreenshots(workspace: String? = nil,
|
|
1631
1641
|
RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
|
1632
1642
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
1633
1643
|
RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
|
1644
|
+
RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
|
1634
1645
|
RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
|
1635
1646
|
RubyCommand.Argument(name: "dark_mode", value: darkMode),
|
1636
1647
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
@@ -1651,7 +1662,8 @@ func captureScreenshots(workspace: String? = nil,
|
|
1651
1662
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1652
1663
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1653
1664
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1654
|
-
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)
|
1665
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
1666
|
+
RubyCommand.Argument(name: "testplan", value: testplan)])
|
1655
1667
|
_ = runner.executeCommand(command)
|
1656
1668
|
}
|
1657
1669
|
|
@@ -2122,7 +2134,7 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2122
2134
|
}
|
2123
2135
|
|
2124
2136
|
/**
|
2125
|
-
|
2137
|
+
Refer to [Firebase App Distribution](https://appdistro.page.link/fastlane-repo)
|
2126
2138
|
|
2127
2139
|
- parameters:
|
2128
2140
|
- ipaPath: Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action
|
@@ -2137,6 +2149,10 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2137
2149
|
- notifications: Crashlytics notification option (true/false)
|
2138
2150
|
- debug: Crashlytics debug option (true/false)
|
2139
2151
|
|
2152
|
+
Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.
|
2153
|
+
Beta will continue working until May 4, 2020.
|
2154
|
+
Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.
|
2155
|
+
|
2140
2156
|
Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
|
2141
2157
|
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
2158
|
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.
|
@@ -2211,6 +2227,7 @@ func createAppOnManagedPlayStore(jsonKey: String? = nil,
|
|
2211
2227
|
- appVersion: Initial version number (e.g. '1.0')
|
2212
2228
|
- sku: SKU Number (e.g. '1234')
|
2213
2229
|
- platform: The platform to use (optional)
|
2230
|
+
- platforms: The platforms to use (optional)
|
2214
2231
|
- language: Primary Language (e.g. 'English', 'German')
|
2215
2232
|
- companyName: The name of your company. Only required if it's the first app you create
|
2216
2233
|
- skipItc: Skip the creation of the app on App Store Connect
|
@@ -2234,6 +2251,7 @@ func createAppOnline(username: String,
|
|
2234
2251
|
appVersion: String? = nil,
|
2235
2252
|
sku: String,
|
2236
2253
|
platform: String = "ios",
|
2254
|
+
platforms: [String]? = nil,
|
2237
2255
|
language: String = "English",
|
2238
2256
|
companyName: String? = nil,
|
2239
2257
|
skipItc: Bool = false,
|
@@ -2252,6 +2270,7 @@ func createAppOnline(username: String,
|
|
2252
2270
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
2253
2271
|
RubyCommand.Argument(name: "sku", value: sku),
|
2254
2272
|
RubyCommand.Argument(name: "platform", value: platform),
|
2273
|
+
RubyCommand.Argument(name: "platforms", value: platforms),
|
2255
2274
|
RubyCommand.Argument(name: "language", value: language),
|
2256
2275
|
RubyCommand.Argument(name: "company_name", value: companyName),
|
2257
2276
|
RubyCommand.Argument(name: "skip_itc", value: skipItc),
|
@@ -2312,6 +2331,7 @@ func createKeychain(name: String? = nil,
|
|
2312
2331
|
- repo: The name of the repository you want to submit the pull request to
|
2313
2332
|
- title: The title of the pull request
|
2314
2333
|
- body: The contents of the pull request
|
2334
|
+
- draft: Indicates whether the pull request is a draft
|
2315
2335
|
- labels: The labels for the pull request
|
2316
2336
|
- milestone: The milestone ID (Integer) for the pull request
|
2317
2337
|
- head: The name of the branch where your changes are implemented (defaults to the current branch name)
|
@@ -2327,6 +2347,7 @@ func createPullRequest(apiToken: String,
|
|
2327
2347
|
repo: String,
|
2328
2348
|
title: String,
|
2329
2349
|
body: String? = nil,
|
2350
|
+
draft: Bool? = nil,
|
2330
2351
|
labels: [String]? = nil,
|
2331
2352
|
milestone: String? = nil,
|
2332
2353
|
head: String? = nil,
|
@@ -2339,6 +2360,7 @@ func createPullRequest(apiToken: String,
|
|
2339
2360
|
RubyCommand.Argument(name: "repo", value: repo),
|
2340
2361
|
RubyCommand.Argument(name: "title", value: title),
|
2341
2362
|
RubyCommand.Argument(name: "body", value: body),
|
2363
|
+
RubyCommand.Argument(name: "draft", value: draft),
|
2342
2364
|
RubyCommand.Argument(name: "labels", value: labels),
|
2343
2365
|
RubyCommand.Argument(name: "milestone", value: milestone),
|
2344
2366
|
RubyCommand.Argument(name: "head", value: head),
|
@@ -2757,7 +2779,7 @@ func downloadDsyms(username: String,
|
|
2757
2779
|
func downloadFromPlayStore(packageName: String,
|
2758
2780
|
versionName: String? = nil,
|
2759
2781
|
track: String = "production",
|
2760
|
-
metadataPath: String =
|
2782
|
+
metadataPath: String? = nil,
|
2761
2783
|
key: String? = nil,
|
2762
2784
|
issuer: String? = nil,
|
2763
2785
|
jsonKey: String? = nil,
|
@@ -2994,7 +3016,7 @@ func flock(message: String,
|
|
2994
3016
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
2995
3017
|
- debugMode: Output debug information in framed screenshots
|
2996
3018
|
- resume: Resume frameit instead of reprocessing all screenshots
|
2997
|
-
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (
|
3019
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility)
|
2998
3020
|
- path: The path to the directory containing the screenshots
|
2999
3021
|
|
3000
3022
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -3056,7 +3078,7 @@ func frameScreenshots(white: Bool? = nil,
|
|
3056
3078
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
3057
3079
|
- debugMode: Output debug information in framed screenshots
|
3058
3080
|
- resume: Resume frameit instead of reprocessing all screenshots
|
3059
|
-
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (
|
3081
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility)
|
3060
3082
|
- path: The path to the directory containing the screenshots
|
3061
3083
|
|
3062
3084
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -4476,7 +4498,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4476
4498
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
4477
4499
|
- s3Region: Name of the S3 region
|
4478
4500
|
- s3AccessKey: S3 access key
|
4479
|
-
- s3SecretAccessKey: S3 secret
|
4501
|
+
- s3SecretAccessKey: S3 secret access key
|
4480
4502
|
- s3Bucket: Name of the S3 bucket
|
4481
4503
|
- keychainName: Keychain the items should be imported to
|
4482
4504
|
- keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
|
@@ -4486,6 +4508,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4486
4508
|
- skipDocs: Skip generation of a README.md for the created git repository
|
4487
4509
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
4488
4510
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
4511
|
+
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
4489
4512
|
- outputPath: Path in which to export certificates, key and profile
|
4490
4513
|
- verbose: Print out extra information and all commands
|
4491
4514
|
|
@@ -4524,6 +4547,7 @@ func match(type: Any = matchfile.type,
|
|
4524
4547
|
skipDocs: Bool = matchfile.skipDocs,
|
4525
4548
|
platform: Any = matchfile.platform,
|
4526
4549
|
templateName: Any? = matchfile.templateName,
|
4550
|
+
profileName: Any? = matchfile.profileName,
|
4527
4551
|
outputPath: Any? = matchfile.outputPath,
|
4528
4552
|
verbose: Bool = matchfile.verbose) {
|
4529
4553
|
let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
@@ -4559,6 +4583,7 @@ func match(type: Any = matchfile.type,
|
|
4559
4583
|
RubyCommand.Argument(name: "skip_docs", value: skipDocs),
|
4560
4584
|
RubyCommand.Argument(name: "platform", value: platform),
|
4561
4585
|
RubyCommand.Argument(name: "template_name", value: templateName),
|
4586
|
+
RubyCommand.Argument(name: "profile_name", value: profileName),
|
4562
4587
|
RubyCommand.Argument(name: "output_path", value: outputPath),
|
4563
4588
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
4564
4589
|
_ = runner.executeCommand(command)
|
@@ -4952,6 +4977,8 @@ func pem(development: Bool = false,
|
|
4952
4977
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
4953
4978
|
- distributeExternal: Should the build be distributed to external testers?
|
4954
4979
|
- notifyExternalTesters: Should notify external testers?
|
4980
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
4981
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
4955
4982
|
- firstName: The tester's first name
|
4956
4983
|
- lastName: The tester's last name
|
4957
4984
|
- email: The tester's email
|
@@ -4986,6 +5013,8 @@ func pilot(username: String,
|
|
4986
5013
|
usesNonExemptEncryption: Bool = false,
|
4987
5014
|
distributeExternal: Bool = false,
|
4988
5015
|
notifyExternalTesters: Bool = true,
|
5016
|
+
appVersion: String? = nil,
|
5017
|
+
buildNumber: String? = nil,
|
4989
5018
|
firstName: String? = nil,
|
4990
5019
|
lastName: String? = nil,
|
4991
5020
|
email: String? = nil,
|
@@ -5016,6 +5045,8 @@ func pilot(username: String,
|
|
5016
5045
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
5017
5046
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
5018
5047
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
5048
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
5049
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
5019
5050
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
5020
5051
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
5021
5052
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -5071,6 +5102,7 @@ func pluginScores(outputPath: String,
|
|
5071
5102
|
- 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
5103
|
- skipImportValidation: Lint skips validating that the pod can be imported (available since cocoapods >= 1.3)
|
5073
5104
|
- skipTests: Lint skips building and running tests during validation (available since cocoapods >= 1.3)
|
5105
|
+
- analyze: Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1)
|
5074
5106
|
|
5075
5107
|
Test the syntax of your Podfile by linting the pod against the files of its directory
|
5076
5108
|
*/
|
@@ -5092,7 +5124,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5092
5124
|
noSubspecs: Bool = false,
|
5093
5125
|
platforms: String? = nil,
|
5094
5126
|
skipImportValidation: Bool = false,
|
5095
|
-
skipTests: Bool = false
|
5127
|
+
skipTests: Bool = false,
|
5128
|
+
analyze: Bool = false) {
|
5096
5129
|
let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
5097
5130
|
RubyCommand.Argument(name: "podspec", value: podspec),
|
5098
5131
|
RubyCommand.Argument(name: "verbose", value: verbose),
|
@@ -5111,7 +5144,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5111
5144
|
RubyCommand.Argument(name: "no_subspecs", value: noSubspecs),
|
5112
5145
|
RubyCommand.Argument(name: "platforms", value: platforms),
|
5113
5146
|
RubyCommand.Argument(name: "skip_import_validation", value: skipImportValidation),
|
5114
|
-
RubyCommand.Argument(name: "skip_tests", value: skipTests)
|
5147
|
+
RubyCommand.Argument(name: "skip_tests", value: skipTests),
|
5148
|
+
RubyCommand.Argument(name: "analyze", value: analyze)])
|
5115
5149
|
_ = runner.executeCommand(command)
|
5116
5150
|
}
|
5117
5151
|
|
@@ -5243,6 +5277,7 @@ func println(message: String? = nil) {
|
|
5243
5277
|
- appVersion: Initial version number (e.g. '1.0')
|
5244
5278
|
- sku: SKU Number (e.g. '1234')
|
5245
5279
|
- platform: The platform to use (optional)
|
5280
|
+
- platforms: The platforms to use (optional)
|
5246
5281
|
- language: Primary Language (e.g. 'English', 'German')
|
5247
5282
|
- companyName: The name of your company. Only required if it's the first app you create
|
5248
5283
|
- skipItc: Skip the creation of the app on App Store Connect
|
@@ -5266,6 +5301,7 @@ func produce(username: String,
|
|
5266
5301
|
appVersion: String? = nil,
|
5267
5302
|
sku: String,
|
5268
5303
|
platform: String = "ios",
|
5304
|
+
platforms: [String]? = nil,
|
5269
5305
|
language: String = "English",
|
5270
5306
|
companyName: String? = nil,
|
5271
5307
|
skipItc: Bool = false,
|
@@ -5284,6 +5320,7 @@ func produce(username: String,
|
|
5284
5320
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
5285
5321
|
RubyCommand.Argument(name: "sku", value: sku),
|
5286
5322
|
RubyCommand.Argument(name: "platform", value: platform),
|
5323
|
+
RubyCommand.Argument(name: "platforms", value: platforms),
|
5287
5324
|
RubyCommand.Argument(name: "language", value: language),
|
5288
5325
|
RubyCommand.Argument(name: "company_name", value: companyName),
|
5289
5326
|
RubyCommand.Argument(name: "skip_itc", value: skipItc),
|
@@ -5640,6 +5677,7 @@ func rubyVersion() {
|
|
5640
5677
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5641
5678
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5642
5679
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5680
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5643
5681
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5644
5682
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5645
5683
|
- clean: Should the project be cleaned before building it?
|
@@ -5647,8 +5685,9 @@ func rubyVersion() {
|
|
5647
5685
|
- addressSanitizer: Should the address sanitizer be turned on?
|
5648
5686
|
- threadSanitizer: Should the thread sanitizer be turned on?
|
5649
5687
|
- openReport: Should the HTML report be opened when tests are completed?
|
5688
|
+
- disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
|
5650
5689
|
- outputDirectory: The directory in which all reports will be stored
|
5651
|
-
- outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty)
|
5690
|
+
- outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
|
5652
5691
|
- outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
|
5653
5692
|
- outputFiles: Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence
|
5654
5693
|
- buildlogPath: The directory where to store the raw log
|
@@ -5702,6 +5741,7 @@ func runTests(workspace: String? = nil,
|
|
5702
5741
|
appIdentifier: String? = nil,
|
5703
5742
|
onlyTesting: Any? = nil,
|
5704
5743
|
skipTesting: Any? = nil,
|
5744
|
+
testplan: String? = nil,
|
5705
5745
|
xctestrun: String? = nil,
|
5706
5746
|
toolchain: Any? = nil,
|
5707
5747
|
clean: Bool = false,
|
@@ -5709,6 +5749,7 @@ func runTests(workspace: String? = nil,
|
|
5709
5749
|
addressSanitizer: Bool? = nil,
|
5710
5750
|
threadSanitizer: Bool? = nil,
|
5711
5751
|
openReport: Bool = false,
|
5752
|
+
disableXcpretty: Bool? = nil,
|
5712
5753
|
outputDirectory: String = "./test_output",
|
5713
5754
|
outputStyle: String? = nil,
|
5714
5755
|
outputTypes: String = "html,junit",
|
@@ -5761,6 +5802,7 @@ func runTests(workspace: String? = nil,
|
|
5761
5802
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5762
5803
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5763
5804
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
5805
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5764
5806
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5765
5807
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5766
5808
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5768,6 +5810,7 @@ func runTests(workspace: String? = nil,
|
|
5768
5810
|
RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
|
5769
5811
|
RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
|
5770
5812
|
RubyCommand.Argument(name: "open_report", value: openReport),
|
5813
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
|
5771
5814
|
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
5772
5815
|
RubyCommand.Argument(name: "output_style", value: outputStyle),
|
5773
5816
|
RubyCommand.Argument(name: "output_types", value: outputTypes),
|
@@ -5901,6 +5944,7 @@ func say(text: Any,
|
|
5901
5944
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5902
5945
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5903
5946
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5947
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5904
5948
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5905
5949
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5906
5950
|
- clean: Should the project be cleaned before building it?
|
@@ -5908,8 +5952,9 @@ func say(text: Any,
|
|
5908
5952
|
- addressSanitizer: Should the address sanitizer be turned on?
|
5909
5953
|
- threadSanitizer: Should the thread sanitizer be turned on?
|
5910
5954
|
- openReport: Should the HTML report be opened when tests are completed?
|
5955
|
+
- disableXcpretty: Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
|
5911
5956
|
- outputDirectory: The directory in which all reports will be stored
|
5912
|
-
- outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty)
|
5957
|
+
- outputStyle: Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild)
|
5913
5958
|
- outputTypes: Comma separated list of the output types (e.g. html, junit, json-compilation-database)
|
5914
5959
|
- outputFiles: Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence
|
5915
5960
|
- buildlogPath: The directory where to store the raw log
|
@@ -5963,6 +6008,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5963
6008
|
appIdentifier: Any? = scanfile.appIdentifier,
|
5964
6009
|
onlyTesting: Any? = scanfile.onlyTesting,
|
5965
6010
|
skipTesting: Any? = scanfile.skipTesting,
|
6011
|
+
testplan: Any? = scanfile.testplan,
|
5966
6012
|
xctestrun: Any? = scanfile.xctestrun,
|
5967
6013
|
toolchain: Any? = scanfile.toolchain,
|
5968
6014
|
clean: Bool = scanfile.clean,
|
@@ -5970,6 +6016,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5970
6016
|
addressSanitizer: Bool? = scanfile.addressSanitizer,
|
5971
6017
|
threadSanitizer: Bool? = scanfile.threadSanitizer,
|
5972
6018
|
openReport: Bool = scanfile.openReport,
|
6019
|
+
disableXcpretty: Bool? = scanfile.disableXcpretty,
|
5973
6020
|
outputDirectory: Any = scanfile.outputDirectory,
|
5974
6021
|
outputStyle: Any? = scanfile.outputStyle,
|
5975
6022
|
outputTypes: Any = scanfile.outputTypes,
|
@@ -6022,6 +6069,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
6022
6069
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
6023
6070
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
6024
6071
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6072
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
6025
6073
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
6026
6074
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
6027
6075
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -6029,6 +6077,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
6029
6077
|
RubyCommand.Argument(name: "address_sanitizer", value: addressSanitizer),
|
6030
6078
|
RubyCommand.Argument(name: "thread_sanitizer", value: threadSanitizer),
|
6031
6079
|
RubyCommand.Argument(name: "open_report", value: openReport),
|
6080
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
|
6032
6081
|
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
6033
6082
|
RubyCommand.Argument(name: "output_style", value: outputStyle),
|
6034
6083
|
RubyCommand.Argument(name: "output_types", value: outputTypes),
|
@@ -6325,7 +6374,7 @@ func setPodKey(useBundleExec: Bool = true,
|
|
6325
6374
|
This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
|
6326
6375
|
*/
|
6327
6376
|
func setupCi(force: Bool = false,
|
6328
|
-
provider:
|
6377
|
+
provider: String? = nil) {
|
6329
6378
|
let command = RubyCommand(commandID: "", methodName: "setup_ci", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
|
6330
6379
|
RubyCommand.Argument(name: "provider", value: provider)])
|
6331
6380
|
_ = runner.executeCommand(command)
|
@@ -6364,13 +6413,16 @@ func setupCircleCi(force: Bool = false) {
|
|
6364
6413
|
- resultBundle: Produce the result bundle describing what occurred will be placed
|
6365
6414
|
|
6366
6415
|
- Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin'|
|
6416
|
+
- Sets unlocked keychain to be used by Match|
|
6367
6417
|
- Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin'|
|
6368
6418
|
- Sets output directory to './output' (gym, scan and backup_xcarchive)|
|
6369
6419
|
- Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage)|
|
6370
6420
|
- Produce result bundle (gym and scan)|
|
6371
6421
|
>|
|
6372
6422
|
This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the `./output` directory.
|
6373
|
-
The action also works with [Keychains and Provisioning Profiles Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin), the selected keychain will be automatically unlocked and the selected code signing identity will be used.
|
6423
|
+
The action also works with [Keychains and Provisioning Profiles Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin), the selected keychain will be automatically unlocked and the selected code signing identity will be used.
|
6424
|
+
[Match](https://docs.fastlane.tools/actions/match/) will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined.
|
6425
|
+
By default this action will only work when _fastlane_ is executed on a CI system.
|
6374
6426
|
*/
|
6375
6427
|
func setupJenkins(force: Bool = false,
|
6376
6428
|
unlockKeychain: Bool = true,
|
@@ -6661,7 +6713,7 @@ func slather(buildDirectory: String? = nil,
|
|
6661
6713
|
show: Bool = false,
|
6662
6714
|
sourceDirectory: String? = nil,
|
6663
6715
|
outputDirectory: String? = nil,
|
6664
|
-
ignore:
|
6716
|
+
ignore: [String]? = nil,
|
6665
6717
|
verbose: Bool? = nil,
|
6666
6718
|
useBundleExec: Bool = false,
|
6667
6719
|
binaryBasename: Bool = false,
|
@@ -6720,6 +6772,7 @@ func slather(buildDirectory: String? = nil,
|
|
6720
6772
|
- clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
|
6721
6773
|
- reinstallApp: Enabling this option will automatically uninstall the application before running it
|
6722
6774
|
- eraseSimulator: Enabling this option will automatically erase the simulator before running the application
|
6775
|
+
- overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
|
6723
6776
|
- localizeSimulator: Enabling this option will configure the Simulator's system language
|
6724
6777
|
- darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
|
6725
6778
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
@@ -6741,6 +6794,7 @@ func slather(buildDirectory: String? = nil,
|
|
6741
6794
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
6742
6795
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
6743
6796
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
6797
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
6744
6798
|
*/
|
6745
6799
|
func snapshot(workspace: Any? = snapshotfile.workspace,
|
6746
6800
|
project: Any? = snapshotfile.project,
|
@@ -6757,6 +6811,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6757
6811
|
clearPreviousScreenshots: Bool = snapshotfile.clearPreviousScreenshots,
|
6758
6812
|
reinstallApp: Bool = snapshotfile.reinstallApp,
|
6759
6813
|
eraseSimulator: Bool = snapshotfile.eraseSimulator,
|
6814
|
+
overrideStatusBar: Bool = snapshotfile.overrideStatusBar,
|
6760
6815
|
localizeSimulator: Bool = snapshotfile.localizeSimulator,
|
6761
6816
|
darkMode: Bool? = snapshotfile.darkMode,
|
6762
6817
|
appIdentifier: Any? = snapshotfile.appIdentifier,
|
@@ -6777,7 +6832,8 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6777
6832
|
namespaceLogFiles: Any? = snapshotfile.namespaceLogFiles,
|
6778
6833
|
concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
|
6779
6834
|
disableSlideToType: Bool = snapshotfile.disableSlideToType,
|
6780
|
-
clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath
|
6835
|
+
clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath,
|
6836
|
+
testplan: Any? = snapshotfile.testplan) {
|
6781
6837
|
let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
6782
6838
|
RubyCommand.Argument(name: "project", value: project),
|
6783
6839
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -6793,6 +6849,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6793
6849
|
RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
|
6794
6850
|
RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
|
6795
6851
|
RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
|
6852
|
+
RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
|
6796
6853
|
RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
|
6797
6854
|
RubyCommand.Argument(name: "dark_mode", value: darkMode),
|
6798
6855
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
@@ -6813,7 +6870,8 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6813
6870
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
6814
6871
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
6815
6872
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
6816
|
-
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)
|
6873
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
6874
|
+
RubyCommand.Argument(name: "testplan", value: testplan)])
|
6817
6875
|
_ = runner.executeCommand(command)
|
6818
6876
|
}
|
6819
6877
|
|
@@ -7042,7 +7100,7 @@ func supply(packageName: String,
|
|
7042
7100
|
releaseStatus: String = "completed",
|
7043
7101
|
track: String = "production",
|
7044
7102
|
rollout: String? = nil,
|
7045
|
-
metadataPath: String =
|
7103
|
+
metadataPath: String? = nil,
|
7046
7104
|
key: String? = nil,
|
7047
7105
|
issuer: String? = nil,
|
7048
7106
|
jsonKey: String? = nil,
|
@@ -7123,6 +7181,7 @@ func supply(packageName: String,
|
|
7123
7181
|
- quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
|
7124
7182
|
- executable: Path to the `swiftlint` executable on your machine
|
7125
7183
|
- format: Format code when mode is :autocorrect
|
7184
|
+
- noCache: Ignore the cache when mode is :autocorrect or :lint
|
7126
7185
|
- compilerLogPath: Compiler log path when mode is :analyze
|
7127
7186
|
*/
|
7128
7187
|
func swiftlint(mode: Any = "lint",
|
@@ -7137,6 +7196,7 @@ func swiftlint(mode: Any = "lint",
|
|
7137
7196
|
quiet: Bool = false,
|
7138
7197
|
executable: String? = nil,
|
7139
7198
|
format: Bool = false,
|
7199
|
+
noCache: Bool = false,
|
7140
7200
|
compilerLogPath: String? = nil) {
|
7141
7201
|
let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
|
7142
7202
|
RubyCommand.Argument(name: "path", value: path),
|
@@ -7150,6 +7210,7 @@ func swiftlint(mode: Any = "lint",
|
|
7150
7210
|
RubyCommand.Argument(name: "quiet", value: quiet),
|
7151
7211
|
RubyCommand.Argument(name: "executable", value: executable),
|
7152
7212
|
RubyCommand.Argument(name: "format", value: format),
|
7213
|
+
RubyCommand.Argument(name: "no_cache", value: noCache),
|
7153
7214
|
RubyCommand.Argument(name: "compiler_log_path", value: compilerLogPath)])
|
7154
7215
|
_ = runner.executeCommand(command)
|
7155
7216
|
}
|
@@ -7181,7 +7242,7 @@ func swiftlint(mode: Any = "lint",
|
|
7181
7242
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
7182
7243
|
- s3Region: Name of the S3 region
|
7183
7244
|
- s3AccessKey: S3 access key
|
7184
|
-
- s3SecretAccessKey: S3 secret
|
7245
|
+
- s3SecretAccessKey: S3 secret access key
|
7185
7246
|
- s3Bucket: Name of the S3 bucket
|
7186
7247
|
- keychainName: Keychain the items should be imported to
|
7187
7248
|
- keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
|
@@ -7191,6 +7252,7 @@ func swiftlint(mode: Any = "lint",
|
|
7191
7252
|
- skipDocs: Skip generation of a README.md for the created git repository
|
7192
7253
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
7193
7254
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
7255
|
+
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
7194
7256
|
- outputPath: Path in which to export certificates, key and profile
|
7195
7257
|
- verbose: Print out extra information and all commands
|
7196
7258
|
|
@@ -7229,6 +7291,7 @@ func syncCodeSigning(type: String = "development",
|
|
7229
7291
|
skipDocs: Bool = false,
|
7230
7292
|
platform: String = "ios",
|
7231
7293
|
templateName: String? = nil,
|
7294
|
+
profileName: String? = nil,
|
7232
7295
|
outputPath: String? = nil,
|
7233
7296
|
verbose: Bool = false) {
|
7234
7297
|
let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
@@ -7264,6 +7327,7 @@ func syncCodeSigning(type: String = "development",
|
|
7264
7327
|
RubyCommand.Argument(name: "skip_docs", value: skipDocs),
|
7265
7328
|
RubyCommand.Argument(name: "platform", value: platform),
|
7266
7329
|
RubyCommand.Argument(name: "template_name", value: templateName),
|
7330
|
+
RubyCommand.Argument(name: "profile_name", value: profileName),
|
7267
7331
|
RubyCommand.Argument(name: "output_path", value: outputPath),
|
7268
7332
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
7269
7333
|
_ = runner.executeCommand(command)
|
@@ -7356,6 +7420,8 @@ func testfairy(apiKey: String,
|
|
7356
7420
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
7357
7421
|
- distributeExternal: Should the build be distributed to external testers?
|
7358
7422
|
- notifyExternalTesters: Should notify external testers?
|
7423
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
7424
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
7359
7425
|
- firstName: The tester's first name
|
7360
7426
|
- lastName: The tester's last name
|
7361
7427
|
- email: The tester's email
|
@@ -7390,6 +7456,8 @@ func testflight(username: String,
|
|
7390
7456
|
usesNonExemptEncryption: Bool = false,
|
7391
7457
|
distributeExternal: Bool = false,
|
7392
7458
|
notifyExternalTesters: Bool = true,
|
7459
|
+
appVersion: String? = nil,
|
7460
|
+
buildNumber: String? = nil,
|
7393
7461
|
firstName: String? = nil,
|
7394
7462
|
lastName: String? = nil,
|
7395
7463
|
email: String? = nil,
|
@@ -7420,6 +7488,8 @@ func testflight(username: String,
|
|
7420
7488
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
7421
7489
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
7422
7490
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
7491
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
7492
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
7423
7493
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
7424
7494
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
7425
7495
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -7557,6 +7627,45 @@ func updateAppIdentifier(xcodeproj: String,
|
|
7557
7627
|
_ = runner.executeCommand(command)
|
7558
7628
|
}
|
7559
7629
|
|
7630
|
+
/**
|
7631
|
+
Configures Xcode's Codesigning options
|
7632
|
+
|
7633
|
+
- parameters:
|
7634
|
+
- path: Path to your Xcode project
|
7635
|
+
- useAutomaticSigning: Defines if project should use automatic signing
|
7636
|
+
- teamId: Team ID, is used when upgrading project
|
7637
|
+
- targets: Specify targets you want to toggle the signing mech. (default to all targets)
|
7638
|
+
- buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all targets)
|
7639
|
+
- codeSignIdentity: Code signing identity type (iPhone Developer, iPhone Distribution)
|
7640
|
+
- profileName: Provisioning profile name to use for code signing
|
7641
|
+
- profileUuid: Provisioning profile UUID to use for code signing
|
7642
|
+
- bundleIdentifier: Application Product Bundle Identifier
|
7643
|
+
|
7644
|
+
- returns: The current status (boolean) of codesigning after modification
|
7645
|
+
|
7646
|
+
Configures Xcode's Codesigning options of all targets in the project
|
7647
|
+
*/
|
7648
|
+
func updateCodeSigningSettings(path: String,
|
7649
|
+
useAutomaticSigning: Bool = false,
|
7650
|
+
teamId: String? = nil,
|
7651
|
+
targets: [String]? = nil,
|
7652
|
+
buildConfigurations: [String]? = nil,
|
7653
|
+
codeSignIdentity: String? = nil,
|
7654
|
+
profileName: String? = nil,
|
7655
|
+
profileUuid: String? = nil,
|
7656
|
+
bundleIdentifier: String? = nil) {
|
7657
|
+
let command = RubyCommand(commandID: "", methodName: "update_code_signing_settings", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
|
7658
|
+
RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
|
7659
|
+
RubyCommand.Argument(name: "team_id", value: teamId),
|
7660
|
+
RubyCommand.Argument(name: "targets", value: targets),
|
7661
|
+
RubyCommand.Argument(name: "build_configurations", value: buildConfigurations),
|
7662
|
+
RubyCommand.Argument(name: "code_sign_identity", value: codeSignIdentity),
|
7663
|
+
RubyCommand.Argument(name: "profile_name", value: profileName),
|
7664
|
+
RubyCommand.Argument(name: "profile_uuid", value: profileUuid),
|
7665
|
+
RubyCommand.Argument(name: "bundle_identifier", value: bundleIdentifier)])
|
7666
|
+
_ = runner.executeCommand(command)
|
7667
|
+
}
|
7668
|
+
|
7560
7669
|
/**
|
7561
7670
|
Makes sure fastlane-tools are up-to-date when running fastlane
|
7562
7671
|
|
@@ -8091,7 +8200,7 @@ func uploadToPlayStore(packageName: String,
|
|
8091
8200
|
releaseStatus: String = "completed",
|
8092
8201
|
track: String = "production",
|
8093
8202
|
rollout: String? = nil,
|
8094
|
-
metadataPath: String =
|
8203
|
+
metadataPath: String? = nil,
|
8095
8204
|
key: String? = nil,
|
8096
8205
|
issuer: String? = nil,
|
8097
8206
|
jsonKey: String? = nil,
|
@@ -8217,6 +8326,8 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
8217
8326
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
8218
8327
|
- distributeExternal: Should the build be distributed to external testers?
|
8219
8328
|
- notifyExternalTesters: Should notify external testers?
|
8329
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
8330
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
8220
8331
|
- firstName: The tester's first name
|
8221
8332
|
- lastName: The tester's last name
|
8222
8333
|
- email: The tester's email
|
@@ -8251,6 +8362,8 @@ func uploadToTestflight(username: String,
|
|
8251
8362
|
usesNonExemptEncryption: Bool = false,
|
8252
8363
|
distributeExternal: Bool = false,
|
8253
8364
|
notifyExternalTesters: Bool = true,
|
8365
|
+
appVersion: String? = nil,
|
8366
|
+
buildNumber: String? = nil,
|
8254
8367
|
firstName: String? = nil,
|
8255
8368
|
lastName: String? = nil,
|
8256
8369
|
email: String? = nil,
|
@@ -8281,6 +8394,8 @@ func uploadToTestflight(username: String,
|
|
8281
8394
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
8282
8395
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
8283
8396
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
8397
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
8398
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
8284
8399
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
8285
8400
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
8286
8401
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -8590,7 +8705,7 @@ func xcov(workspace: String? = nil,
|
|
8590
8705
|
coverallsServiceJobId: String? = nil,
|
8591
8706
|
coverallsRepoToken: String? = nil,
|
8592
8707
|
xcconfig: String? = nil,
|
8593
|
-
ideFoundationPath: String = "/Applications/Xcode-11.
|
8708
|
+
ideFoundationPath: String = "/Applications/Xcode-11.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8594
8709
|
legacySupport: Bool = false) {
|
8595
8710
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8596
8711
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8735,4 +8850,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8735
8850
|
|
8736
8851
|
// Please don't remove the lines below
|
8737
8852
|
// They are used to detect outdated files
|
8738
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8853
|
+
// FastlaneRunnerAPIVersion [0.9.75]
|