fastlane 2.139.0 → 2.144.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +85 -72
- data/cert/lib/cert/options.rb +12 -5
- data/cert/lib/cert/runner.rb +13 -0
- data/deliver/lib/deliver/options.rb +28 -2
- data/deliver/lib/deliver/runner.rb +13 -2
- data/fastlane/lib/fastlane/action.rb +1 -1
- 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/lib/fastlane/actions/README.md +2 -0
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +13 -5
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -1
- data/fastlane/lib/fastlane/actions/build_app.rb +157 -6
- data/fastlane/lib/fastlane/actions/build_ios_app.rb +28 -132
- data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -2
- data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +29 -0
- data/fastlane/lib/fastlane/actions/docs/{build_ios_app.md → build_app.md} +1 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +22 -6
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +22 -6
- data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +35 -7
- data/fastlane/lib/fastlane/actions/frame_screenshots.rb +2 -1
- data/fastlane/lib/fastlane/actions/get_github_release.rb +3 -0
- data/fastlane/lib/fastlane/actions/gradle.rb +43 -2
- data/fastlane/lib/fastlane/actions/gym.rb +3 -7
- data/fastlane/lib/fastlane/actions/import_from_git.rb +4 -0
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +9 -3
- data/fastlane/lib/fastlane/actions/notarize.rb +183 -0
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
- data/fastlane/lib/fastlane/actions/run_tests.rb +5 -22
- data/fastlane/lib/fastlane/actions/s3.rb +5 -291
- data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/spm.rb +8 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +45 -9
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +190 -0
- data/fastlane/lib/fastlane/actions/update_plist.rb +37 -2
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +13 -3
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -0
- data/fastlane/lib/fastlane/fast_file.rb +13 -3
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +56 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
- data/fastlane/lib/fastlane/runner.rb +23 -18
- data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +3 -3
- data/fastlane/swift/Fastlane.swift +422 -45
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +17 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +23 -3
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +21 -1
- 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/cert_checker.rb +28 -0
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
- data/fastlane_core/lib/fastlane_core/project.rb +27 -0
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
- data/frameit/lib/frameit/commands_generator.rb +25 -0
- data/frameit/lib/frameit/config_parser.rb +31 -9
- data/frameit/lib/frameit/device.rb +90 -0
- data/frameit/lib/frameit/device_types.rb +121 -5
- data/frameit/lib/frameit/editor.rb +28 -40
- data/frameit/lib/frameit/offsets.rb +8 -1
- data/frameit/lib/frameit/options.rb +81 -54
- data/frameit/lib/frameit/runner.rb +17 -7
- data/frameit/lib/frameit/screenshot.rb +35 -47
- data/frameit/lib/frameit/template_finder.rb +15 -12
- data/gym/lib/gym/code_signing_mapping.rb +32 -3
- data/gym/lib/gym/detect_values.rb +34 -2
- data/gym/lib/gym/generators/package_command_generator.rb +8 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +52 -17
- data/gym/lib/gym/module.rb +8 -0
- data/gym/lib/gym/options.rb +25 -1
- data/gym/lib/gym/runner.rb +70 -21
- data/match/lib/match/change_password.rb +1 -1
- data/match/lib/match/encryption.rb +4 -0
- data/match/lib/match/encryption/openssl.rb +1 -1
- data/match/lib/match/generator.rb +17 -3
- data/match/lib/match/importer.rb +35 -20
- data/match/lib/match/module.rb +5 -2
- data/match/lib/match/nuke.rb +59 -17
- data/match/lib/match/options.rb +38 -15
- data/match/lib/match/runner.rb +24 -8
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/spaceship_ensure.rb +19 -9
- data/match/lib/match/storage.rb +4 -0
- data/match/lib/match/storage/git_storage.rb +5 -2
- data/match/lib/match/storage/google_cloud_storage.rb +2 -2
- data/match/lib/match/storage/s3_storage.rb +162 -0
- data/pilot/lib/pilot/.manager.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +24 -9
- data/scan/lib/scan/detect_values.rb +6 -1
- data/scan/lib/scan/manager.rb +18 -1
- data/scan/lib/scan/options.rb +28 -1
- data/scan/lib/scan/runner.rb +9 -7
- data/scan/lib/scan/slack_poster.rb +1 -1
- data/scan/lib/scan/test_command_generator.rb +12 -5
- data/screengrab/lib/screengrab/runner.rb +31 -18
- data/sigh/lib/sigh/.runner.rb.swp +0 -0
- data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
- data/snapshot/lib/snapshot/options.rb +12 -1
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp +0 -0
- data/{gym/lib/gym/.runner.rb.swp → spaceship/lib/spaceship/connect_api/models/.bundle_id_capability.rb.swp} +0 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +29 -0
- data/spaceship/lib/spaceship/portal/app.rb +11 -2
- data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +11 -11
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +7 -3
- data/spaceship/lib/spaceship/tunes/iap_families.rb +12 -1
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +26 -17
- data/spaceship/lib/spaceship/tunes/iap_status.rb +5 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
- data/supply/lib/supply/client.rb +1 -1
- metadata +63 -18
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'aws-sdk-s3'
|
2
|
+
|
3
|
+
module Fastlane
|
4
|
+
module Helper
|
5
|
+
class S3ClientHelper
|
6
|
+
attr_reader :client
|
7
|
+
|
8
|
+
def initialize(access_key: nil, secret_access_key: nil, region: nil)
|
9
|
+
creds = Aws::Credentials.new(access_key, secret_access_key)
|
10
|
+
Aws.config.update({
|
11
|
+
region: region,
|
12
|
+
credentials: creds
|
13
|
+
})
|
14
|
+
|
15
|
+
@client = Aws::S3::Client.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def list_buckets
|
19
|
+
return @client.list_buckets
|
20
|
+
end
|
21
|
+
|
22
|
+
def upload_file(bucket_name, file_name, file_data, acl)
|
23
|
+
bucket = find_bucket!(bucket_name)
|
24
|
+
details = {
|
25
|
+
acl: acl,
|
26
|
+
key: file_name,
|
27
|
+
body: file_data
|
28
|
+
}
|
29
|
+
obj = bucket.put_object(details)
|
30
|
+
|
31
|
+
# When you enable versioning on a S3 bucket,
|
32
|
+
# writing to an object will create an object version
|
33
|
+
# instead of replacing the existing object.
|
34
|
+
# http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/ObjectVersion.html
|
35
|
+
if obj.kind_of?(Aws::S3::ObjectVersion)
|
36
|
+
obj = obj.object
|
37
|
+
end
|
38
|
+
|
39
|
+
# Return public url
|
40
|
+
obj.public_url.to_s
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete_file(bucket, file_name)
|
44
|
+
bucket = find_bucket!(bucket_name)
|
45
|
+
bucket.objects[file_name].delete
|
46
|
+
end
|
47
|
+
|
48
|
+
def find_bucket!(bucket_name)
|
49
|
+
bucket = Aws::S3::Bucket.new(bucket_name, client: @client)
|
50
|
+
raise "Bucket '#{bucket_name}' not found" unless bucket.exists?
|
51
|
+
|
52
|
+
return bucket
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -373,7 +373,7 @@ module Fastlane
|
|
373
373
|
# (a plugin may contain any number of actions)
|
374
374
|
version_number = Fastlane::ActionCollector.determine_version(gem_name)
|
375
375
|
references = Fastlane.const_get(module_name).all_classes.collect do |path|
|
376
|
-
next unless File.dirname(path).
|
376
|
+
next unless File.dirname(path).include?("/actions") # we only want to match actions
|
377
377
|
|
378
378
|
File.basename(path).gsub("_action", "").gsub(".rb", "").to_sym # the _action is optional
|
379
379
|
end
|
@@ -225,27 +225,32 @@ module Fastlane
|
|
225
225
|
|
226
226
|
begin
|
227
227
|
Dir.chdir(custom_dir) do # go up from the fastlane folder, to the project folder
|
228
|
-
#
|
228
|
+
# Removing step_name before its parsed into configurations
|
229
|
+
args = arguments.kind_of?(Array) && arguments.first.kind_of?(Hash) ? arguments.first : {}
|
230
|
+
step_name = args.delete(:step_name)
|
231
|
+
|
232
|
+
# arguments is an array by default, containing an hash with the actual parameters
|
233
|
+
# Since we usually just need the passed hash, we'll just use the first object if there is only one
|
234
|
+
if arguments.count == 0
|
235
|
+
configurations = ConfigurationHelper.parse(class_ref, {}) # no parameters => empty hash
|
236
|
+
elsif arguments.count == 1 && arguments.first.kind_of?(Hash)
|
237
|
+
configurations = ConfigurationHelper.parse(class_ref, arguments.first) # Correct configuration passed
|
238
|
+
elsif !class_ref.available_options
|
239
|
+
# This action does not use the new action format
|
240
|
+
# Just passing the arguments to this method
|
241
|
+
configurations = arguments
|
242
|
+
else
|
243
|
+
UI.user_error!("You have to call the integration like `#{method_sym}(key: \"value\")`. Run `fastlane action #{method_sym}` for all available keys. Please check out the current documentation on GitHub.")
|
244
|
+
end
|
229
245
|
|
246
|
+
# If another action is calling this action, we shouldn't show it in the summary
|
247
|
+
# A nil value for action_name will hide it from the summary
|
230
248
|
unless from_action
|
231
|
-
|
232
|
-
action_name
|
233
|
-
args.delete(:step_name)
|
249
|
+
action_name = step_name
|
250
|
+
action_name ||= class_ref.method(:step_text).arity == 1 ? class_ref.step_text(configurations) : class_ref.step_text
|
234
251
|
end
|
235
|
-
Actions.execute_action(action_name) do
|
236
|
-
# arguments is an array by default, containing an hash with the actual parameters
|
237
|
-
# Since we usually just need the passed hash, we'll just use the first object if there is only one
|
238
|
-
if arguments.count == 0
|
239
|
-
arguments = ConfigurationHelper.parse(class_ref, {}) # no parameters => empty hash
|
240
|
-
elsif arguments.count == 1 && arguments.first.kind_of?(Hash)
|
241
|
-
arguments = ConfigurationHelper.parse(class_ref, arguments.first) # Correct configuration passed
|
242
|
-
elsif !class_ref.available_options
|
243
|
-
# This action does not use the new action format
|
244
|
-
# Just passing the arguments to this method
|
245
|
-
else
|
246
|
-
UI.user_error!("You have to call the integration like `#{method_sym}(key: \"value\")`. Run `fastlane action #{method_sym}` for all available keys. Please check out the current documentation on GitHub.")
|
247
|
-
end
|
248
252
|
|
253
|
+
Actions.execute_action(action_name) do
|
249
254
|
if Fastlane::Actions.is_deprecated?(class_ref)
|
250
255
|
puts("==========================================".deprecated)
|
251
256
|
puts("This action (#{method_sym}) is deprecated".deprecated)
|
@@ -253,7 +258,7 @@ module Fastlane
|
|
253
258
|
puts("==========================================\n".deprecated)
|
254
259
|
end
|
255
260
|
class_ref.runner = self # needed to call another action from an action
|
256
|
-
return class_ref.run(
|
261
|
+
return class_ref.run(configurations)
|
257
262
|
end
|
258
263
|
end
|
259
264
|
rescue Interrupt => e
|
@@ -83,7 +83,7 @@ module Fastlane
|
|
83
83
|
|
84
84
|
case command.method_name
|
85
85
|
when "sh"
|
86
|
-
error_callback = proc { |string_value| closure_argument_value = string_value }
|
86
|
+
error_callback = proc { |string_value| closure_argument_value = string_value } if parameter_map[:error_callback]
|
87
87
|
command_param = parameter_map[:command]
|
88
88
|
log_param = parameter_map[:log]
|
89
89
|
action_return = Fastlane::FastFile.sh(command_param, log: log_param, error_callback: error_callback)
|
@@ -57,10 +57,10 @@ protocol DeliverfileProtocol: class {
|
|
57
57
|
/// Rejects the previously submitted build if it's in a state where it's possible
|
58
58
|
var rejectIfPossible: Bool { get }
|
59
59
|
|
60
|
-
/// Should the app be automatically released once it's approved?
|
60
|
+
/// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
61
61
|
var automaticRelease: Bool { get }
|
62
62
|
|
63
|
-
/// Date in milliseconds for automatically releasing on pending approval
|
63
|
+
/// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
64
64
|
var autoReleaseDate: String? { get }
|
65
65
|
|
66
66
|
/// Enable the phased release feature of iTC
|
@@ -246,4 +246,4 @@ extension DeliverfileProtocol {
|
|
246
246
|
|
247
247
|
// Please don't remove the lines below
|
248
248
|
// They are used to detect outdated files
|
249
|
-
// FastlaneRunnerAPIVersion [0.9.
|
249
|
+
// FastlaneRunnerAPIVersion [0.9.19]
|
@@ -441,8 +441,8 @@ func appledoc(input: Any,
|
|
441
441
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
442
442
|
- submitForReview: Submit the new version for Review after uploading everything
|
443
443
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
444
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
445
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
444
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
445
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
446
446
|
- phasedRelease: Enable the phased release feature of iTC
|
447
447
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
448
448
|
- priceTier: The price tier of this application
|
@@ -829,6 +829,7 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
|
|
829
829
|
- task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
|
830
830
|
- flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
|
831
831
|
- buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
|
832
|
+
- tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
|
832
833
|
- flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
|
833
834
|
- projectDir: The root directory of the gradle project
|
834
835
|
- gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
|
@@ -842,9 +843,10 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
|
|
842
843
|
|
843
844
|
Run `./gradlew tasks` to get a list of all available gradle tasks for your project
|
844
845
|
*/
|
845
|
-
func buildAndroidApp(task: String,
|
846
|
+
func buildAndroidApp(task: String? = nil,
|
846
847
|
flavor: String? = nil,
|
847
848
|
buildType: String? = nil,
|
849
|
+
tasks: [String]? = nil,
|
848
850
|
flags: String? = nil,
|
849
851
|
projectDir: String = ".",
|
850
852
|
gradlePath: String? = nil,
|
@@ -856,6 +858,7 @@ func buildAndroidApp(task: String,
|
|
856
858
|
let command = RubyCommand(commandID: "", methodName: "build_android_app", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
|
857
859
|
RubyCommand.Argument(name: "flavor", value: flavor),
|
858
860
|
RubyCommand.Argument(name: "build_type", value: buildType),
|
861
|
+
RubyCommand.Argument(name: "tasks", value: tasks),
|
859
862
|
RubyCommand.Argument(name: "flags", value: flags),
|
860
863
|
RubyCommand.Argument(name: "project_dir", value: projectDir),
|
861
864
|
RubyCommand.Argument(name: "gradle_path", value: gradlePath),
|
@@ -868,7 +871,7 @@ func buildAndroidApp(task: String,
|
|
868
871
|
}
|
869
872
|
|
870
873
|
/**
|
871
|
-
|
874
|
+
Easily build and sign your app (via _gym_)
|
872
875
|
|
873
876
|
- parameters:
|
874
877
|
- workspace: Path to the workspace file
|
@@ -881,6 +884,7 @@ func buildAndroidApp(task: String,
|
|
881
884
|
- silent: Hide all information that's not necessary while building
|
882
885
|
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
883
886
|
- skipPackageIpa: Should we skip packaging the ipa?
|
887
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
884
888
|
- includeSymbols: Should the ipa file include symbols?
|
885
889
|
- includeBitcode: Should the ipa file include bitcode?
|
886
890
|
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
@@ -889,6 +893,8 @@ func buildAndroidApp(task: String,
|
|
889
893
|
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
890
894
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
891
895
|
- skipCodesigning: Build without codesigning
|
896
|
+
- catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
|
897
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
892
898
|
- buildPath: The directory in which the archive should be stored in
|
893
899
|
- archivePath: The path to the created archive
|
894
900
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -911,6 +917,7 @@ func buildAndroidApp(task: String,
|
|
911
917
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
912
918
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
913
919
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
920
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
914
921
|
|
915
922
|
- returns: The absolute path to the generated ipa file
|
916
923
|
|
@@ -926,6 +933,7 @@ func buildApp(workspace: String? = nil,
|
|
926
933
|
silent: Bool = false,
|
927
934
|
codesigningIdentity: String? = nil,
|
928
935
|
skipPackageIpa: Bool = false,
|
936
|
+
skipPackagePkg: Bool = false,
|
929
937
|
includeSymbols: Bool? = nil,
|
930
938
|
includeBitcode: Bool? = nil,
|
931
939
|
exportMethod: String? = nil,
|
@@ -934,6 +942,8 @@ func buildApp(workspace: String? = nil,
|
|
934
942
|
skipBuildArchive: Bool? = nil,
|
935
943
|
skipArchive: Bool? = nil,
|
936
944
|
skipCodesigning: Bool? = nil,
|
945
|
+
catalystPlatform: String? = nil,
|
946
|
+
installerCertName: String? = nil,
|
937
947
|
buildPath: String? = nil,
|
938
948
|
archivePath: String? = nil,
|
939
949
|
derivedDataPath: String? = nil,
|
@@ -955,7 +965,8 @@ func buildApp(workspace: String? = nil,
|
|
955
965
|
xcprettyReportJson: String? = nil,
|
956
966
|
analyzeBuildTime: Bool? = nil,
|
957
967
|
xcprettyUtf: Bool? = nil,
|
958
|
-
skipProfileDetection: Bool = false
|
968
|
+
skipProfileDetection: Bool = false,
|
969
|
+
clonedSourcePackagesPath: String? = nil) {
|
959
970
|
let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
960
971
|
RubyCommand.Argument(name: "project", value: project),
|
961
972
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -966,6 +977,7 @@ func buildApp(workspace: String? = nil,
|
|
966
977
|
RubyCommand.Argument(name: "silent", value: silent),
|
967
978
|
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
968
979
|
RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
|
980
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
969
981
|
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
970
982
|
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
971
983
|
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
@@ -974,6 +986,8 @@ func buildApp(workspace: String? = nil,
|
|
974
986
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
975
987
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
976
988
|
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
989
|
+
RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
|
990
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
977
991
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
978
992
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
979
993
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -995,12 +1009,13 @@ func buildApp(workspace: String? = nil,
|
|
995
1009
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
996
1010
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
997
1011
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
998
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
1012
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1013
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
999
1014
|
_ = runner.executeCommand(command)
|
1000
1015
|
}
|
1001
1016
|
|
1002
1017
|
/**
|
1003
|
-
|
1018
|
+
Alias for the `build_app` action but only for iOS
|
1004
1019
|
|
1005
1020
|
- parameters:
|
1006
1021
|
- workspace: Path to the workspace file
|
@@ -1043,6 +1058,7 @@ func buildApp(workspace: String? = nil,
|
|
1043
1058
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
1044
1059
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
1045
1060
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
1061
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1046
1062
|
|
1047
1063
|
- returns: The absolute path to the generated ipa file
|
1048
1064
|
|
@@ -1087,7 +1103,8 @@ func buildIosApp(workspace: String? = nil,
|
|
1087
1103
|
xcprettyReportJson: String? = nil,
|
1088
1104
|
analyzeBuildTime: Bool? = nil,
|
1089
1105
|
xcprettyUtf: Bool? = nil,
|
1090
|
-
skipProfileDetection: Bool = false
|
1106
|
+
skipProfileDetection: Bool = false,
|
1107
|
+
clonedSourcePackagesPath: String? = nil) {
|
1091
1108
|
let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1092
1109
|
RubyCommand.Argument(name: "project", value: project),
|
1093
1110
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -1127,7 +1144,146 @@ func buildIosApp(workspace: String? = nil,
|
|
1127
1144
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
1128
1145
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
1129
1146
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
1130
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
1147
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1148
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1149
|
+
_ = runner.executeCommand(command)
|
1150
|
+
}
|
1151
|
+
|
1152
|
+
/**
|
1153
|
+
Alias for the `build_app` action but only for macOS
|
1154
|
+
|
1155
|
+
- parameters:
|
1156
|
+
- workspace: Path to the workspace file
|
1157
|
+
- project: Path to the project file
|
1158
|
+
- scheme: The project's scheme. Make sure it's marked as `Shared`
|
1159
|
+
- clean: Should the project be cleaned before building it?
|
1160
|
+
- outputDirectory: The directory in which the ipa file should be stored in
|
1161
|
+
- outputName: The name of the resulting ipa file
|
1162
|
+
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
1163
|
+
- silent: Hide all information that's not necessary while building
|
1164
|
+
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
1165
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
1166
|
+
- includeSymbols: Should the ipa file include symbols?
|
1167
|
+
- includeBitcode: Should the ipa file include bitcode?
|
1168
|
+
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
1169
|
+
- exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
|
1170
|
+
- exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
1171
|
+
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
1172
|
+
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
1173
|
+
- skipCodesigning: Build without codesigning
|
1174
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
1175
|
+
- buildPath: The directory in which the archive should be stored in
|
1176
|
+
- archivePath: The path to the created archive
|
1177
|
+
- derivedDataPath: The directory where built products and other derived data will go
|
1178
|
+
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
1179
|
+
- resultBundlePath: Path to the result bundle directory to create. Ignored if `result_bundle` if false
|
1180
|
+
- buildlogPath: The directory where to store the build log
|
1181
|
+
- sdk: The SDK that should be used for building the application
|
1182
|
+
- toolchain: The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)
|
1183
|
+
- destination: Use a custom destination for building the app
|
1184
|
+
- exportTeamId: Optional: Sometimes you need to specify a team id when exporting the ipa file
|
1185
|
+
- xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
1186
|
+
- xcconfig: Use an extra XCCONFIG file to build your app
|
1187
|
+
- suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
|
1188
|
+
- disableXcpretty: Disable xcpretty formatting of build output
|
1189
|
+
- xcprettyTestFormat: Use the test (RSpec style) format for build output
|
1190
|
+
- xcprettyFormatter: A custom xcpretty formatter to use
|
1191
|
+
- xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
|
1192
|
+
- xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
|
1193
|
+
- xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
|
1194
|
+
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
1195
|
+
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
1196
|
+
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
1197
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1198
|
+
|
1199
|
+
- returns: The absolute path to the generated ipa file
|
1200
|
+
|
1201
|
+
More information: https://fastlane.tools/gym
|
1202
|
+
*/
|
1203
|
+
func buildMacApp(workspace: String? = nil,
|
1204
|
+
project: String? = nil,
|
1205
|
+
scheme: String? = nil,
|
1206
|
+
clean: Bool = false,
|
1207
|
+
outputDirectory: String = ".",
|
1208
|
+
outputName: String? = nil,
|
1209
|
+
configuration: String? = nil,
|
1210
|
+
silent: Bool = false,
|
1211
|
+
codesigningIdentity: String? = nil,
|
1212
|
+
skipPackagePkg: Bool = false,
|
1213
|
+
includeSymbols: Bool? = nil,
|
1214
|
+
includeBitcode: Bool? = nil,
|
1215
|
+
exportMethod: String? = nil,
|
1216
|
+
exportOptions: [String : Any]? = nil,
|
1217
|
+
exportXcargs: String? = nil,
|
1218
|
+
skipBuildArchive: Bool? = nil,
|
1219
|
+
skipArchive: Bool? = nil,
|
1220
|
+
skipCodesigning: Bool? = nil,
|
1221
|
+
installerCertName: String? = nil,
|
1222
|
+
buildPath: String? = nil,
|
1223
|
+
archivePath: String? = nil,
|
1224
|
+
derivedDataPath: String? = nil,
|
1225
|
+
resultBundle: Bool = false,
|
1226
|
+
resultBundlePath: String? = nil,
|
1227
|
+
buildlogPath: String = "~/Library/Logs/gym",
|
1228
|
+
sdk: String? = nil,
|
1229
|
+
toolchain: String? = nil,
|
1230
|
+
destination: String? = nil,
|
1231
|
+
exportTeamId: String? = nil,
|
1232
|
+
xcargs: String? = nil,
|
1233
|
+
xcconfig: String? = nil,
|
1234
|
+
suppressXcodeOutput: Bool? = nil,
|
1235
|
+
disableXcpretty: Bool? = nil,
|
1236
|
+
xcprettyTestFormat: Bool? = nil,
|
1237
|
+
xcprettyFormatter: String? = nil,
|
1238
|
+
xcprettyReportJunit: String? = nil,
|
1239
|
+
xcprettyReportHtml: String? = nil,
|
1240
|
+
xcprettyReportJson: String? = nil,
|
1241
|
+
analyzeBuildTime: Bool? = nil,
|
1242
|
+
xcprettyUtf: Bool? = nil,
|
1243
|
+
skipProfileDetection: Bool = false,
|
1244
|
+
clonedSourcePackagesPath: String? = nil) {
|
1245
|
+
let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1246
|
+
RubyCommand.Argument(name: "project", value: project),
|
1247
|
+
RubyCommand.Argument(name: "scheme", value: scheme),
|
1248
|
+
RubyCommand.Argument(name: "clean", value: clean),
|
1249
|
+
RubyCommand.Argument(name: "output_directory", value: outputDirectory),
|
1250
|
+
RubyCommand.Argument(name: "output_name", value: outputName),
|
1251
|
+
RubyCommand.Argument(name: "configuration", value: configuration),
|
1252
|
+
RubyCommand.Argument(name: "silent", value: silent),
|
1253
|
+
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
1254
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
1255
|
+
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
1256
|
+
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
1257
|
+
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
1258
|
+
RubyCommand.Argument(name: "export_options", value: exportOptions),
|
1259
|
+
RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
|
1260
|
+
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
1261
|
+
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
1262
|
+
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
1263
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
1264
|
+
RubyCommand.Argument(name: "build_path", value: buildPath),
|
1265
|
+
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
1266
|
+
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
1267
|
+
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1268
|
+
RubyCommand.Argument(name: "result_bundle_path", value: resultBundlePath),
|
1269
|
+
RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
|
1270
|
+
RubyCommand.Argument(name: "sdk", value: sdk),
|
1271
|
+
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
1272
|
+
RubyCommand.Argument(name: "destination", value: destination),
|
1273
|
+
RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
|
1274
|
+
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
1275
|
+
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
1276
|
+
RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
|
1277
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
|
1278
|
+
RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
|
1279
|
+
RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
|
1280
|
+
RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
|
1281
|
+
RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
|
1282
|
+
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
1283
|
+
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
1284
|
+
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
1285
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
1286
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1131
1287
|
_ = runner.executeCommand(command)
|
1132
1288
|
}
|
1133
1289
|
|
@@ -1305,6 +1461,8 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1305
1461
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
1306
1462
|
- namespaceLogFiles: Separate the log files per device and per language
|
1307
1463
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1464
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1465
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1308
1466
|
*/
|
1309
1467
|
func captureIosScreenshots(workspace: String? = nil,
|
1310
1468
|
project: String? = nil,
|
@@ -1339,7 +1497,9 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1339
1497
|
resultBundle: Bool = false,
|
1340
1498
|
testTargetName: String? = nil,
|
1341
1499
|
namespaceLogFiles: Any? = nil,
|
1342
|
-
concurrentSimulators: Bool = true
|
1500
|
+
concurrentSimulators: Bool = true,
|
1501
|
+
disableSlideToType: Bool = false,
|
1502
|
+
clonedSourcePackagesPath: String? = nil) {
|
1343
1503
|
let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1344
1504
|
RubyCommand.Argument(name: "project", value: project),
|
1345
1505
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1373,7 +1533,9 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1373
1533
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1374
1534
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
1375
1535
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1376
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
1536
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1537
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1538
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1377
1539
|
_ = runner.executeCommand(command)
|
1378
1540
|
}
|
1379
1541
|
|
@@ -1415,6 +1577,8 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1415
1577
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
1416
1578
|
- namespaceLogFiles: Separate the log files per device and per language
|
1417
1579
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
1580
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1581
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1418
1582
|
*/
|
1419
1583
|
func captureScreenshots(workspace: String? = nil,
|
1420
1584
|
project: String? = nil,
|
@@ -1449,7 +1613,9 @@ func captureScreenshots(workspace: String? = nil,
|
|
1449
1613
|
resultBundle: Bool = false,
|
1450
1614
|
testTargetName: String? = nil,
|
1451
1615
|
namespaceLogFiles: Any? = nil,
|
1452
|
-
concurrentSimulators: Bool = true
|
1616
|
+
concurrentSimulators: Bool = true,
|
1617
|
+
disableSlideToType: Bool = false,
|
1618
|
+
clonedSourcePackagesPath: String? = nil) {
|
1453
1619
|
let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1454
1620
|
RubyCommand.Argument(name: "project", value: project),
|
1455
1621
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1483,7 +1649,9 @@ func captureScreenshots(workspace: String? = nil,
|
|
1483
1649
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
1484
1650
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
1485
1651
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
1486
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
1652
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1653
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1654
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
1487
1655
|
_ = runner.executeCommand(command)
|
1488
1656
|
}
|
1489
1657
|
|
@@ -1560,6 +1728,7 @@ func carthage(command: String = "bootstrap",
|
|
1560
1728
|
|
1561
1729
|
- parameters:
|
1562
1730
|
- development: Create a development certificate instead of a distribution one
|
1731
|
+
- type: Create specific certificate type (takes precedence over :development)
|
1563
1732
|
- force: Create a certificate even if an existing certificate exists
|
1564
1733
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
1565
1734
|
- username: Your Apple ID Username
|
@@ -1575,6 +1744,7 @@ func carthage(command: String = "bootstrap",
|
|
1575
1744
|
Use this action to download the latest code signing identity.
|
1576
1745
|
*/
|
1577
1746
|
func cert(development: Bool = false,
|
1747
|
+
type: String? = nil,
|
1578
1748
|
force: Bool = false,
|
1579
1749
|
generateAppleCerts: Bool = true,
|
1580
1750
|
username: String,
|
@@ -1584,8 +1754,9 @@ func cert(development: Bool = false,
|
|
1584
1754
|
outputPath: String = ".",
|
1585
1755
|
keychainPath: String,
|
1586
1756
|
keychainPassword: String? = nil,
|
1587
|
-
platform:
|
1757
|
+
platform: String = "ios") {
|
1588
1758
|
let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
|
1759
|
+
RubyCommand.Argument(name: "type", value: type),
|
1589
1760
|
RubyCommand.Argument(name: "force", value: force),
|
1590
1761
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
1591
1762
|
RubyCommand.Argument(name: "username", value: username),
|
@@ -1951,7 +2122,7 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
1951
2122
|
}
|
1952
2123
|
|
1953
2124
|
/**
|
1954
|
-
|
2125
|
+
Refer to [Firebase App Distribution](https://appdistro.page.link/fastlane-repo)
|
1955
2126
|
|
1956
2127
|
- parameters:
|
1957
2128
|
- ipaPath: Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action
|
@@ -1966,6 +2137,10 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
1966
2137
|
- notifications: Crashlytics notification option (true/false)
|
1967
2138
|
- debug: Crashlytics debug option (true/false)
|
1968
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
|
+
|
1969
2144
|
Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
|
1970
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.
|
1971
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.
|
@@ -2142,6 +2317,7 @@ func createKeychain(name: String? = nil,
|
|
2142
2317
|
- title: The title of the pull request
|
2143
2318
|
- body: The contents of the pull request
|
2144
2319
|
- labels: The labels for the pull request
|
2320
|
+
- milestone: The milestone ID (Integer) for the pull request
|
2145
2321
|
- head: The name of the branch where your changes are implemented (defaults to the current branch name)
|
2146
2322
|
- base: The name of the branch you want your changes pulled into (defaults to `master`)
|
2147
2323
|
- apiUrl: The URL of GitHub API - used when the Enterprise (default to `https://api.github.com`)
|
@@ -2156,6 +2332,7 @@ func createPullRequest(apiToken: String,
|
|
2156
2332
|
title: String,
|
2157
2333
|
body: String? = nil,
|
2158
2334
|
labels: [String]? = nil,
|
2335
|
+
milestone: String? = nil,
|
2159
2336
|
head: String? = nil,
|
2160
2337
|
base: String = "master",
|
2161
2338
|
apiUrl: String = "https://api.github.com",
|
@@ -2167,6 +2344,7 @@ func createPullRequest(apiToken: String,
|
|
2167
2344
|
RubyCommand.Argument(name: "title", value: title),
|
2168
2345
|
RubyCommand.Argument(name: "body", value: body),
|
2169
2346
|
RubyCommand.Argument(name: "labels", value: labels),
|
2347
|
+
RubyCommand.Argument(name: "milestone", value: milestone),
|
2170
2348
|
RubyCommand.Argument(name: "head", value: head),
|
2171
2349
|
RubyCommand.Argument(name: "base", value: base),
|
2172
2350
|
RubyCommand.Argument(name: "api_url", value: apiUrl),
|
@@ -2275,8 +2453,8 @@ func deleteKeychain(name: String? = nil,
|
|
2275
2453
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
2276
2454
|
- submitForReview: Submit the new version for Review after uploading everything
|
2277
2455
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
2278
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
2279
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
2456
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
2457
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
2280
2458
|
- phasedRelease: Enable the phased release feature of iTC
|
2281
2459
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
2282
2460
|
- priceTier: The price tier of this application
|
@@ -2583,7 +2761,7 @@ func downloadDsyms(username: String,
|
|
2583
2761
|
func downloadFromPlayStore(packageName: String,
|
2584
2762
|
versionName: String? = nil,
|
2585
2763
|
track: String = "production",
|
2586
|
-
metadataPath: String
|
2764
|
+
metadataPath: String = "./metadata",
|
2587
2765
|
key: String? = nil,
|
2588
2766
|
issuer: String? = nil,
|
2589
2767
|
jsonKey: String? = nil,
|
@@ -2658,7 +2836,7 @@ func ensureEnvVars(envVars: [String]) {
|
|
2658
2836
|
/**
|
2659
2837
|
Raises an exception if not on a specific git branch
|
2660
2838
|
|
2661
|
-
- parameter branch: The branch that should be checked for. String that can be either the full name of the branch or a regex to match
|
2839
|
+
- parameter branch: The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. `^feature/.*$` to match
|
2662
2840
|
|
2663
2841
|
This action will check if your git repo is checked out to a specific branch.
|
2664
2842
|
You may only want to make releases from a specific branch, so `ensure_git_branch` will stop a lane if it was accidentally executed on an incorrect branch.
|
@@ -2718,14 +2896,19 @@ func ensureNoDebugCode(text: String,
|
|
2718
2896
|
/**
|
2719
2897
|
Ensure the right version of Xcode is used
|
2720
2898
|
|
2721
|
-
-
|
2899
|
+
- parameters:
|
2900
|
+
- version: Xcode version to verify that is selected
|
2901
|
+
- strict: Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. `11.3` == `11.3.x`)
|
2722
2902
|
|
2723
2903
|
If building your app requires a specific version of Xcode, you can invoke this command before using gym.
|
2724
2904
|
For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail.
|
2725
2905
|
You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file.
|
2906
|
+
Using the `strict` parameter, you can either verify the full set of version numbers strictly (i.e. `11.3.1`) or only a subset of them (i.e. `11.3` or `11`).
|
2726
2907
|
*/
|
2727
|
-
func ensureXcodeVersion(version: String? = nil
|
2728
|
-
|
2908
|
+
func ensureXcodeVersion(version: String? = nil,
|
2909
|
+
strict: Bool = true) {
|
2910
|
+
let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
|
2911
|
+
RubyCommand.Argument(name: "strict", value: strict)])
|
2729
2912
|
_ = runner.executeCommand(command)
|
2730
2913
|
}
|
2731
2914
|
|
@@ -2807,10 +2990,15 @@ func flock(message: String,
|
|
2807
2990
|
- forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
|
2808
2991
|
- useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
|
2809
2992
|
- useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
|
2993
|
+
- useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
|
2810
2994
|
- useLegacyIphonex: Use iPhone X instead of iPhone XS frames
|
2995
|
+
- useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
|
2996
|
+
- useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
|
2997
|
+
- useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
|
2811
2998
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
2812
2999
|
- debugMode: Output debug information in framed screenshots
|
2813
3000
|
- resume: Resume frameit instead of reprocessing all screenshots
|
3001
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
|
2814
3002
|
- path: The path to the directory containing the screenshots
|
2815
3003
|
|
2816
3004
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -2823,10 +3011,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
2823
3011
|
forceDeviceType: String? = nil,
|
2824
3012
|
useLegacyIphone5s: Bool = false,
|
2825
3013
|
useLegacyIphone6s: Bool = false,
|
3014
|
+
useLegacyIphone7: Bool = false,
|
2826
3015
|
useLegacyIphonex: Bool = false,
|
3016
|
+
useLegacyIphonexr: Bool = false,
|
3017
|
+
useLegacyIphonexs: Bool = false,
|
3018
|
+
useLegacyIphonexsmax: Bool = false,
|
2827
3019
|
forceOrientationBlock: String? = nil,
|
2828
3020
|
debugMode: Bool = false,
|
2829
3021
|
resume: Bool = false,
|
3022
|
+
usePlatform: String = "IOS",
|
2830
3023
|
path: String = "./") {
|
2831
3024
|
let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
|
2832
3025
|
RubyCommand.Argument(name: "silver", value: silver),
|
@@ -2835,10 +3028,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
2835
3028
|
RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
|
2836
3029
|
RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
|
2837
3030
|
RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
|
3031
|
+
RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
|
2838
3032
|
RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
|
3033
|
+
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3034
|
+
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3035
|
+
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
2839
3036
|
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
2840
3037
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
2841
3038
|
RubyCommand.Argument(name: "resume", value: resume),
|
3039
|
+
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
2842
3040
|
RubyCommand.Argument(name: "path", value: path)])
|
2843
3041
|
_ = runner.executeCommand(command)
|
2844
3042
|
}
|
@@ -2854,10 +3052,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
2854
3052
|
- forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
|
2855
3053
|
- useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
|
2856
3054
|
- useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
|
3055
|
+
- useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
|
2857
3056
|
- useLegacyIphonex: Use iPhone X instead of iPhone XS frames
|
3057
|
+
- useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
|
3058
|
+
- useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
|
3059
|
+
- useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
|
2858
3060
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
2859
3061
|
- debugMode: Output debug information in framed screenshots
|
2860
3062
|
- resume: Resume frameit instead of reprocessing all screenshots
|
3063
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
|
2861
3064
|
- path: The path to the directory containing the screenshots
|
2862
3065
|
|
2863
3066
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -2870,10 +3073,15 @@ func frameit(white: Bool? = nil,
|
|
2870
3073
|
forceDeviceType: String? = nil,
|
2871
3074
|
useLegacyIphone5s: Bool = false,
|
2872
3075
|
useLegacyIphone6s: Bool = false,
|
3076
|
+
useLegacyIphone7: Bool = false,
|
2873
3077
|
useLegacyIphonex: Bool = false,
|
3078
|
+
useLegacyIphonexr: Bool = false,
|
3079
|
+
useLegacyIphonexs: Bool = false,
|
3080
|
+
useLegacyIphonexsmax: Bool = false,
|
2874
3081
|
forceOrientationBlock: String? = nil,
|
2875
3082
|
debugMode: Bool = false,
|
2876
3083
|
resume: Bool = false,
|
3084
|
+
usePlatform: String = "IOS",
|
2877
3085
|
path: String = "./") {
|
2878
3086
|
let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
|
2879
3087
|
RubyCommand.Argument(name: "silver", value: silver),
|
@@ -2882,10 +3090,15 @@ func frameit(white: Bool? = nil,
|
|
2882
3090
|
RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
|
2883
3091
|
RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
|
2884
3092
|
RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
|
3093
|
+
RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
|
2885
3094
|
RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
|
3095
|
+
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3096
|
+
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3097
|
+
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
2886
3098
|
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
2887
3099
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
2888
3100
|
RubyCommand.Argument(name: "resume", value: resume),
|
3101
|
+
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
2889
3102
|
RubyCommand.Argument(name: "path", value: path)])
|
2890
3103
|
_ = runner.executeCommand(command)
|
2891
3104
|
}
|
@@ -2938,6 +3151,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
|
2938
3151
|
|
2939
3152
|
- parameters:
|
2940
3153
|
- development: Create a development certificate instead of a distribution one
|
3154
|
+
- type: Create specific certificate type (takes precedence over :development)
|
2941
3155
|
- force: Create a certificate even if an existing certificate exists
|
2942
3156
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
2943
3157
|
- username: Your Apple ID Username
|
@@ -2953,6 +3167,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
|
2953
3167
|
Use this action to download the latest code signing identity.
|
2954
3168
|
*/
|
2955
3169
|
func getCertificates(development: Bool = false,
|
3170
|
+
type: String? = nil,
|
2956
3171
|
force: Bool = false,
|
2957
3172
|
generateAppleCerts: Bool = true,
|
2958
3173
|
username: String,
|
@@ -2962,8 +3177,9 @@ func getCertificates(development: Bool = false,
|
|
2962
3177
|
outputPath: String = ".",
|
2963
3178
|
keychainPath: String,
|
2964
3179
|
keychainPassword: String? = nil,
|
2965
|
-
platform:
|
3180
|
+
platform: String = "ios") {
|
2966
3181
|
let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
|
3182
|
+
RubyCommand.Argument(name: "type", value: type),
|
2967
3183
|
RubyCommand.Argument(name: "force", value: force),
|
2968
3184
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
2969
3185
|
RubyCommand.Argument(name: "username", value: username),
|
@@ -3425,6 +3641,7 @@ func googlePlayTrackVersionCodes(packageName: String,
|
|
3425
3641
|
- task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
|
3426
3642
|
- flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
|
3427
3643
|
- buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
|
3644
|
+
- tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
|
3428
3645
|
- flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
|
3429
3646
|
- projectDir: The root directory of the gradle project
|
3430
3647
|
- gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
|
@@ -3438,9 +3655,10 @@ func googlePlayTrackVersionCodes(packageName: String,
|
|
3438
3655
|
|
3439
3656
|
Run `./gradlew tasks` to get a list of all available gradle tasks for your project
|
3440
3657
|
*/
|
3441
|
-
func gradle(task: String,
|
3658
|
+
func gradle(task: String? = nil,
|
3442
3659
|
flavor: String? = nil,
|
3443
3660
|
buildType: String? = nil,
|
3661
|
+
tasks: [String]? = nil,
|
3444
3662
|
flags: String? = nil,
|
3445
3663
|
projectDir: String = ".",
|
3446
3664
|
gradlePath: String? = nil,
|
@@ -3452,6 +3670,7 @@ func gradle(task: String,
|
|
3452
3670
|
let command = RubyCommand(commandID: "", methodName: "gradle", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
|
3453
3671
|
RubyCommand.Argument(name: "flavor", value: flavor),
|
3454
3672
|
RubyCommand.Argument(name: "build_type", value: buildType),
|
3673
|
+
RubyCommand.Argument(name: "tasks", value: tasks),
|
3455
3674
|
RubyCommand.Argument(name: "flags", value: flags),
|
3456
3675
|
RubyCommand.Argument(name: "project_dir", value: projectDir),
|
3457
3676
|
RubyCommand.Argument(name: "gradle_path", value: gradlePath),
|
@@ -3464,7 +3683,7 @@ func gradle(task: String,
|
|
3464
3683
|
}
|
3465
3684
|
|
3466
3685
|
/**
|
3467
|
-
Alias for the `
|
3686
|
+
Alias for the `build_app` action
|
3468
3687
|
|
3469
3688
|
- parameters:
|
3470
3689
|
- workspace: Path to the workspace file
|
@@ -3477,6 +3696,7 @@ func gradle(task: String,
|
|
3477
3696
|
- silent: Hide all information that's not necessary while building
|
3478
3697
|
- codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
|
3479
3698
|
- skipPackageIpa: Should we skip packaging the ipa?
|
3699
|
+
- skipPackagePkg: Should we skip packaging the pkg?
|
3480
3700
|
- includeSymbols: Should the ipa file include symbols?
|
3481
3701
|
- includeBitcode: Should the ipa file include bitcode?
|
3482
3702
|
- exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
@@ -3485,6 +3705,8 @@ func gradle(task: String,
|
|
3485
3705
|
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
3486
3706
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
3487
3707
|
- skipCodesigning: Build without codesigning
|
3708
|
+
- catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
|
3709
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
3488
3710
|
- buildPath: The directory in which the archive should be stored in
|
3489
3711
|
- archivePath: The path to the created archive
|
3490
3712
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -3507,6 +3729,7 @@ func gradle(task: String,
|
|
3507
3729
|
- analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
|
3508
3730
|
- xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
|
3509
3731
|
- skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
|
3732
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
3510
3733
|
|
3511
3734
|
- returns: The absolute path to the generated ipa file
|
3512
3735
|
|
@@ -3522,6 +3745,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3522
3745
|
silent: Bool = gymfile.silent,
|
3523
3746
|
codesigningIdentity: Any? = gymfile.codesigningIdentity,
|
3524
3747
|
skipPackageIpa: Bool = gymfile.skipPackageIpa,
|
3748
|
+
skipPackagePkg: Bool = gymfile.skipPackagePkg,
|
3525
3749
|
includeSymbols: Bool? = gymfile.includeSymbols,
|
3526
3750
|
includeBitcode: Bool? = gymfile.includeBitcode,
|
3527
3751
|
exportMethod: Any? = gymfile.exportMethod,
|
@@ -3530,6 +3754,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3530
3754
|
skipBuildArchive: Bool? = gymfile.skipBuildArchive,
|
3531
3755
|
skipArchive: Bool? = gymfile.skipArchive,
|
3532
3756
|
skipCodesigning: Bool? = gymfile.skipCodesigning,
|
3757
|
+
catalystPlatform: Any? = gymfile.catalystPlatform,
|
3758
|
+
installerCertName: Any? = gymfile.installerCertName,
|
3533
3759
|
buildPath: Any? = gymfile.buildPath,
|
3534
3760
|
archivePath: Any? = gymfile.archivePath,
|
3535
3761
|
derivedDataPath: Any? = gymfile.derivedDataPath,
|
@@ -3551,7 +3777,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3551
3777
|
xcprettyReportJson: Any? = gymfile.xcprettyReportJson,
|
3552
3778
|
analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
|
3553
3779
|
xcprettyUtf: Bool? = gymfile.xcprettyUtf,
|
3554
|
-
skipProfileDetection: Bool = gymfile.skipProfileDetection
|
3780
|
+
skipProfileDetection: Bool = gymfile.skipProfileDetection,
|
3781
|
+
clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath) {
|
3555
3782
|
let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
3556
3783
|
RubyCommand.Argument(name: "project", value: project),
|
3557
3784
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
@@ -3562,6 +3789,7 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3562
3789
|
RubyCommand.Argument(name: "silent", value: silent),
|
3563
3790
|
RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
|
3564
3791
|
RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
|
3792
|
+
RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
|
3565
3793
|
RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
|
3566
3794
|
RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
|
3567
3795
|
RubyCommand.Argument(name: "export_method", value: exportMethod),
|
@@ -3570,6 +3798,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3570
3798
|
RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
|
3571
3799
|
RubyCommand.Argument(name: "skip_archive", value: skipArchive),
|
3572
3800
|
RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
|
3801
|
+
RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
|
3802
|
+
RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
|
3573
3803
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
3574
3804
|
RubyCommand.Argument(name: "archive_path", value: archivePath),
|
3575
3805
|
RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
|
@@ -3591,7 +3821,8 @@ func gym(workspace: Any? = gymfile.workspace,
|
|
3591
3821
|
RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
|
3592
3822
|
RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
|
3593
3823
|
RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
|
3594
|
-
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)
|
3824
|
+
RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
|
3825
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
3595
3826
|
_ = runner.executeCommand(command)
|
3596
3827
|
}
|
3597
3828
|
|
@@ -4226,7 +4457,8 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4226
4457
|
Alias for the `sync_code_signing` action
|
4227
4458
|
|
4228
4459
|
- parameters:
|
4229
|
-
- type: Define the profile type, can be appstore, adhoc, development, enterprise
|
4460
|
+
- type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
|
4461
|
+
- additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
|
4230
4462
|
- readonly: Only fetch existing certificates and profiles, don't generate new ones
|
4231
4463
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
4232
4464
|
- skipProvisioningProfiles: Skip syncing provisioning profiles
|
@@ -4246,13 +4478,17 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4246
4478
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
4247
4479
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
4248
4480
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
4481
|
+
- s3Region: Name of the S3 region
|
4482
|
+
- s3AccessKey: S3 access key
|
4483
|
+
- s3SecretAccessKey: S3 secret secret access key
|
4484
|
+
- s3Bucket: Name of the S3 bucket
|
4249
4485
|
- keychainName: Keychain the items should be imported to
|
4250
4486
|
- 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
|
4251
4487
|
- force: Renew the provisioning profiles every time you run match
|
4252
4488
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
|
4253
4489
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
4254
4490
|
- skipDocs: Skip generation of a README.md for the created git repository
|
4255
|
-
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
|
4491
|
+
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
4256
4492
|
- 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")
|
4257
4493
|
- outputPath: Path in which to export certificates, key and profile
|
4258
4494
|
- verbose: Print out extra information and all commands
|
@@ -4260,6 +4496,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4260
4496
|
More information: https://docs.fastlane.tools/actions/match/
|
4261
4497
|
*/
|
4262
4498
|
func match(type: Any = matchfile.type,
|
4499
|
+
additionalCertTypes: [String]? = matchfile.additionalCertTypes,
|
4263
4500
|
readonly: Bool = matchfile.readonly,
|
4264
4501
|
generateAppleCerts: Bool = matchfile.generateAppleCerts,
|
4265
4502
|
skipProvisioningProfiles: Bool = matchfile.skipProvisioningProfiles,
|
@@ -4279,6 +4516,10 @@ func match(type: Any = matchfile.type,
|
|
4279
4516
|
googleCloudBucketName: Any? = matchfile.googleCloudBucketName,
|
4280
4517
|
googleCloudKeysFile: Any? = matchfile.googleCloudKeysFile,
|
4281
4518
|
googleCloudProjectId: Any? = matchfile.googleCloudProjectId,
|
4519
|
+
s3Region: Any? = matchfile.s3Region,
|
4520
|
+
s3AccessKey: Any? = matchfile.s3AccessKey,
|
4521
|
+
s3SecretAccessKey: Any? = matchfile.s3SecretAccessKey,
|
4522
|
+
s3Bucket: Any? = matchfile.s3Bucket,
|
4282
4523
|
keychainName: Any = matchfile.keychainName,
|
4283
4524
|
keychainPassword: Any? = matchfile.keychainPassword,
|
4284
4525
|
force: Bool = matchfile.force,
|
@@ -4290,6 +4531,7 @@ func match(type: Any = matchfile.type,
|
|
4290
4531
|
outputPath: Any? = matchfile.outputPath,
|
4291
4532
|
verbose: Bool = matchfile.verbose) {
|
4292
4533
|
let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
4534
|
+
RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
|
4293
4535
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
4294
4536
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
4295
4537
|
RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
|
@@ -4309,6 +4551,10 @@ func match(type: Any = matchfile.type,
|
|
4309
4551
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
4310
4552
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
4311
4553
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
4554
|
+
RubyCommand.Argument(name: "s3_region", value: s3Region),
|
4555
|
+
RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
|
4556
|
+
RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
|
4557
|
+
RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
|
4312
4558
|
RubyCommand.Argument(name: "keychain_name", value: keychainName),
|
4313
4559
|
RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
|
4314
4560
|
RubyCommand.Argument(name: "force", value: force),
|
@@ -4417,6 +4663,35 @@ func nexusUpload(file: String,
|
|
4417
4663
|
_ = runner.executeCommand(command)
|
4418
4664
|
}
|
4419
4665
|
|
4666
|
+
/**
|
4667
|
+
Notarizes a macOS app
|
4668
|
+
|
4669
|
+
- parameters:
|
4670
|
+
- package: Path to package to notarize, e.g. .app bundle or disk image
|
4671
|
+
- tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
|
4672
|
+
- bundleId: Bundle identifier to uniquely identify the package
|
4673
|
+
- username: Apple ID username
|
4674
|
+
- ascProvider: Provider short name for accounts associated with multiple providers
|
4675
|
+
- printLog: Whether to print notarization log file, listing issues on failure and warnings on success
|
4676
|
+
- verbose: Whether to log requests
|
4677
|
+
*/
|
4678
|
+
func notarize(package: String,
|
4679
|
+
tryEarlyStapling: Bool = false,
|
4680
|
+
bundleId: String? = nil,
|
4681
|
+
username: String,
|
4682
|
+
ascProvider: String? = nil,
|
4683
|
+
printLog: Bool = false,
|
4684
|
+
verbose: Bool = false) {
|
4685
|
+
let command = RubyCommand(commandID: "", methodName: "notarize", className: nil, args: [RubyCommand.Argument(name: "package", value: package),
|
4686
|
+
RubyCommand.Argument(name: "try_early_stapling", value: tryEarlyStapling),
|
4687
|
+
RubyCommand.Argument(name: "bundle_id", value: bundleId),
|
4688
|
+
RubyCommand.Argument(name: "username", value: username),
|
4689
|
+
RubyCommand.Argument(name: "asc_provider", value: ascProvider),
|
4690
|
+
RubyCommand.Argument(name: "print_log", value: printLog),
|
4691
|
+
RubyCommand.Argument(name: "verbose", value: verbose)])
|
4692
|
+
_ = runner.executeCommand(command)
|
4693
|
+
}
|
4694
|
+
|
4420
4695
|
/**
|
4421
4696
|
Display a macOS notification with custom message and title
|
4422
4697
|
|
@@ -4800,6 +5075,7 @@ func pluginScores(outputPath: String,
|
|
4800
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)
|
4801
5076
|
- skipImportValidation: Lint skips validating that the pod can be imported (available since cocoapods >= 1.3)
|
4802
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)
|
4803
5079
|
|
4804
5080
|
Test the syntax of your Podfile by linting the pod against the files of its directory
|
4805
5081
|
*/
|
@@ -4821,7 +5097,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
4821
5097
|
noSubspecs: Bool = false,
|
4822
5098
|
platforms: String? = nil,
|
4823
5099
|
skipImportValidation: Bool = false,
|
4824
|
-
skipTests: Bool = false
|
5100
|
+
skipTests: Bool = false,
|
5101
|
+
analyze: Bool = false) {
|
4825
5102
|
let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
4826
5103
|
RubyCommand.Argument(name: "podspec", value: podspec),
|
4827
5104
|
RubyCommand.Argument(name: "verbose", value: verbose),
|
@@ -4840,7 +5117,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
4840
5117
|
RubyCommand.Argument(name: "no_subspecs", value: noSubspecs),
|
4841
5118
|
RubyCommand.Argument(name: "platforms", value: platforms),
|
4842
5119
|
RubyCommand.Argument(name: "skip_import_validation", value: skipImportValidation),
|
4843
|
-
RubyCommand.Argument(name: "skip_tests", value: skipTests)
|
5120
|
+
RubyCommand.Argument(name: "skip_tests", value: skipTests),
|
5121
|
+
RubyCommand.Argument(name: "analyze", value: analyze)])
|
4844
5122
|
_ = runner.executeCommand(command)
|
4845
5123
|
}
|
4846
5124
|
|
@@ -5369,6 +5647,7 @@ func rubyVersion() {
|
|
5369
5647
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5370
5648
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5371
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
|
5372
5651
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5373
5652
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5374
5653
|
- clean: Should the project be cleaned before building it?
|
@@ -5389,6 +5668,7 @@ func rubyVersion() {
|
|
5389
5668
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
5390
5669
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
5391
5670
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
5671
|
+
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
5392
5672
|
- maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
|
5393
5673
|
- disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
|
5394
5674
|
- skipBuild: Should debug build be skipped before test build?
|
@@ -5398,6 +5678,8 @@ func rubyVersion() {
|
|
5398
5678
|
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
5399
5679
|
- xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
5400
5680
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
5681
|
+
- appName: App name to use in slack message and logfile name
|
5682
|
+
- deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
|
5401
5683
|
- slackUrl: Create an Incoming WebHook for your Slack group to post results there
|
5402
5684
|
- slackChannel: #channel or @username
|
5403
5685
|
- slackMessage: The message included with each message posted to slack
|
@@ -5409,6 +5691,7 @@ func rubyVersion() {
|
|
5409
5691
|
- destination: Use only if you're a pro, use the other options instead
|
5410
5692
|
- customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
|
5411
5693
|
- xcodebuildCommand: Allows for override of the default `xcodebuild` command
|
5694
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
5412
5695
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
5413
5696
|
|
5414
5697
|
More information: https://docs.fastlane.tools/actions/scan/
|
@@ -5427,6 +5710,7 @@ func runTests(workspace: String? = nil,
|
|
5427
5710
|
appIdentifier: String? = nil,
|
5428
5711
|
onlyTesting: Any? = nil,
|
5429
5712
|
skipTesting: Any? = nil,
|
5713
|
+
testplan: String? = nil,
|
5430
5714
|
xctestrun: String? = nil,
|
5431
5715
|
toolchain: Any? = nil,
|
5432
5716
|
clean: Bool = false,
|
@@ -5447,6 +5731,7 @@ func runTests(workspace: String? = nil,
|
|
5447
5731
|
shouldZipBuildProducts: Bool = false,
|
5448
5732
|
resultBundle: Bool = false,
|
5449
5733
|
useClangReportName: Bool = false,
|
5734
|
+
concurrentWorkers: Int? = nil,
|
5450
5735
|
maxConcurrentSimulators: Int? = nil,
|
5451
5736
|
disableConcurrentTesting: Bool = false,
|
5452
5737
|
skipBuild: Bool = false,
|
@@ -5456,6 +5741,8 @@ func runTests(workspace: String? = nil,
|
|
5456
5741
|
configuration: String? = nil,
|
5457
5742
|
xcargs: String? = nil,
|
5458
5743
|
xcconfig: String? = nil,
|
5744
|
+
appName: String? = nil,
|
5745
|
+
deploymentTargetVersion: String? = nil,
|
5459
5746
|
slackUrl: String? = nil,
|
5460
5747
|
slackChannel: String? = nil,
|
5461
5748
|
slackMessage: String? = nil,
|
@@ -5467,6 +5754,7 @@ func runTests(workspace: String? = nil,
|
|
5467
5754
|
destination: Any? = nil,
|
5468
5755
|
customReportFileName: String? = nil,
|
5469
5756
|
xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
|
5757
|
+
clonedSourcePackagesPath: String? = nil,
|
5470
5758
|
failBuild: Bool = true) {
|
5471
5759
|
let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
5472
5760
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -5482,6 +5770,7 @@ func runTests(workspace: String? = nil,
|
|
5482
5770
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5483
5771
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5484
5772
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
5773
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5485
5774
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5486
5775
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5487
5776
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5502,6 +5791,7 @@ func runTests(workspace: String? = nil,
|
|
5502
5791
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
5503
5792
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
5504
5793
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
5794
|
+
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
5505
5795
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
5506
5796
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
5507
5797
|
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
@@ -5511,6 +5801,8 @@ func runTests(workspace: String? = nil,
|
|
5511
5801
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
5512
5802
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
5513
5803
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
5804
|
+
RubyCommand.Argument(name: "app_name", value: appName),
|
5805
|
+
RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
|
5514
5806
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
5515
5807
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
5516
5808
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
@@ -5522,6 +5814,7 @@ func runTests(workspace: String? = nil,
|
|
5522
5814
|
RubyCommand.Argument(name: "destination", value: destination),
|
5523
5815
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
5524
5816
|
RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
|
5817
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
5525
5818
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
5526
5819
|
_ = runner.executeCommand(command)
|
5527
5820
|
}
|
@@ -5618,6 +5911,7 @@ func say(text: Any,
|
|
5618
5911
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5619
5912
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5620
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
|
5621
5915
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5622
5916
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5623
5917
|
- clean: Should the project be cleaned before building it?
|
@@ -5638,6 +5932,7 @@ func say(text: Any,
|
|
5638
5932
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
5639
5933
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
5640
5934
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
5935
|
+
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
5641
5936
|
- maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
|
5642
5937
|
- disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
|
5643
5938
|
- skipBuild: Should debug build be skipped before test build?
|
@@ -5647,6 +5942,8 @@ func say(text: Any,
|
|
5647
5942
|
- configuration: The configuration to use when building the app. Defaults to 'Release'
|
5648
5943
|
- xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
5649
5944
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
5945
|
+
- appName: App name to use in slack message and logfile name
|
5946
|
+
- deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
|
5650
5947
|
- slackUrl: Create an Incoming WebHook for your Slack group to post results there
|
5651
5948
|
- slackChannel: #channel or @username
|
5652
5949
|
- slackMessage: The message included with each message posted to slack
|
@@ -5658,6 +5955,7 @@ func say(text: Any,
|
|
5658
5955
|
- destination: Use only if you're a pro, use the other options instead
|
5659
5956
|
- customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
|
5660
5957
|
- xcodebuildCommand: Allows for override of the default `xcodebuild` command
|
5958
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
5661
5959
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
5662
5960
|
|
5663
5961
|
More information: https://docs.fastlane.tools/actions/scan/
|
@@ -5676,6 +5974,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5676
5974
|
appIdentifier: Any? = scanfile.appIdentifier,
|
5677
5975
|
onlyTesting: Any? = scanfile.onlyTesting,
|
5678
5976
|
skipTesting: Any? = scanfile.skipTesting,
|
5977
|
+
testplan: Any? = scanfile.testplan,
|
5679
5978
|
xctestrun: Any? = scanfile.xctestrun,
|
5680
5979
|
toolchain: Any? = scanfile.toolchain,
|
5681
5980
|
clean: Bool = scanfile.clean,
|
@@ -5696,6 +5995,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5696
5995
|
shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
|
5697
5996
|
resultBundle: Bool = scanfile.resultBundle,
|
5698
5997
|
useClangReportName: Bool = scanfile.useClangReportName,
|
5998
|
+
concurrentWorkers: Int? = scanfile.concurrentWorkers,
|
5699
5999
|
maxConcurrentSimulators: Int? = scanfile.maxConcurrentSimulators,
|
5700
6000
|
disableConcurrentTesting: Bool = scanfile.disableConcurrentTesting,
|
5701
6001
|
skipBuild: Bool = scanfile.skipBuild,
|
@@ -5705,6 +6005,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5705
6005
|
configuration: Any? = scanfile.configuration,
|
5706
6006
|
xcargs: Any? = scanfile.xcargs,
|
5707
6007
|
xcconfig: Any? = scanfile.xcconfig,
|
6008
|
+
appName: Any? = scanfile.appName,
|
6009
|
+
deploymentTargetVersion: Any? = scanfile.deploymentTargetVersion,
|
5708
6010
|
slackUrl: Any? = scanfile.slackUrl,
|
5709
6011
|
slackChannel: Any? = scanfile.slackChannel,
|
5710
6012
|
slackMessage: Any? = scanfile.slackMessage,
|
@@ -5716,6 +6018,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5716
6018
|
destination: Any? = scanfile.destination,
|
5717
6019
|
customReportFileName: Any? = scanfile.customReportFileName,
|
5718
6020
|
xcodebuildCommand: Any = scanfile.xcodebuildCommand,
|
6021
|
+
clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
|
5719
6022
|
failBuild: Bool = scanfile.failBuild) {
|
5720
6023
|
let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
5721
6024
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -5731,6 +6034,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5731
6034
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5732
6035
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5733
6036
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6037
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5734
6038
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5735
6039
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5736
6040
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5751,6 +6055,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5751
6055
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
5752
6056
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
5753
6057
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
6058
|
+
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
5754
6059
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
5755
6060
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
5756
6061
|
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
@@ -5760,6 +6065,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5760
6065
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
5761
6066
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
5762
6067
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
6068
|
+
RubyCommand.Argument(name: "app_name", value: appName),
|
6069
|
+
RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
|
5763
6070
|
RubyCommand.Argument(name: "slack_url", value: slackUrl),
|
5764
6071
|
RubyCommand.Argument(name: "slack_channel", value: slackChannel),
|
5765
6072
|
RubyCommand.Argument(name: "slack_message", value: slackMessage),
|
@@ -5771,6 +6078,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5771
6078
|
RubyCommand.Argument(name: "destination", value: destination),
|
5772
6079
|
RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
|
5773
6080
|
RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
|
6081
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
5774
6082
|
RubyCommand.Argument(name: "fail_build", value: failBuild)])
|
5775
6083
|
_ = runner.executeCommand(command)
|
5776
6084
|
}
|
@@ -5957,7 +6265,7 @@ Access things like 'html_url', 'tag_name', 'name', 'body'
|
|
5957
6265
|
description: String? = nil,
|
5958
6266
|
isDraft: Bool = false,
|
5959
6267
|
isPrerelease: Bool = false,
|
5960
|
-
uploadAssets: [String]? = nil) -> [String :
|
6268
|
+
uploadAssets: [String]? = nil) -> [String : Any] {
|
5961
6269
|
let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
|
5962
6270
|
RubyCommand.Argument(name: "server_url", value: serverUrl),
|
5963
6271
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
@@ -6444,6 +6752,8 @@ func slather(buildDirectory: String? = nil,
|
|
6444
6752
|
- testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
|
6445
6753
|
- namespaceLogFiles: Separate the log files per device and per language
|
6446
6754
|
- concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
|
6755
|
+
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
6756
|
+
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
6447
6757
|
*/
|
6448
6758
|
func snapshot(workspace: Any? = snapshotfile.workspace,
|
6449
6759
|
project: Any? = snapshotfile.project,
|
@@ -6478,7 +6788,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6478
6788
|
resultBundle: Bool = snapshotfile.resultBundle,
|
6479
6789
|
testTargetName: Any? = snapshotfile.testTargetName,
|
6480
6790
|
namespaceLogFiles: Any? = snapshotfile.namespaceLogFiles,
|
6481
|
-
concurrentSimulators: Bool = snapshotfile.concurrentSimulators
|
6791
|
+
concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
|
6792
|
+
disableSlideToType: Bool = snapshotfile.disableSlideToType,
|
6793
|
+
clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath) {
|
6482
6794
|
let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
6483
6795
|
RubyCommand.Argument(name: "project", value: project),
|
6484
6796
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -6512,7 +6824,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6512
6824
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
6513
6825
|
RubyCommand.Argument(name: "test_target_name", value: testTargetName),
|
6514
6826
|
RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
|
6515
|
-
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)
|
6827
|
+
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
6828
|
+
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
6829
|
+
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
|
6516
6830
|
_ = runner.executeCommand(command)
|
6517
6831
|
}
|
6518
6832
|
|
@@ -6644,6 +6958,7 @@ func splunkmint(dsym: String? = nil,
|
|
6644
6958
|
- xcconfig: Use xcconfig file to override swift package generate-xcodeproj defaults
|
6645
6959
|
- configuration: Build with configuration (debug|release) [default: debug]
|
6646
6960
|
- xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
|
6961
|
+
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
|
6647
6962
|
- verbose: Increase verbosity of informational output
|
6648
6963
|
*/
|
6649
6964
|
func spm(command: String = "build",
|
@@ -6652,6 +6967,7 @@ func spm(command: String = "build",
|
|
6652
6967
|
xcconfig: String? = nil,
|
6653
6968
|
configuration: String? = nil,
|
6654
6969
|
xcprettyOutput: String? = nil,
|
6970
|
+
xcprettyArgs: String? = nil,
|
6655
6971
|
verbose: Bool = false) {
|
6656
6972
|
let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
|
6657
6973
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
@@ -6659,6 +6975,7 @@ func spm(command: String = "build",
|
|
6659
6975
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
6660
6976
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
6661
6977
|
RubyCommand.Argument(name: "xcpretty_output", value: xcprettyOutput),
|
6978
|
+
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
6662
6979
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
6663
6980
|
_ = runner.executeCommand(command)
|
6664
6981
|
}
|
@@ -6738,7 +7055,7 @@ func supply(packageName: String,
|
|
6738
7055
|
releaseStatus: String = "completed",
|
6739
7056
|
track: String = "production",
|
6740
7057
|
rollout: String? = nil,
|
6741
|
-
metadataPath: String
|
7058
|
+
metadataPath: String = "./metadata",
|
6742
7059
|
key: String? = nil,
|
6743
7060
|
issuer: String? = nil,
|
6744
7061
|
jsonKey: String? = nil,
|
@@ -6814,10 +7131,12 @@ func supply(packageName: String,
|
|
6814
7131
|
- strict: Fail on warnings? (true/false)
|
6815
7132
|
- files: List of files to process
|
6816
7133
|
- ignoreExitStatus: Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false)
|
6817
|
-
-
|
7134
|
+
- raiseIfSwiftlintError: Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false)
|
7135
|
+
- reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging
|
6818
7136
|
- quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
|
6819
7137
|
- executable: Path to the `swiftlint` executable on your machine
|
6820
7138
|
- format: Format code when mode is :autocorrect
|
7139
|
+
- noCache: Ignore the cache when mode is :autocorrect or :lint
|
6821
7140
|
- compilerLogPath: Compiler log path when mode is :analyze
|
6822
7141
|
*/
|
6823
7142
|
func swiftlint(mode: Any = "lint",
|
@@ -6827,10 +7146,12 @@ func swiftlint(mode: Any = "lint",
|
|
6827
7146
|
strict: Bool = false,
|
6828
7147
|
files: Any? = nil,
|
6829
7148
|
ignoreExitStatus: Bool = false,
|
7149
|
+
raiseIfSwiftlintError: Bool = false,
|
6830
7150
|
reporter: String? = nil,
|
6831
7151
|
quiet: Bool = false,
|
6832
7152
|
executable: String? = nil,
|
6833
7153
|
format: Bool = false,
|
7154
|
+
noCache: Bool = false,
|
6834
7155
|
compilerLogPath: String? = nil) {
|
6835
7156
|
let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
|
6836
7157
|
RubyCommand.Argument(name: "path", value: path),
|
@@ -6839,10 +7160,12 @@ func swiftlint(mode: Any = "lint",
|
|
6839
7160
|
RubyCommand.Argument(name: "strict", value: strict),
|
6840
7161
|
RubyCommand.Argument(name: "files", value: files),
|
6841
7162
|
RubyCommand.Argument(name: "ignore_exit_status", value: ignoreExitStatus),
|
7163
|
+
RubyCommand.Argument(name: "raise_if_swiftlint_error", value: raiseIfSwiftlintError),
|
6842
7164
|
RubyCommand.Argument(name: "reporter", value: reporter),
|
6843
7165
|
RubyCommand.Argument(name: "quiet", value: quiet),
|
6844
7166
|
RubyCommand.Argument(name: "executable", value: executable),
|
6845
7167
|
RubyCommand.Argument(name: "format", value: format),
|
7168
|
+
RubyCommand.Argument(name: "no_cache", value: noCache),
|
6846
7169
|
RubyCommand.Argument(name: "compiler_log_path", value: compilerLogPath)])
|
6847
7170
|
_ = runner.executeCommand(command)
|
6848
7171
|
}
|
@@ -6851,7 +7174,8 @@ func swiftlint(mode: Any = "lint",
|
|
6851
7174
|
Easily sync your certificates and profiles across your team (via _match_)
|
6852
7175
|
|
6853
7176
|
- parameters:
|
6854
|
-
- type: Define the profile type, can be appstore, adhoc, development, enterprise
|
7177
|
+
- type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
|
7178
|
+
- additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
|
6855
7179
|
- readonly: Only fetch existing certificates and profiles, don't generate new ones
|
6856
7180
|
- generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
|
6857
7181
|
- skipProvisioningProfiles: Skip syncing provisioning profiles
|
@@ -6871,13 +7195,17 @@ func swiftlint(mode: Any = "lint",
|
|
6871
7195
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
6872
7196
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
6873
7197
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
7198
|
+
- s3Region: Name of the S3 region
|
7199
|
+
- s3AccessKey: S3 access key
|
7200
|
+
- s3SecretAccessKey: S3 secret secret access key
|
7201
|
+
- s3Bucket: Name of the S3 bucket
|
6874
7202
|
- keychainName: Keychain the items should be imported to
|
6875
7203
|
- 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
|
6876
7204
|
- force: Renew the provisioning profiles every time you run match
|
6877
7205
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
|
6878
7206
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
6879
7207
|
- skipDocs: Skip generation of a README.md for the created git repository
|
6880
|
-
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
|
7208
|
+
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
6881
7209
|
- 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")
|
6882
7210
|
- outputPath: Path in which to export certificates, key and profile
|
6883
7211
|
- verbose: Print out extra information and all commands
|
@@ -6885,6 +7213,7 @@ func swiftlint(mode: Any = "lint",
|
|
6885
7213
|
More information: https://docs.fastlane.tools/actions/match/
|
6886
7214
|
*/
|
6887
7215
|
func syncCodeSigning(type: String = "development",
|
7216
|
+
additionalCertTypes: [String]? = nil,
|
6888
7217
|
readonly: Bool = false,
|
6889
7218
|
generateAppleCerts: Bool = true,
|
6890
7219
|
skipProvisioningProfiles: Bool = false,
|
@@ -6904,17 +7233,22 @@ func syncCodeSigning(type: String = "development",
|
|
6904
7233
|
googleCloudBucketName: String? = nil,
|
6905
7234
|
googleCloudKeysFile: String? = nil,
|
6906
7235
|
googleCloudProjectId: String? = nil,
|
7236
|
+
s3Region: String? = nil,
|
7237
|
+
s3AccessKey: String? = nil,
|
7238
|
+
s3SecretAccessKey: String? = nil,
|
7239
|
+
s3Bucket: String? = nil,
|
6907
7240
|
keychainName: String = "login.keychain",
|
6908
7241
|
keychainPassword: String? = nil,
|
6909
7242
|
force: Bool = false,
|
6910
7243
|
forceForNewDevices: Bool = false,
|
6911
7244
|
skipConfirmation: Bool = false,
|
6912
7245
|
skipDocs: Bool = false,
|
6913
|
-
platform:
|
7246
|
+
platform: String = "ios",
|
6914
7247
|
templateName: String? = nil,
|
6915
7248
|
outputPath: String? = nil,
|
6916
7249
|
verbose: Bool = false) {
|
6917
7250
|
let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
7251
|
+
RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
|
6918
7252
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
6919
7253
|
RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
|
6920
7254
|
RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
|
@@ -6934,6 +7268,10 @@ func syncCodeSigning(type: String = "development",
|
|
6934
7268
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
6935
7269
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
6936
7270
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
7271
|
+
RubyCommand.Argument(name: "s3_region", value: s3Region),
|
7272
|
+
RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
|
7273
|
+
RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
|
7274
|
+
RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
|
6937
7275
|
RubyCommand.Argument(name: "keychain_name", value: keychainName),
|
6938
7276
|
RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
|
6939
7277
|
RubyCommand.Argument(name: "force", value: force),
|
@@ -7235,6 +7573,42 @@ func updateAppIdentifier(xcodeproj: String,
|
|
7235
7573
|
_ = runner.executeCommand(command)
|
7236
7574
|
}
|
7237
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
|
+
|
7238
7612
|
/**
|
7239
7613
|
Makes sure fastlane-tools are up-to-date when running fastlane
|
7240
7614
|
|
@@ -7331,7 +7705,7 @@ func updateKeychainAccessGroups(entitlementsFile: String,
|
|
7331
7705
|
- plistPath: Path to plist file
|
7332
7706
|
- block: A block to process plist with custom logic
|
7333
7707
|
|
7334
|
-
This action allows you to modify any `plist` file.
|
7708
|
+
This action allows you to modify any value inside any `plist` file.
|
7335
7709
|
*/
|
7336
7710
|
func updatePlist(plistPath: String? = nil,
|
7337
7711
|
block: Any) {
|
@@ -7468,6 +7842,7 @@ func updateUrlSchemes(path: String,
|
|
7468
7842
|
- dsymPaths: Paths to the DSYM files or zips to upload
|
7469
7843
|
- apiToken: Crashlytics API Key
|
7470
7844
|
- gspPath: Path to GoogleService-Info.plist
|
7845
|
+
- appId: Firebase Crashlytics APP ID
|
7471
7846
|
- binaryPath: The path to the upload-symbols file of the Fabric app
|
7472
7847
|
- platform: The platform of the app (ios, appletvos, mac)
|
7473
7848
|
- dsymWorkerThreads: The number of threads to use for simultaneous dSYM upload
|
@@ -7478,6 +7853,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
|
|
7478
7853
|
dsymPaths: [String]? = nil,
|
7479
7854
|
apiToken: String? = nil,
|
7480
7855
|
gspPath: String? = nil,
|
7856
|
+
appId: String? = nil,
|
7481
7857
|
binaryPath: String? = nil,
|
7482
7858
|
platform: String = "ios",
|
7483
7859
|
dsymWorkerThreads: Int = 1) {
|
@@ -7485,6 +7861,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
|
|
7485
7861
|
RubyCommand.Argument(name: "dsym_paths", value: dsymPaths),
|
7486
7862
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
7487
7863
|
RubyCommand.Argument(name: "gsp_path", value: gspPath),
|
7864
|
+
RubyCommand.Argument(name: "app_id", value: appId),
|
7488
7865
|
RubyCommand.Argument(name: "binary_path", value: binaryPath),
|
7489
7866
|
RubyCommand.Argument(name: "platform", value: platform),
|
7490
7867
|
RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads)])
|
@@ -7547,8 +7924,8 @@ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
|
|
7547
7924
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
7548
7925
|
- submitForReview: Submit the new version for Review after uploading everything
|
7549
7926
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
7550
|
-
- automaticRelease: Should the app be automatically released once it's approved?
|
7551
|
-
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
|
7927
|
+
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
7928
|
+
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
|
7552
7929
|
- phasedRelease: Enable the phased release feature of iTC
|
7553
7930
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
7554
7931
|
- priceTier: The price tier of this application
|
@@ -7766,7 +8143,7 @@ func uploadToPlayStore(packageName: String,
|
|
7766
8143
|
releaseStatus: String = "completed",
|
7767
8144
|
track: String = "production",
|
7768
8145
|
rollout: String? = nil,
|
7769
|
-
metadataPath: String
|
8146
|
+
metadataPath: String = "./metadata",
|
7770
8147
|
key: String? = nil,
|
7771
8148
|
issuer: String? = nil,
|
7772
8149
|
jsonKey: String? = nil,
|
@@ -8265,7 +8642,7 @@ func xcov(workspace: String? = nil,
|
|
8265
8642
|
coverallsServiceJobId: String? = nil,
|
8266
8643
|
coverallsRepoToken: String? = nil,
|
8267
8644
|
xcconfig: String? = nil,
|
8268
|
-
ideFoundationPath: String = "/Applications/Xcode-11.
|
8645
|
+
ideFoundationPath: String = "/Applications/Xcode-11.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8269
8646
|
legacySupport: Bool = false) {
|
8270
8647
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8271
8648
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8410,4 +8787,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8410
8787
|
|
8411
8788
|
// Please don't remove the lines below
|
8412
8789
|
// They are used to detect outdated files
|
8413
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8790
|
+
// FastlaneRunnerAPIVersion [0.9.72]
|