fastlane 2.141.0 → 2.146.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 +82 -82
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
- data/deliver/lib/deliver/app_screenshot.rb +1 -0
- data/deliver/lib/deliver/options.rb +30 -1
- data/deliver/lib/deliver/setup.rb +4 -4
- data/fastlane/lib/fastlane/actions/.update_code_signing_settings.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/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 +7 -1
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +10 -4
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +22 -6
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +23 -7
- 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/get_version_number.rb +1 -1
- 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/s3.rb +5 -291
- data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +11 -2
- data/fastlane/lib/fastlane/actions/slather.rb +1 -1
- data/fastlane/lib/fastlane/actions/spm.rb +8 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +45 -9
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +198 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +14 -4
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +61 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
- 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/Fastlane.swift +201 -13
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +17 -1
- 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 +9 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +9 -0
- data/fastlane_core/lib/fastlane_core/device_manager.rb +3 -3
- data/fastlane_core/lib/fastlane_core/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 +4 -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 +29 -41
- 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 +39 -47
- data/frameit/lib/frameit/template_finder.rb +15 -12
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
- data/gym/lib/gym/runner.rb +16 -2
- data/match/lib/match/change_password.rb +1 -1
- data/match/lib/match/encryption.rb +4 -0
- data/match/lib/match/importer.rb +37 -20
- data/match/lib/match/module.rb +1 -1
- data/match/lib/match/nuke.rb +5 -1
- data/match/lib/match/options.rb +18 -0
- data/match/lib/match/runner.rb +4 -0
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/storage.rb +4 -0
- data/match/lib/match/storage/google_cloud_storage.rb +2 -2
- data/match/lib/match/storage/s3_storage.rb +167 -0
- data/pilot/lib/pilot/build_manager.rb +24 -7
- data/pilot/lib/pilot/options.rb +8 -0
- data/produce/lib/produce/developer_center.rb +11 -2
- data/produce/lib/produce/itunes_connect.rb +11 -3
- data/produce/lib/produce/options.rb +12 -0
- data/scan/lib/scan/options.rb +10 -0
- data/scan/lib/scan/runner.rb +9 -7
- data/scan/lib/scan/test_command_generator.rb +11 -4
- data/screengrab/lib/screengrab/runner.rb +32 -19
- data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
- data/snapshot/lib/snapshot/reports_generator.rb +4 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -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 +23 -0
- data/spaceship/lib/spaceship/portal/app_service.rb +2 -2
- data/spaceship/lib/spaceship/portal/portal_client.rb +13 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
- data/spaceship/lib/spaceship/tunes/application.rb +2 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +52 -16
- data/supply/lib/supply/client.rb +4 -4
- data/supply/lib/supply/setup.rb +5 -3
- metadata +37 -16
@@ -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
|
@@ -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)
|
@@ -2122,7 +2122,7 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2122
2122
|
}
|
2123
2123
|
|
2124
2124
|
/**
|
2125
|
-
|
2125
|
+
Refer to [Firebase App Distribution](https://appdistro.page.link/fastlane-repo)
|
2126
2126
|
|
2127
2127
|
- parameters:
|
2128
2128
|
- ipaPath: Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action
|
@@ -2137,6 +2137,10 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2137
2137
|
- notifications: Crashlytics notification option (true/false)
|
2138
2138
|
- debug: Crashlytics debug option (true/false)
|
2139
2139
|
|
2140
|
+
Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.
|
2141
|
+
Beta will continue working until May 4, 2020.
|
2142
|
+
Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.
|
2143
|
+
|
2140
2144
|
Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
|
2141
2145
|
Distributing to Groups: When using the `groups` parameter, it's important to use the group **alias** names for each group you'd like to distribute to. A group's alias can be found in the web UI. If you're viewing the Beta page, you can open the groups dialog by clicking the 'Manage Groups' button.
|
2142
2146
|
This action uses the `submit` binary provided by the Crashlytics framework. If the binary is not found in its usual path, you'll need to specify the path manually by using the `crashlytics_path` option.
|
@@ -2211,6 +2215,7 @@ func createAppOnManagedPlayStore(jsonKey: String? = nil,
|
|
2211
2215
|
- appVersion: Initial version number (e.g. '1.0')
|
2212
2216
|
- sku: SKU Number (e.g. '1234')
|
2213
2217
|
- platform: The platform to use (optional)
|
2218
|
+
- platforms: The platforms to use (optional)
|
2214
2219
|
- language: Primary Language (e.g. 'English', 'German')
|
2215
2220
|
- companyName: The name of your company. Only required if it's the first app you create
|
2216
2221
|
- skipItc: Skip the creation of the app on App Store Connect
|
@@ -2234,6 +2239,7 @@ func createAppOnline(username: String,
|
|
2234
2239
|
appVersion: String? = nil,
|
2235
2240
|
sku: String,
|
2236
2241
|
platform: String = "ios",
|
2242
|
+
platforms: [String]? = nil,
|
2237
2243
|
language: String = "English",
|
2238
2244
|
companyName: String? = nil,
|
2239
2245
|
skipItc: Bool = false,
|
@@ -2252,6 +2258,7 @@ func createAppOnline(username: String,
|
|
2252
2258
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
2253
2259
|
RubyCommand.Argument(name: "sku", value: sku),
|
2254
2260
|
RubyCommand.Argument(name: "platform", value: platform),
|
2261
|
+
RubyCommand.Argument(name: "platforms", value: platforms),
|
2255
2262
|
RubyCommand.Argument(name: "language", value: language),
|
2256
2263
|
RubyCommand.Argument(name: "company_name", value: companyName),
|
2257
2264
|
RubyCommand.Argument(name: "skip_itc", value: skipItc),
|
@@ -2312,6 +2319,7 @@ func createKeychain(name: String? = nil,
|
|
2312
2319
|
- repo: The name of the repository you want to submit the pull request to
|
2313
2320
|
- title: The title of the pull request
|
2314
2321
|
- body: The contents of the pull request
|
2322
|
+
- draft: Indicates whether the pull request is a draft
|
2315
2323
|
- labels: The labels for the pull request
|
2316
2324
|
- milestone: The milestone ID (Integer) for the pull request
|
2317
2325
|
- head: The name of the branch where your changes are implemented (defaults to the current branch name)
|
@@ -2327,6 +2335,7 @@ func createPullRequest(apiToken: String,
|
|
2327
2335
|
repo: String,
|
2328
2336
|
title: String,
|
2329
2337
|
body: String? = nil,
|
2338
|
+
draft: Bool? = nil,
|
2330
2339
|
labels: [String]? = nil,
|
2331
2340
|
milestone: String? = nil,
|
2332
2341
|
head: String? = nil,
|
@@ -2339,6 +2348,7 @@ func createPullRequest(apiToken: String,
|
|
2339
2348
|
RubyCommand.Argument(name: "repo", value: repo),
|
2340
2349
|
RubyCommand.Argument(name: "title", value: title),
|
2341
2350
|
RubyCommand.Argument(name: "body", value: body),
|
2351
|
+
RubyCommand.Argument(name: "draft", value: draft),
|
2342
2352
|
RubyCommand.Argument(name: "labels", value: labels),
|
2343
2353
|
RubyCommand.Argument(name: "milestone", value: milestone),
|
2344
2354
|
RubyCommand.Argument(name: "head", value: head),
|
@@ -2832,7 +2842,7 @@ func ensureEnvVars(envVars: [String]) {
|
|
2832
2842
|
/**
|
2833
2843
|
Raises an exception if not on a specific git branch
|
2834
2844
|
|
2835
|
-
- 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
|
2845
|
+
- 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
|
2836
2846
|
|
2837
2847
|
This action will check if your git repo is checked out to a specific branch.
|
2838
2848
|
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.
|
@@ -2892,14 +2902,19 @@ func ensureNoDebugCode(text: String,
|
|
2892
2902
|
/**
|
2893
2903
|
Ensure the right version of Xcode is used
|
2894
2904
|
|
2895
|
-
-
|
2905
|
+
- parameters:
|
2906
|
+
- version: Xcode version to verify that is selected
|
2907
|
+
- 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`)
|
2896
2908
|
|
2897
2909
|
If building your app requires a specific version of Xcode, you can invoke this command before using gym.
|
2898
2910
|
For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail.
|
2899
2911
|
You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file.
|
2912
|
+
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`).
|
2900
2913
|
*/
|
2901
|
-
func ensureXcodeVersion(version: String? = nil
|
2902
|
-
|
2914
|
+
func ensureXcodeVersion(version: String? = nil,
|
2915
|
+
strict: Bool = true) {
|
2916
|
+
let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
|
2917
|
+
RubyCommand.Argument(name: "strict", value: strict)])
|
2903
2918
|
_ = runner.executeCommand(command)
|
2904
2919
|
}
|
2905
2920
|
|
@@ -2981,10 +2996,15 @@ func flock(message: String,
|
|
2981
2996
|
- forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
|
2982
2997
|
- useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
|
2983
2998
|
- useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
|
2999
|
+
- useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
|
2984
3000
|
- useLegacyIphonex: Use iPhone X instead of iPhone XS frames
|
3001
|
+
- useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
|
3002
|
+
- useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
|
3003
|
+
- useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
|
2985
3004
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
2986
3005
|
- debugMode: Output debug information in framed screenshots
|
2987
3006
|
- resume: Resume frameit instead of reprocessing all screenshots
|
3007
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
|
2988
3008
|
- path: The path to the directory containing the screenshots
|
2989
3009
|
|
2990
3010
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -2997,10 +3017,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
2997
3017
|
forceDeviceType: String? = nil,
|
2998
3018
|
useLegacyIphone5s: Bool = false,
|
2999
3019
|
useLegacyIphone6s: Bool = false,
|
3020
|
+
useLegacyIphone7: Bool = false,
|
3000
3021
|
useLegacyIphonex: Bool = false,
|
3022
|
+
useLegacyIphonexr: Bool = false,
|
3023
|
+
useLegacyIphonexs: Bool = false,
|
3024
|
+
useLegacyIphonexsmax: Bool = false,
|
3001
3025
|
forceOrientationBlock: String? = nil,
|
3002
3026
|
debugMode: Bool = false,
|
3003
3027
|
resume: Bool = false,
|
3028
|
+
usePlatform: String = "IOS",
|
3004
3029
|
path: String = "./") {
|
3005
3030
|
let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
|
3006
3031
|
RubyCommand.Argument(name: "silver", value: silver),
|
@@ -3009,10 +3034,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
3009
3034
|
RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
|
3010
3035
|
RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
|
3011
3036
|
RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
|
3037
|
+
RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
|
3012
3038
|
RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
|
3039
|
+
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3040
|
+
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3041
|
+
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
3013
3042
|
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
3014
3043
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
3015
3044
|
RubyCommand.Argument(name: "resume", value: resume),
|
3045
|
+
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
3016
3046
|
RubyCommand.Argument(name: "path", value: path)])
|
3017
3047
|
_ = runner.executeCommand(command)
|
3018
3048
|
}
|
@@ -3028,10 +3058,15 @@ func frameScreenshots(white: Bool? = nil,
|
|
3028
3058
|
- forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
|
3029
3059
|
- useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
|
3030
3060
|
- useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
|
3061
|
+
- useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
|
3031
3062
|
- useLegacyIphonex: Use iPhone X instead of iPhone XS frames
|
3063
|
+
- useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
|
3064
|
+
- useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
|
3065
|
+
- useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
|
3032
3066
|
- forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
|
3033
3067
|
- debugMode: Output debug information in framed screenshots
|
3034
3068
|
- resume: Resume frameit instead of reprocessing all screenshots
|
3069
|
+
- usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
|
3035
3070
|
- path: The path to the directory containing the screenshots
|
3036
3071
|
|
3037
3072
|
Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
|
@@ -3044,10 +3079,15 @@ func frameit(white: Bool? = nil,
|
|
3044
3079
|
forceDeviceType: String? = nil,
|
3045
3080
|
useLegacyIphone5s: Bool = false,
|
3046
3081
|
useLegacyIphone6s: Bool = false,
|
3082
|
+
useLegacyIphone7: Bool = false,
|
3047
3083
|
useLegacyIphonex: Bool = false,
|
3084
|
+
useLegacyIphonexr: Bool = false,
|
3085
|
+
useLegacyIphonexs: Bool = false,
|
3086
|
+
useLegacyIphonexsmax: Bool = false,
|
3048
3087
|
forceOrientationBlock: String? = nil,
|
3049
3088
|
debugMode: Bool = false,
|
3050
3089
|
resume: Bool = false,
|
3090
|
+
usePlatform: String = "IOS",
|
3051
3091
|
path: String = "./") {
|
3052
3092
|
let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
|
3053
3093
|
RubyCommand.Argument(name: "silver", value: silver),
|
@@ -3056,10 +3096,15 @@ func frameit(white: Bool? = nil,
|
|
3056
3096
|
RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
|
3057
3097
|
RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
|
3058
3098
|
RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
|
3099
|
+
RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
|
3059
3100
|
RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
|
3101
|
+
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3102
|
+
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3103
|
+
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
3060
3104
|
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
3061
3105
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
3062
3106
|
RubyCommand.Argument(name: "resume", value: resume),
|
3107
|
+
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
3063
3108
|
RubyCommand.Argument(name: "path", value: path)])
|
3064
3109
|
_ = runner.executeCommand(command)
|
3065
3110
|
}
|
@@ -4439,6 +4484,10 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4439
4484
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
4440
4485
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
4441
4486
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
4487
|
+
- s3Region: Name of the S3 region
|
4488
|
+
- s3AccessKey: S3 access key
|
4489
|
+
- s3SecretAccessKey: S3 secret access key
|
4490
|
+
- s3Bucket: Name of the S3 bucket
|
4442
4491
|
- keychainName: Keychain the items should be imported to
|
4443
4492
|
- 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
|
4444
4493
|
- force: Renew the provisioning profiles every time you run match
|
@@ -4473,6 +4522,10 @@ func match(type: Any = matchfile.type,
|
|
4473
4522
|
googleCloudBucketName: Any? = matchfile.googleCloudBucketName,
|
4474
4523
|
googleCloudKeysFile: Any? = matchfile.googleCloudKeysFile,
|
4475
4524
|
googleCloudProjectId: Any? = matchfile.googleCloudProjectId,
|
4525
|
+
s3Region: Any? = matchfile.s3Region,
|
4526
|
+
s3AccessKey: Any? = matchfile.s3AccessKey,
|
4527
|
+
s3SecretAccessKey: Any? = matchfile.s3SecretAccessKey,
|
4528
|
+
s3Bucket: Any? = matchfile.s3Bucket,
|
4476
4529
|
keychainName: Any = matchfile.keychainName,
|
4477
4530
|
keychainPassword: Any? = matchfile.keychainPassword,
|
4478
4531
|
force: Bool = matchfile.force,
|
@@ -4504,6 +4557,10 @@ func match(type: Any = matchfile.type,
|
|
4504
4557
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
4505
4558
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
4506
4559
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
4560
|
+
RubyCommand.Argument(name: "s3_region", value: s3Region),
|
4561
|
+
RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
|
4562
|
+
RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
|
4563
|
+
RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
|
4507
4564
|
RubyCommand.Argument(name: "keychain_name", value: keychainName),
|
4508
4565
|
RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
|
4509
4566
|
RubyCommand.Argument(name: "force", value: force),
|
@@ -4612,6 +4669,35 @@ func nexusUpload(file: String,
|
|
4612
4669
|
_ = runner.executeCommand(command)
|
4613
4670
|
}
|
4614
4671
|
|
4672
|
+
/**
|
4673
|
+
Notarizes a macOS app
|
4674
|
+
|
4675
|
+
- parameters:
|
4676
|
+
- package: Path to package to notarize, e.g. .app bundle or disk image
|
4677
|
+
- tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
|
4678
|
+
- bundleId: Bundle identifier to uniquely identify the package
|
4679
|
+
- username: Apple ID username
|
4680
|
+
- ascProvider: Provider short name for accounts associated with multiple providers
|
4681
|
+
- printLog: Whether to print notarization log file, listing issues on failure and warnings on success
|
4682
|
+
- verbose: Whether to log requests
|
4683
|
+
*/
|
4684
|
+
func notarize(package: String,
|
4685
|
+
tryEarlyStapling: Bool = false,
|
4686
|
+
bundleId: String? = nil,
|
4687
|
+
username: String,
|
4688
|
+
ascProvider: String? = nil,
|
4689
|
+
printLog: Bool = false,
|
4690
|
+
verbose: Bool = false) {
|
4691
|
+
let command = RubyCommand(commandID: "", methodName: "notarize", className: nil, args: [RubyCommand.Argument(name: "package", value: package),
|
4692
|
+
RubyCommand.Argument(name: "try_early_stapling", value: tryEarlyStapling),
|
4693
|
+
RubyCommand.Argument(name: "bundle_id", value: bundleId),
|
4694
|
+
RubyCommand.Argument(name: "username", value: username),
|
4695
|
+
RubyCommand.Argument(name: "asc_provider", value: ascProvider),
|
4696
|
+
RubyCommand.Argument(name: "print_log", value: printLog),
|
4697
|
+
RubyCommand.Argument(name: "verbose", value: verbose)])
|
4698
|
+
_ = runner.executeCommand(command)
|
4699
|
+
}
|
4700
|
+
|
4615
4701
|
/**
|
4616
4702
|
Display a macOS notification with custom message and title
|
4617
4703
|
|
@@ -4876,6 +4962,8 @@ func pem(development: Bool = false,
|
|
4876
4962
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
4877
4963
|
- distributeExternal: Should the build be distributed to external testers?
|
4878
4964
|
- notifyExternalTesters: Should notify external testers?
|
4965
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
4966
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
4879
4967
|
- firstName: The tester's first name
|
4880
4968
|
- lastName: The tester's last name
|
4881
4969
|
- email: The tester's email
|
@@ -4910,6 +4998,8 @@ func pilot(username: String,
|
|
4910
4998
|
usesNonExemptEncryption: Bool = false,
|
4911
4999
|
distributeExternal: Bool = false,
|
4912
5000
|
notifyExternalTesters: Bool = true,
|
5001
|
+
appVersion: String? = nil,
|
5002
|
+
buildNumber: String? = nil,
|
4913
5003
|
firstName: String? = nil,
|
4914
5004
|
lastName: String? = nil,
|
4915
5005
|
email: String? = nil,
|
@@ -4940,6 +5030,8 @@ func pilot(username: String,
|
|
4940
5030
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
4941
5031
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
4942
5032
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
5033
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
5034
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
4943
5035
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
4944
5036
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
4945
5037
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -4995,6 +5087,7 @@ func pluginScores(outputPath: String,
|
|
4995
5087
|
- platforms: Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6)
|
4996
5088
|
- skipImportValidation: Lint skips validating that the pod can be imported (available since cocoapods >= 1.3)
|
4997
5089
|
- skipTests: Lint skips building and running tests during validation (available since cocoapods >= 1.3)
|
5090
|
+
- analyze: Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1)
|
4998
5091
|
|
4999
5092
|
Test the syntax of your Podfile by linting the pod against the files of its directory
|
5000
5093
|
*/
|
@@ -5016,7 +5109,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5016
5109
|
noSubspecs: Bool = false,
|
5017
5110
|
platforms: String? = nil,
|
5018
5111
|
skipImportValidation: Bool = false,
|
5019
|
-
skipTests: Bool = false
|
5112
|
+
skipTests: Bool = false,
|
5113
|
+
analyze: Bool = false) {
|
5020
5114
|
let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
5021
5115
|
RubyCommand.Argument(name: "podspec", value: podspec),
|
5022
5116
|
RubyCommand.Argument(name: "verbose", value: verbose),
|
@@ -5035,7 +5129,8 @@ func podLibLint(useBundleExec: Bool = true,
|
|
5035
5129
|
RubyCommand.Argument(name: "no_subspecs", value: noSubspecs),
|
5036
5130
|
RubyCommand.Argument(name: "platforms", value: platforms),
|
5037
5131
|
RubyCommand.Argument(name: "skip_import_validation", value: skipImportValidation),
|
5038
|
-
RubyCommand.Argument(name: "skip_tests", value: skipTests)
|
5132
|
+
RubyCommand.Argument(name: "skip_tests", value: skipTests),
|
5133
|
+
RubyCommand.Argument(name: "analyze", value: analyze)])
|
5039
5134
|
_ = runner.executeCommand(command)
|
5040
5135
|
}
|
5041
5136
|
|
@@ -5167,6 +5262,7 @@ func println(message: String? = nil) {
|
|
5167
5262
|
- appVersion: Initial version number (e.g. '1.0')
|
5168
5263
|
- sku: SKU Number (e.g. '1234')
|
5169
5264
|
- platform: The platform to use (optional)
|
5265
|
+
- platforms: The platforms to use (optional)
|
5170
5266
|
- language: Primary Language (e.g. 'English', 'German')
|
5171
5267
|
- companyName: The name of your company. Only required if it's the first app you create
|
5172
5268
|
- skipItc: Skip the creation of the app on App Store Connect
|
@@ -5190,6 +5286,7 @@ func produce(username: String,
|
|
5190
5286
|
appVersion: String? = nil,
|
5191
5287
|
sku: String,
|
5192
5288
|
platform: String = "ios",
|
5289
|
+
platforms: [String]? = nil,
|
5193
5290
|
language: String = "English",
|
5194
5291
|
companyName: String? = nil,
|
5195
5292
|
skipItc: Bool = false,
|
@@ -5208,6 +5305,7 @@ func produce(username: String,
|
|
5208
5305
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
5209
5306
|
RubyCommand.Argument(name: "sku", value: sku),
|
5210
5307
|
RubyCommand.Argument(name: "platform", value: platform),
|
5308
|
+
RubyCommand.Argument(name: "platforms", value: platforms),
|
5211
5309
|
RubyCommand.Argument(name: "language", value: language),
|
5212
5310
|
RubyCommand.Argument(name: "company_name", value: companyName),
|
5213
5311
|
RubyCommand.Argument(name: "skip_itc", value: skipItc),
|
@@ -5564,6 +5662,7 @@ func rubyVersion() {
|
|
5564
5662
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5565
5663
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5566
5664
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5665
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5567
5666
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5568
5667
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5569
5668
|
- clean: Should the project be cleaned before building it?
|
@@ -5584,6 +5683,7 @@ func rubyVersion() {
|
|
5584
5683
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
5585
5684
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
5586
5685
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
5686
|
+
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
5587
5687
|
- maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
|
5588
5688
|
- disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
|
5589
5689
|
- skipBuild: Should debug build be skipped before test build?
|
@@ -5625,6 +5725,7 @@ func runTests(workspace: String? = nil,
|
|
5625
5725
|
appIdentifier: String? = nil,
|
5626
5726
|
onlyTesting: Any? = nil,
|
5627
5727
|
skipTesting: Any? = nil,
|
5728
|
+
testplan: String? = nil,
|
5628
5729
|
xctestrun: String? = nil,
|
5629
5730
|
toolchain: Any? = nil,
|
5630
5731
|
clean: Bool = false,
|
@@ -5645,6 +5746,7 @@ func runTests(workspace: String? = nil,
|
|
5645
5746
|
shouldZipBuildProducts: Bool = false,
|
5646
5747
|
resultBundle: Bool = false,
|
5647
5748
|
useClangReportName: Bool = false,
|
5749
|
+
concurrentWorkers: Int? = nil,
|
5648
5750
|
maxConcurrentSimulators: Int? = nil,
|
5649
5751
|
disableConcurrentTesting: Bool = false,
|
5650
5752
|
skipBuild: Bool = false,
|
@@ -5683,6 +5785,7 @@ func runTests(workspace: String? = nil,
|
|
5683
5785
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5684
5786
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5685
5787
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
5788
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5686
5789
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5687
5790
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5688
5791
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5703,6 +5806,7 @@ func runTests(workspace: String? = nil,
|
|
5703
5806
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
5704
5807
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
5705
5808
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
5809
|
+
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
5706
5810
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
5707
5811
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
5708
5812
|
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
@@ -5822,6 +5926,7 @@ func say(text: Any,
|
|
5822
5926
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
5823
5927
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5824
5928
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5929
|
+
- testplan: The testplan associated with the scheme that should be used for testing
|
5825
5930
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5826
5931
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5827
5932
|
- clean: Should the project be cleaned before building it?
|
@@ -5842,6 +5947,7 @@ func say(text: Any,
|
|
5842
5947
|
- shouldZipBuildProducts: Should zip the derived data build products and place in output path?
|
5843
5948
|
- resultBundle: Should an Xcode result bundle be generated in the output directory
|
5844
5949
|
- useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
|
5950
|
+
- concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
|
5845
5951
|
- maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
|
5846
5952
|
- disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
|
5847
5953
|
- skipBuild: Should debug build be skipped before test build?
|
@@ -5883,6 +5989,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5883
5989
|
appIdentifier: Any? = scanfile.appIdentifier,
|
5884
5990
|
onlyTesting: Any? = scanfile.onlyTesting,
|
5885
5991
|
skipTesting: Any? = scanfile.skipTesting,
|
5992
|
+
testplan: Any? = scanfile.testplan,
|
5886
5993
|
xctestrun: Any? = scanfile.xctestrun,
|
5887
5994
|
toolchain: Any? = scanfile.toolchain,
|
5888
5995
|
clean: Bool = scanfile.clean,
|
@@ -5903,6 +6010,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5903
6010
|
shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
|
5904
6011
|
resultBundle: Bool = scanfile.resultBundle,
|
5905
6012
|
useClangReportName: Bool = scanfile.useClangReportName,
|
6013
|
+
concurrentWorkers: Int? = scanfile.concurrentWorkers,
|
5906
6014
|
maxConcurrentSimulators: Int? = scanfile.maxConcurrentSimulators,
|
5907
6015
|
disableConcurrentTesting: Bool = scanfile.disableConcurrentTesting,
|
5908
6016
|
skipBuild: Bool = scanfile.skipBuild,
|
@@ -5941,6 +6049,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5941
6049
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
5942
6050
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5943
6051
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6052
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
5944
6053
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5945
6054
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5946
6055
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5961,6 +6070,7 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
5961
6070
|
RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
|
5962
6071
|
RubyCommand.Argument(name: "result_bundle", value: resultBundle),
|
5963
6072
|
RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
|
6073
|
+
RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
|
5964
6074
|
RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
|
5965
6075
|
RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
|
5966
6076
|
RubyCommand.Argument(name: "skip_build", value: skipBuild),
|
@@ -6243,7 +6353,7 @@ func setPodKey(useBundleExec: Bool = true,
|
|
6243
6353
|
This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
|
6244
6354
|
*/
|
6245
6355
|
func setupCi(force: Bool = false,
|
6246
|
-
provider:
|
6356
|
+
provider: String? = nil) {
|
6247
6357
|
let command = RubyCommand(commandID: "", methodName: "setup_ci", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
|
6248
6358
|
RubyCommand.Argument(name: "provider", value: provider)])
|
6249
6359
|
_ = runner.executeCommand(command)
|
@@ -6282,13 +6392,16 @@ func setupCircleCi(force: Bool = false) {
|
|
6282
6392
|
- resultBundle: Produce the result bundle describing what occurred will be placed
|
6283
6393
|
|
6284
6394
|
- Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin'|
|
6395
|
+
- Sets unlocked keychain to be used by Match|
|
6285
6396
|
- Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin'|
|
6286
6397
|
- Sets output directory to './output' (gym, scan and backup_xcarchive)|
|
6287
6398
|
- Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage)|
|
6288
6399
|
- Produce result bundle (gym and scan)|
|
6289
6400
|
>|
|
6290
6401
|
This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the `./output` directory.
|
6291
|
-
The action also works with [Keychains and Provisioning Profiles Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin), the selected keychain will be automatically unlocked and the selected code signing identity will be used.
|
6402
|
+
The action also works with [Keychains and Provisioning Profiles Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin), the selected keychain will be automatically unlocked and the selected code signing identity will be used.
|
6403
|
+
[Match](https://docs.fastlane.tools/actions/match/) will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined.
|
6404
|
+
By default this action will only work when _fastlane_ is executed on a CI system.
|
6292
6405
|
*/
|
6293
6406
|
func setupJenkins(force: Bool = false,
|
6294
6407
|
unlockKeychain: Bool = true,
|
@@ -6579,7 +6692,7 @@ func slather(buildDirectory: String? = nil,
|
|
6579
6692
|
show: Bool = false,
|
6580
6693
|
sourceDirectory: String? = nil,
|
6581
6694
|
outputDirectory: String? = nil,
|
6582
|
-
ignore:
|
6695
|
+
ignore: [String]? = nil,
|
6583
6696
|
verbose: Bool? = nil,
|
6584
6697
|
useBundleExec: Bool = false,
|
6585
6698
|
binaryBasename: Bool = false,
|
@@ -6863,6 +6976,7 @@ func splunkmint(dsym: String? = nil,
|
|
6863
6976
|
- xcconfig: Use xcconfig file to override swift package generate-xcodeproj defaults
|
6864
6977
|
- configuration: Build with configuration (debug|release) [default: debug]
|
6865
6978
|
- xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
|
6979
|
+
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
|
6866
6980
|
- verbose: Increase verbosity of informational output
|
6867
6981
|
*/
|
6868
6982
|
func spm(command: String = "build",
|
@@ -6871,6 +6985,7 @@ func spm(command: String = "build",
|
|
6871
6985
|
xcconfig: String? = nil,
|
6872
6986
|
configuration: String? = nil,
|
6873
6987
|
xcprettyOutput: String? = nil,
|
6988
|
+
xcprettyArgs: String? = nil,
|
6874
6989
|
verbose: Bool = false) {
|
6875
6990
|
let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
|
6876
6991
|
RubyCommand.Argument(name: "build_path", value: buildPath),
|
@@ -6878,6 +6993,7 @@ func spm(command: String = "build",
|
|
6878
6993
|
RubyCommand.Argument(name: "xcconfig", value: xcconfig),
|
6879
6994
|
RubyCommand.Argument(name: "configuration", value: configuration),
|
6880
6995
|
RubyCommand.Argument(name: "xcpretty_output", value: xcprettyOutput),
|
6996
|
+
RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
|
6881
6997
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
6882
6998
|
_ = runner.executeCommand(command)
|
6883
6999
|
}
|
@@ -7033,10 +7149,12 @@ func supply(packageName: String,
|
|
7033
7149
|
- strict: Fail on warnings? (true/false)
|
7034
7150
|
- files: List of files to process
|
7035
7151
|
- ignoreExitStatus: Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false)
|
7036
|
-
-
|
7152
|
+
- raiseIfSwiftlintError: Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false)
|
7153
|
+
- reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging
|
7037
7154
|
- quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
|
7038
7155
|
- executable: Path to the `swiftlint` executable on your machine
|
7039
7156
|
- format: Format code when mode is :autocorrect
|
7157
|
+
- noCache: Ignore the cache when mode is :autocorrect or :lint
|
7040
7158
|
- compilerLogPath: Compiler log path when mode is :analyze
|
7041
7159
|
*/
|
7042
7160
|
func swiftlint(mode: Any = "lint",
|
@@ -7046,10 +7164,12 @@ func swiftlint(mode: Any = "lint",
|
|
7046
7164
|
strict: Bool = false,
|
7047
7165
|
files: Any? = nil,
|
7048
7166
|
ignoreExitStatus: Bool = false,
|
7167
|
+
raiseIfSwiftlintError: Bool = false,
|
7049
7168
|
reporter: String? = nil,
|
7050
7169
|
quiet: Bool = false,
|
7051
7170
|
executable: String? = nil,
|
7052
7171
|
format: Bool = false,
|
7172
|
+
noCache: Bool = false,
|
7053
7173
|
compilerLogPath: String? = nil) {
|
7054
7174
|
let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
|
7055
7175
|
RubyCommand.Argument(name: "path", value: path),
|
@@ -7058,10 +7178,12 @@ func swiftlint(mode: Any = "lint",
|
|
7058
7178
|
RubyCommand.Argument(name: "strict", value: strict),
|
7059
7179
|
RubyCommand.Argument(name: "files", value: files),
|
7060
7180
|
RubyCommand.Argument(name: "ignore_exit_status", value: ignoreExitStatus),
|
7181
|
+
RubyCommand.Argument(name: "raise_if_swiftlint_error", value: raiseIfSwiftlintError),
|
7061
7182
|
RubyCommand.Argument(name: "reporter", value: reporter),
|
7062
7183
|
RubyCommand.Argument(name: "quiet", value: quiet),
|
7063
7184
|
RubyCommand.Argument(name: "executable", value: executable),
|
7064
7185
|
RubyCommand.Argument(name: "format", value: format),
|
7186
|
+
RubyCommand.Argument(name: "no_cache", value: noCache),
|
7065
7187
|
RubyCommand.Argument(name: "compiler_log_path", value: compilerLogPath)])
|
7066
7188
|
_ = runner.executeCommand(command)
|
7067
7189
|
}
|
@@ -7091,6 +7213,10 @@ func swiftlint(mode: Any = "lint",
|
|
7091
7213
|
- googleCloudBucketName: Name of the Google Cloud Storage bucket to use
|
7092
7214
|
- googleCloudKeysFile: Path to the gc_keys.json file
|
7093
7215
|
- googleCloudProjectId: ID of the Google Cloud project to use for authentication
|
7216
|
+
- s3Region: Name of the S3 region
|
7217
|
+
- s3AccessKey: S3 access key
|
7218
|
+
- s3SecretAccessKey: S3 secret access key
|
7219
|
+
- s3Bucket: Name of the S3 bucket
|
7094
7220
|
- keychainName: Keychain the items should be imported to
|
7095
7221
|
- 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
|
7096
7222
|
- force: Renew the provisioning profiles every time you run match
|
@@ -7125,6 +7251,10 @@ func syncCodeSigning(type: String = "development",
|
|
7125
7251
|
googleCloudBucketName: String? = nil,
|
7126
7252
|
googleCloudKeysFile: String? = nil,
|
7127
7253
|
googleCloudProjectId: String? = nil,
|
7254
|
+
s3Region: String? = nil,
|
7255
|
+
s3AccessKey: String? = nil,
|
7256
|
+
s3SecretAccessKey: String? = nil,
|
7257
|
+
s3Bucket: String? = nil,
|
7128
7258
|
keychainName: String = "login.keychain",
|
7129
7259
|
keychainPassword: String? = nil,
|
7130
7260
|
force: Bool = false,
|
@@ -7156,6 +7286,10 @@ func syncCodeSigning(type: String = "development",
|
|
7156
7286
|
RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
|
7157
7287
|
RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
|
7158
7288
|
RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
|
7289
|
+
RubyCommand.Argument(name: "s3_region", value: s3Region),
|
7290
|
+
RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
|
7291
|
+
RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
|
7292
|
+
RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
|
7159
7293
|
RubyCommand.Argument(name: "keychain_name", value: keychainName),
|
7160
7294
|
RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
|
7161
7295
|
RubyCommand.Argument(name: "force", value: force),
|
@@ -7256,6 +7390,8 @@ func testfairy(apiKey: String,
|
|
7256
7390
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
7257
7391
|
- distributeExternal: Should the build be distributed to external testers?
|
7258
7392
|
- notifyExternalTesters: Should notify external testers?
|
7393
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
7394
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
7259
7395
|
- firstName: The tester's first name
|
7260
7396
|
- lastName: The tester's last name
|
7261
7397
|
- email: The tester's email
|
@@ -7290,6 +7426,8 @@ func testflight(username: String,
|
|
7290
7426
|
usesNonExemptEncryption: Bool = false,
|
7291
7427
|
distributeExternal: Bool = false,
|
7292
7428
|
notifyExternalTesters: Bool = true,
|
7429
|
+
appVersion: String? = nil,
|
7430
|
+
buildNumber: String? = nil,
|
7293
7431
|
firstName: String? = nil,
|
7294
7432
|
lastName: String? = nil,
|
7295
7433
|
email: String? = nil,
|
@@ -7320,6 +7458,8 @@ func testflight(username: String,
|
|
7320
7458
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
7321
7459
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
7322
7460
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
7461
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
7462
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
7323
7463
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
7324
7464
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
7325
7465
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -7457,6 +7597,45 @@ func updateAppIdentifier(xcodeproj: String,
|
|
7457
7597
|
_ = runner.executeCommand(command)
|
7458
7598
|
}
|
7459
7599
|
|
7600
|
+
/**
|
7601
|
+
Configures Xcode's Codesigning options
|
7602
|
+
|
7603
|
+
- parameters:
|
7604
|
+
- path: Path to your Xcode project
|
7605
|
+
- useAutomaticSigning: Defines if project should use automatic signing
|
7606
|
+
- teamId: Team ID, is used when upgrading project
|
7607
|
+
- targets: Specify targets you want to toggle the signing mech. (default to all targets)
|
7608
|
+
- buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all targets)
|
7609
|
+
- codeSignIdentity: Code signing identity type (iPhone Developer, iPhone Distribution)
|
7610
|
+
- profileName: Provisioning profile name to use for code signing
|
7611
|
+
- profileUuid: Provisioning profile UUID to use for code signing
|
7612
|
+
- bundleIdentifier: Application Product Bundle Identifier
|
7613
|
+
|
7614
|
+
- returns: The current status (boolean) of codesigning after modification
|
7615
|
+
|
7616
|
+
Configures Xcode's Codesigning options of all targets in the project
|
7617
|
+
*/
|
7618
|
+
func updateCodeSigningSettings(path: String,
|
7619
|
+
useAutomaticSigning: Bool = false,
|
7620
|
+
teamId: String? = nil,
|
7621
|
+
targets: [String]? = nil,
|
7622
|
+
buildConfigurations: [String]? = nil,
|
7623
|
+
codeSignIdentity: String? = nil,
|
7624
|
+
profileName: String? = nil,
|
7625
|
+
profileUuid: String? = nil,
|
7626
|
+
bundleIdentifier: String? = nil) {
|
7627
|
+
let command = RubyCommand(commandID: "", methodName: "update_code_signing_settings", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
|
7628
|
+
RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
|
7629
|
+
RubyCommand.Argument(name: "team_id", value: teamId),
|
7630
|
+
RubyCommand.Argument(name: "targets", value: targets),
|
7631
|
+
RubyCommand.Argument(name: "build_configurations", value: buildConfigurations),
|
7632
|
+
RubyCommand.Argument(name: "code_sign_identity", value: codeSignIdentity),
|
7633
|
+
RubyCommand.Argument(name: "profile_name", value: profileName),
|
7634
|
+
RubyCommand.Argument(name: "profile_uuid", value: profileUuid),
|
7635
|
+
RubyCommand.Argument(name: "bundle_identifier", value: bundleIdentifier)])
|
7636
|
+
_ = runner.executeCommand(command)
|
7637
|
+
}
|
7638
|
+
|
7460
7639
|
/**
|
7461
7640
|
Makes sure fastlane-tools are up-to-date when running fastlane
|
7462
7641
|
|
@@ -7690,6 +7869,7 @@ func updateUrlSchemes(path: String,
|
|
7690
7869
|
- dsymPaths: Paths to the DSYM files or zips to upload
|
7691
7870
|
- apiToken: Crashlytics API Key
|
7692
7871
|
- gspPath: Path to GoogleService-Info.plist
|
7872
|
+
- appId: Firebase Crashlytics APP ID
|
7693
7873
|
- binaryPath: The path to the upload-symbols file of the Fabric app
|
7694
7874
|
- platform: The platform of the app (ios, appletvos, mac)
|
7695
7875
|
- dsymWorkerThreads: The number of threads to use for simultaneous dSYM upload
|
@@ -7700,6 +7880,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
|
|
7700
7880
|
dsymPaths: [String]? = nil,
|
7701
7881
|
apiToken: String? = nil,
|
7702
7882
|
gspPath: String? = nil,
|
7883
|
+
appId: String? = nil,
|
7703
7884
|
binaryPath: String? = nil,
|
7704
7885
|
platform: String = "ios",
|
7705
7886
|
dsymWorkerThreads: Int = 1) {
|
@@ -7707,6 +7888,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
|
|
7707
7888
|
RubyCommand.Argument(name: "dsym_paths", value: dsymPaths),
|
7708
7889
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
7709
7890
|
RubyCommand.Argument(name: "gsp_path", value: gspPath),
|
7891
|
+
RubyCommand.Argument(name: "app_id", value: appId),
|
7710
7892
|
RubyCommand.Argument(name: "binary_path", value: binaryPath),
|
7711
7893
|
RubyCommand.Argument(name: "platform", value: platform),
|
7712
7894
|
RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads)])
|
@@ -8114,6 +8296,8 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
8114
8296
|
- usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
|
8115
8297
|
- distributeExternal: Should the build be distributed to external testers?
|
8116
8298
|
- notifyExternalTesters: Should notify external testers?
|
8299
|
+
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
8300
|
+
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
8117
8301
|
- firstName: The tester's first name
|
8118
8302
|
- lastName: The tester's last name
|
8119
8303
|
- email: The tester's email
|
@@ -8148,6 +8332,8 @@ func uploadToTestflight(username: String,
|
|
8148
8332
|
usesNonExemptEncryption: Bool = false,
|
8149
8333
|
distributeExternal: Bool = false,
|
8150
8334
|
notifyExternalTesters: Bool = true,
|
8335
|
+
appVersion: String? = nil,
|
8336
|
+
buildNumber: String? = nil,
|
8151
8337
|
firstName: String? = nil,
|
8152
8338
|
lastName: String? = nil,
|
8153
8339
|
email: String? = nil,
|
@@ -8178,6 +8364,8 @@ func uploadToTestflight(username: String,
|
|
8178
8364
|
RubyCommand.Argument(name: "uses_non_exempt_encryption", value: usesNonExemptEncryption),
|
8179
8365
|
RubyCommand.Argument(name: "distribute_external", value: distributeExternal),
|
8180
8366
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
8367
|
+
RubyCommand.Argument(name: "app_version", value: appVersion),
|
8368
|
+
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
8181
8369
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
8182
8370
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
8183
8371
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -8487,7 +8675,7 @@ func xcov(workspace: String? = nil,
|
|
8487
8675
|
coverallsServiceJobId: String? = nil,
|
8488
8676
|
coverallsRepoToken: String? = nil,
|
8489
8677
|
xcconfig: String? = nil,
|
8490
|
-
ideFoundationPath: String = "/Applications/Xcode-11.
|
8678
|
+
ideFoundationPath: String = "/Applications/Xcode-11.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8491
8679
|
legacySupport: Bool = false) {
|
8492
8680
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8493
8681
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8632,4 +8820,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8632
8820
|
|
8633
8821
|
// Please don't remove the lines below
|
8634
8822
|
// They are used to detect outdated files
|
8635
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8823
|
+
// FastlaneRunnerAPIVersion [0.9.74]
|