fastlane 2.147.0 → 2.150.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -82
- data/cert/lib/cert/commands_generator.rb +1 -0
- data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
- data/deliver/lib/deliver.rb +0 -1
- data/deliver/lib/deliver/app_screenshot.rb +28 -27
- data/deliver/lib/deliver/commands_generator.rb +1 -0
- data/deliver/lib/deliver/html_generator.rb +2 -2
- data/deliver/lib/deliver/options.rb +6 -11
- data/deliver/lib/deliver/runner.rb +7 -4
- data/deliver/lib/deliver/setup.rb +5 -30
- data/deliver/lib/deliver/submit_for_review.rb +124 -83
- data/deliver/lib/deliver/upload_metadata.rb +284 -143
- data/deliver/lib/deliver/upload_price_tier.rb +15 -8
- data/deliver/lib/deliver/upload_screenshots.rb +86 -37
- data/fastlane/lib/assets/s3_html_template.erb +1 -1
- data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -4
- data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +42 -2
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +3 -11
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +15 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -1
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +1 -1
- data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
- data/fastlane/lib/fastlane/actions/hipchat.rb +1 -1
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
- data/fastlane/lib/fastlane/actions/slack.rb +2 -2
- data/fastlane/lib/fastlane/actions/slather.rb +8 -1
- data/fastlane/lib/fastlane/actions/spm.rb +7 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +14 -0
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +3 -34
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +4 -4
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +28 -6
- data/fastlane/lib/fastlane/commands_generator.rb +1 -1
- data/fastlane/lib/fastlane/documentation/actions_list.rb +1 -1
- data/fastlane/lib/fastlane/lane.rb +3 -3
- data/fastlane/lib/fastlane/lane_manager.rb +0 -10
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +22 -5
- data/fastlane/lib/fastlane/swift_lane_manager.rb +0 -8
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -0
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +140 -30
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +3 -9
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +5 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +29 -6
- data/fastlane/swift/RubyCommandable.swift +1 -0
- data/fastlane/swift/Runner.swift +85 -13
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +10 -2
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +17 -1
- data/fastlane/swift/SocketClient.swift +76 -45
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -3
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +7 -0
- data/frameit/lib/frameit/commands_generator.rb +1 -0
- data/frameit/lib/frameit/device_types.rb +100 -100
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +4 -0
- data/gym/lib/gym/options.rb +1 -1
- data/gym/lib/gym/runner.rb +14 -0
- data/match/lib/match/commands_generator.rb +1 -0
- data/match/lib/match/generator.rb +2 -1
- data/match/lib/match/nuke.rb +21 -16
- data/match/lib/match/options.rb +18 -1
- data/match/lib/match/storage/git_storage.rb +4 -0
- data/match/lib/match/storage/google_cloud_storage.rb +4 -0
- data/match/lib/match/storage/interface.rb +4 -0
- data/match/lib/match/storage/s3_storage.rb +4 -0
- data/pem/lib/pem/commands_generator.rb +1 -0
- data/pilot/lib/pilot/build_manager.rb +23 -7
- data/pilot/lib/pilot/options.rb +5 -0
- data/produce/lib/produce/commands_generator.rb +1 -0
- data/produce/lib/produce/itunes_connect.rb +20 -20
- data/produce/lib/produce/options.rb +3 -3
- data/scan/lib/scan/detect_values.rb +3 -0
- data/scan/lib/scan/options.rb +20 -2
- data/scan/lib/scan/test_command_generator.rb +6 -1
- data/scan/lib/scan/test_result_parser.rb +9 -2
- data/screengrab/lib/screengrab/runner.rb +10 -9
- data/sigh/lib/assets/resign.sh +7 -7
- data/sigh/lib/sigh/commands_generator.rb +1 -0
- data/sigh/lib/sigh/options.rb +7 -1
- data/sigh/lib/sigh/runner.rb +2 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +16 -37
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +3 -3
- data/snapshot/lib/snapshot/detect_values.rb +15 -0
- data/snapshot/lib/snapshot/options.rb +31 -0
- data/snapshot/lib/snapshot/reports_generator.rb +8 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +3 -1
- data/snapshot/lib/snapshot/test_command_generator.rb +8 -3
- data/snapshot/lib/snapshot/test_command_generator_base.rb +7 -1
- data/spaceship/lib/spaceship/.DS_Store +0 -0
- data/spaceship/lib/spaceship/client.rb +9 -1
- data/spaceship/lib/spaceship/commands_generator.rb +1 -0
- data/spaceship/lib/spaceship/connect_api.rb +21 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +47 -11
- data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +109 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +113 -3
- data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +74 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +81 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +117 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +101 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +182 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +70 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +8 -0
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +40 -0
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +10 -3
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +33 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +703 -0
- data/spaceship/lib/spaceship/errors.rb +3 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +2 -2
- data/supply/lib/supply/client.rb +19 -0
- data/supply/lib/supply/commands_generator.rb +1 -0
- data/supply/lib/supply/options.rb +9 -0
- data/supply/lib/supply/reader.rb +16 -0
- data/supply/lib/supply/uploader.rb +4 -0
- metadata +52 -47
- data/deliver/lib/deliver/upload_assets.rb +0 -27
- data/supply/lib/supply/.client.rb.swp +0 -0
@@ -95,8 +95,14 @@ module Fastlane
|
|
95
95
|
return "Int"
|
96
96
|
elsif type_override == Boolean
|
97
97
|
return "Bool"
|
98
|
+
elsif type_override == Float
|
99
|
+
return "Float"
|
98
100
|
elsif type_override == :string_callback
|
99
|
-
|
101
|
+
# David Hart:
|
102
|
+
# It doesn't make sense to add escaping annotations to optional closures because they aren't function types:
|
103
|
+
# they are basically an enum (Optional) containing a function, the same way you would store a closure in any type:
|
104
|
+
# it's implicitly escaping because it's owned by another type.
|
105
|
+
return "((String) -> Void)?"
|
100
106
|
else
|
101
107
|
return default_type
|
102
108
|
end
|
@@ -104,7 +110,7 @@ module Fastlane
|
|
104
110
|
|
105
111
|
def override_default_value_if_not_correct_type(param_name: nil, param_type: nil, default_value: nil)
|
106
112
|
return "[]" if param_type == "[String]" && default_value == ""
|
107
|
-
return "
|
113
|
+
return "nil" if param_type == "((String) -> Void)?"
|
108
114
|
|
109
115
|
return default_value
|
110
116
|
end
|
@@ -119,7 +125,7 @@ module Fastlane
|
|
119
125
|
|
120
126
|
optional_specifier = ""
|
121
127
|
# if we are optional and don't have a default value, we'll need to use ?
|
122
|
-
optional_specifier = "?" if (optional && default_value.nil?) && type != "((String) -> Void)"
|
128
|
+
optional_specifier = "?" if (optional && default_value.nil?) && type != "((String) -> Void)?"
|
123
129
|
|
124
130
|
# If we have a default value of true or false, we can infer it is a Bool
|
125
131
|
if default_value.class == FalseClass
|
@@ -130,8 +136,19 @@ module Fastlane
|
|
130
136
|
type = "[String]"
|
131
137
|
elsif default_value.kind_of?(Hash)
|
132
138
|
type = "[String : Any]"
|
139
|
+
# Altough we can have a default value of Integer type, if param_type_override overridden that value, respect it.
|
133
140
|
elsif default_value.kind_of?(Integer)
|
134
|
-
type
|
141
|
+
if type == "Double" || type == "Float"
|
142
|
+
begin
|
143
|
+
# If we're not able to instantiate
|
144
|
+
_ = BigDecimal(default_value)
|
145
|
+
rescue
|
146
|
+
# We set it as a Int
|
147
|
+
type = "Int"
|
148
|
+
end
|
149
|
+
else
|
150
|
+
type = "Int"
|
151
|
+
end
|
135
152
|
end
|
136
153
|
return "#{type}#{optional_specifier}"
|
137
154
|
end
|
@@ -149,7 +166,7 @@ module Fastlane
|
|
149
166
|
# we can't handle default values for Hashes, yet
|
150
167
|
# see method swift_default_implementations for similar behavior
|
151
168
|
default_value = "[:]"
|
152
|
-
elsif type != "Bool" && type != "[String]" && type != "Int" && type != "((String) -> Void)"
|
169
|
+
elsif type != "Bool" && type != "[String]" && type != "Int" && type != "@escaping ((String) -> Void)" && type != "Float" && type != "Double"
|
153
170
|
default_value = "\"#{default_value}\""
|
154
171
|
end
|
155
172
|
end
|
@@ -14,14 +14,6 @@ module Fastlane
|
|
14
14
|
ENV["FASTLANE_LANE_NAME"] = lane
|
15
15
|
Actions.lane_context[Actions::SharedValues::LANE_NAME] = lane
|
16
16
|
|
17
|
-
# xcodeproj has a bug in certain versions that causes it to change directories
|
18
|
-
# and not return to the original working directory
|
19
|
-
# https://github.com/CocoaPods/Xcodeproj/issues/426
|
20
|
-
# Setting this environment variable causes xcodeproj to work around the problem
|
21
|
-
ENV["FORK_XCODE_WRITING"] = "true"
|
22
|
-
|
23
|
-
Fastlane::Helper::DotenvHelper.load_dot_env(env)
|
24
|
-
|
25
17
|
started = Time.now
|
26
18
|
e = nil
|
27
19
|
begin
|
@@ -49,6 +49,7 @@ struct ControlCommand: RubyCommandable {
|
|
49
49
|
}
|
50
50
|
|
51
51
|
let message: String?
|
52
|
+
let id: String = UUID().uuidString
|
52
53
|
let shutdownCommandType: ShutdownCommandType
|
53
54
|
var commandJson: String {
|
54
55
|
var jsonDictionary: [String: Any] = [ControlCommand.commandKey : self.shutdownCommandType.token]
|
@@ -894,7 +894,7 @@ func buildAndroidApp(task: String? = nil,
|
|
894
894
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
895
895
|
- skipCodesigning: Build without codesigning
|
896
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
|
897
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
898
898
|
- buildPath: The directory in which the archive should be stored in
|
899
899
|
- archivePath: The path to the created archive
|
900
900
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -1171,7 +1171,7 @@ func buildIosApp(workspace: String? = nil,
|
|
1171
1171
|
- skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
|
1172
1172
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
1173
1173
|
- skipCodesigning: Build without codesigning
|
1174
|
-
- installerCertName: Full name of 3rd Party Mac Developer Installer or
|
1174
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
1175
1175
|
- buildPath: The directory in which the archive should be stored in
|
1176
1176
|
- archivePath: The path to the created archive
|
1177
1177
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -1448,6 +1448,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1448
1448
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
1449
1449
|
- addPhotos: A list of photos that should be added to the simulator before running the application
|
1450
1450
|
- addVideos: A list of videos that should be added to the simulator before running the application
|
1451
|
+
- htmlTemplate: A path to screenshots.html template
|
1451
1452
|
- buildlogPath: The directory where to store the build log
|
1452
1453
|
- clean: Should the project be cleaned before building it?
|
1453
1454
|
- testWithoutBuilding: Test without building, requires a derived data path
|
@@ -1465,6 +1466,9 @@ func captureAndroidScreenshots(androidHome: String? = nil,
|
|
1465
1466
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1466
1467
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1467
1468
|
- testplan: The testplan associated with the scheme that should be used for testing
|
1469
|
+
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
1470
|
+
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
1471
|
+
- disableXcpretty: Disable xcpretty formatting of build
|
1468
1472
|
*/
|
1469
1473
|
func captureIosScreenshots(workspace: String? = nil,
|
1470
1474
|
project: String? = nil,
|
@@ -1487,6 +1491,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1487
1491
|
appIdentifier: String? = nil,
|
1488
1492
|
addPhotos: [String]? = nil,
|
1489
1493
|
addVideos: [String]? = nil,
|
1494
|
+
htmlTemplate: String? = nil,
|
1490
1495
|
buildlogPath: String = "~/Library/Logs/snapshot",
|
1491
1496
|
clean: Bool = false,
|
1492
1497
|
testWithoutBuilding: Bool? = nil,
|
@@ -1503,7 +1508,10 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1503
1508
|
concurrentSimulators: Bool = true,
|
1504
1509
|
disableSlideToType: Bool = false,
|
1505
1510
|
clonedSourcePackagesPath: String? = nil,
|
1506
|
-
testplan: String? = nil
|
1511
|
+
testplan: String? = nil,
|
1512
|
+
onlyTesting: Any? = nil,
|
1513
|
+
skipTesting: Any? = nil,
|
1514
|
+
disableXcpretty: Bool? = nil) {
|
1507
1515
|
let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1508
1516
|
RubyCommand.Argument(name: "project", value: project),
|
1509
1517
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1525,6 +1533,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1525
1533
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
1526
1534
|
RubyCommand.Argument(name: "add_photos", value: addPhotos),
|
1527
1535
|
RubyCommand.Argument(name: "add_videos", value: addVideos),
|
1536
|
+
RubyCommand.Argument(name: "html_template", value: htmlTemplate),
|
1528
1537
|
RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
|
1529
1538
|
RubyCommand.Argument(name: "clean", value: clean),
|
1530
1539
|
RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
|
@@ -1541,7 +1550,10 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1541
1550
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1542
1551
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1543
1552
|
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
1544
|
-
RubyCommand.Argument(name: "testplan", value: testplan)
|
1553
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
1554
|
+
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
1555
|
+
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
1556
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
|
1545
1557
|
_ = runner.executeCommand(command)
|
1546
1558
|
}
|
1547
1559
|
|
@@ -1570,6 +1582,7 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1570
1582
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
1571
1583
|
- addPhotos: A list of photos that should be added to the simulator before running the application
|
1572
1584
|
- addVideos: A list of videos that should be added to the simulator before running the application
|
1585
|
+
- htmlTemplate: A path to screenshots.html template
|
1573
1586
|
- buildlogPath: The directory where to store the build log
|
1574
1587
|
- clean: Should the project be cleaned before building it?
|
1575
1588
|
- testWithoutBuilding: Test without building, requires a derived data path
|
@@ -1587,6 +1600,9 @@ func captureIosScreenshots(workspace: String? = nil,
|
|
1587
1600
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
1588
1601
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
1589
1602
|
- testplan: The testplan associated with the scheme that should be used for testing
|
1603
|
+
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
1604
|
+
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
1605
|
+
- disableXcpretty: Disable xcpretty formatting of build
|
1590
1606
|
*/
|
1591
1607
|
func captureScreenshots(workspace: String? = nil,
|
1592
1608
|
project: String? = nil,
|
@@ -1609,6 +1625,7 @@ func captureScreenshots(workspace: String? = nil,
|
|
1609
1625
|
appIdentifier: String? = nil,
|
1610
1626
|
addPhotos: [String]? = nil,
|
1611
1627
|
addVideos: [String]? = nil,
|
1628
|
+
htmlTemplate: String? = nil,
|
1612
1629
|
buildlogPath: String = "~/Library/Logs/snapshot",
|
1613
1630
|
clean: Bool = false,
|
1614
1631
|
testWithoutBuilding: Bool? = nil,
|
@@ -1625,7 +1642,10 @@ func captureScreenshots(workspace: String? = nil,
|
|
1625
1642
|
concurrentSimulators: Bool = true,
|
1626
1643
|
disableSlideToType: Bool = false,
|
1627
1644
|
clonedSourcePackagesPath: String? = nil,
|
1628
|
-
testplan: String? = nil
|
1645
|
+
testplan: String? = nil,
|
1646
|
+
onlyTesting: Any? = nil,
|
1647
|
+
skipTesting: Any? = nil,
|
1648
|
+
disableXcpretty: Bool? = nil) {
|
1629
1649
|
let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
1630
1650
|
RubyCommand.Argument(name: "project", value: project),
|
1631
1651
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -1647,6 +1667,7 @@ func captureScreenshots(workspace: String? = nil,
|
|
1647
1667
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
1648
1668
|
RubyCommand.Argument(name: "add_photos", value: addPhotos),
|
1649
1669
|
RubyCommand.Argument(name: "add_videos", value: addVideos),
|
1670
|
+
RubyCommand.Argument(name: "html_template", value: htmlTemplate),
|
1650
1671
|
RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
|
1651
1672
|
RubyCommand.Argument(name: "clean", value: clean),
|
1652
1673
|
RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
|
@@ -1663,7 +1684,10 @@ func captureScreenshots(workspace: String? = nil,
|
|
1663
1684
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
1664
1685
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
1665
1686
|
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
1666
|
-
RubyCommand.Argument(name: "testplan", value: testplan)
|
1687
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
1688
|
+
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
1689
|
+
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
1690
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
|
1667
1691
|
_ = runner.executeCommand(command)
|
1668
1692
|
}
|
1669
1693
|
|
@@ -2015,7 +2039,7 @@ func cocoapods(repoUpdate: Bool = false,
|
|
2015
2039
|
ansi: Bool = true,
|
2016
2040
|
useBundleExec: Bool = true,
|
2017
2041
|
podfile: String? = nil,
|
2018
|
-
errorCallback:
|
2042
|
+
errorCallback: ((String) -> Void)? = nil,
|
2019
2043
|
tryRepoUpdateOnError: Bool = false,
|
2020
2044
|
deployment: Bool = false,
|
2021
2045
|
clean: Bool = true,
|
@@ -2027,7 +2051,7 @@ func cocoapods(repoUpdate: Bool = false,
|
|
2027
2051
|
RubyCommand.Argument(name: "ansi", value: ansi),
|
2028
2052
|
RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
2029
2053
|
RubyCommand.Argument(name: "podfile", value: podfile),
|
2030
|
-
RubyCommand.Argument(name: "error_callback", value: errorCallback),
|
2054
|
+
RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure),
|
2031
2055
|
RubyCommand.Argument(name: "try_repo_update_on_error", value: tryRepoUpdateOnError),
|
2032
2056
|
RubyCommand.Argument(name: "deployment", value: deployment),
|
2033
2057
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -2149,10 +2173,6 @@ func copyArtifacts(keepOriginal: Bool = true,
|
|
2149
2173
|
- notifications: Crashlytics notification option (true/false)
|
2150
2174
|
- debug: Crashlytics debug option (true/false)
|
2151
2175
|
|
2152
|
-
Crashlytics Beta has been deprecated and replaced with Firebase App Distribution.
|
2153
|
-
Beta will continue working until May 4, 2020.
|
2154
|
-
Check out the [Firebase App Distribution docs](https://github.com/fastlane/fastlane-plugin-firebase_app_distribution) to get started.
|
2155
|
-
|
2156
2176
|
Additionally, you can specify `notes`, `emails`, `groups` and `notifications`.
|
2157
2177
|
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.
|
2158
2178
|
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.
|
@@ -3034,7 +3054,7 @@ func frameScreenshots(white: Bool? = nil,
|
|
3034
3054
|
useLegacyIphonexr: Bool = false,
|
3035
3055
|
useLegacyIphonexs: Bool = false,
|
3036
3056
|
useLegacyIphonexsmax: Bool = false,
|
3037
|
-
forceOrientationBlock: String? = nil,
|
3057
|
+
forceOrientationBlock: ((String) -> Void)? = nil,
|
3038
3058
|
debugMode: Bool = false,
|
3039
3059
|
resume: Bool = false,
|
3040
3060
|
usePlatform: String = "IOS",
|
@@ -3051,7 +3071,7 @@ func frameScreenshots(white: Bool? = nil,
|
|
3051
3071
|
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3052
3072
|
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3053
3073
|
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
3054
|
-
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
3074
|
+
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock, type: .stringClosure),
|
3055
3075
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
3056
3076
|
RubyCommand.Argument(name: "resume", value: resume),
|
3057
3077
|
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
@@ -3096,7 +3116,7 @@ func frameit(white: Bool? = nil,
|
|
3096
3116
|
useLegacyIphonexr: Bool = false,
|
3097
3117
|
useLegacyIphonexs: Bool = false,
|
3098
3118
|
useLegacyIphonexsmax: Bool = false,
|
3099
|
-
forceOrientationBlock: String? = nil,
|
3119
|
+
forceOrientationBlock: ((String) -> Void)? = nil,
|
3100
3120
|
debugMode: Bool = false,
|
3101
3121
|
resume: Bool = false,
|
3102
3122
|
usePlatform: String = "IOS",
|
@@ -3113,7 +3133,7 @@ func frameit(white: Bool? = nil,
|
|
3113
3133
|
RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
|
3114
3134
|
RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
|
3115
3135
|
RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
|
3116
|
-
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
|
3136
|
+
RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock, type: .stringClosure),
|
3117
3137
|
RubyCommand.Argument(name: "debug_mode", value: debugMode),
|
3118
3138
|
RubyCommand.Argument(name: "resume", value: resume),
|
3119
3139
|
RubyCommand.Argument(name: "use_platform", value: usePlatform),
|
@@ -3353,6 +3373,7 @@ func getManagedPlayStorePublishingRights(jsonKey: String? = nil,
|
|
3353
3373
|
- platform: Set the provisioning profile's platform (i.e. ios, tvos)
|
3354
3374
|
- readonly: Only fetch existing profile, don't generate new ones
|
3355
3375
|
- 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")
|
3376
|
+
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
3356
3377
|
|
3357
3378
|
- returns: The UUID of the profile sigh just fetched/generated
|
3358
3379
|
|
@@ -3377,7 +3398,8 @@ func getProvisioningProfile(adhoc: Bool = false,
|
|
3377
3398
|
skipCertificateVerification: Bool = false,
|
3378
3399
|
platform: Any = "ios",
|
3379
3400
|
readonly: Bool = false,
|
3380
|
-
templateName: String? = nil
|
3401
|
+
templateName: String? = nil,
|
3402
|
+
failOnNameTaken: Bool = false) {
|
3381
3403
|
let command = RubyCommand(commandID: "", methodName: "get_provisioning_profile", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
|
3382
3404
|
RubyCommand.Argument(name: "developer_id", value: developerId),
|
3383
3405
|
RubyCommand.Argument(name: "development", value: development),
|
@@ -3397,7 +3419,8 @@ func getProvisioningProfile(adhoc: Bool = false,
|
|
3397
3419
|
RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
|
3398
3420
|
RubyCommand.Argument(name: "platform", value: platform),
|
3399
3421
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
3400
|
-
RubyCommand.Argument(name: "template_name", value: templateName)
|
3422
|
+
RubyCommand.Argument(name: "template_name", value: templateName),
|
3423
|
+
RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken)])
|
3401
3424
|
_ = runner.executeCommand(command)
|
3402
3425
|
}
|
3403
3426
|
|
@@ -3616,6 +3639,42 @@ func githubApi(serverUrl: String = "https://api.github.com",
|
|
3616
3639
|
_ = runner.executeCommand(command)
|
3617
3640
|
}
|
3618
3641
|
|
3642
|
+
/**
|
3643
|
+
Retrieves release names for a Google Play track
|
3644
|
+
|
3645
|
+
- parameters:
|
3646
|
+
- packageName: The package name of the application to use
|
3647
|
+
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
3648
|
+
- key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
|
3649
|
+
- issuer: **DEPRECATED!** Use `--json_key` instead - The issuer of the p12 file (email address of the service account)
|
3650
|
+
- jsonKey: The path to a file containing service account JSON, used to authenticate with Google
|
3651
|
+
- jsonKeyData: The raw service account JSON data used to authenticate with Google
|
3652
|
+
- rootUrl: Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/
|
3653
|
+
- timeout: Timeout for read, open, and send (in seconds)
|
3654
|
+
|
3655
|
+
- returns: Array of strings representing the release names for the given Google Play track
|
3656
|
+
|
3657
|
+
More information: [https://docs.fastlane.tools/actions/supply/](https://docs.fastlane.tools/actions/supply/)
|
3658
|
+
*/
|
3659
|
+
func googlePlayTrackReleaseNames(packageName: String,
|
3660
|
+
track: String = "production",
|
3661
|
+
key: String? = nil,
|
3662
|
+
issuer: String? = nil,
|
3663
|
+
jsonKey: String? = nil,
|
3664
|
+
jsonKeyData: String? = nil,
|
3665
|
+
rootUrl: String? = nil,
|
3666
|
+
timeout: Int = 300) {
|
3667
|
+
let command = RubyCommand(commandID: "", methodName: "google_play_track_release_names", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
|
3668
|
+
RubyCommand.Argument(name: "track", value: track),
|
3669
|
+
RubyCommand.Argument(name: "key", value: key),
|
3670
|
+
RubyCommand.Argument(name: "issuer", value: issuer),
|
3671
|
+
RubyCommand.Argument(name: "json_key", value: jsonKey),
|
3672
|
+
RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
|
3673
|
+
RubyCommand.Argument(name: "root_url", value: rootUrl),
|
3674
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
3675
|
+
_ = runner.executeCommand(command)
|
3676
|
+
}
|
3677
|
+
|
3619
3678
|
/**
|
3620
3679
|
Retrieves version codes for a Google Play track
|
3621
3680
|
|
@@ -3724,7 +3783,7 @@ func gradle(task: String? = nil,
|
|
3724
3783
|
- skipArchive: After building, don't archive, effectively not including -archivePath param
|
3725
3784
|
- skipCodesigning: Build without codesigning
|
3726
3785
|
- catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
|
3727
|
-
- installerCertName: Full name of 3rd Party Mac Developer Installer or
|
3786
|
+
- installerCertName: Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
|
3728
3787
|
- buildPath: The directory in which the archive should be stored in
|
3729
3788
|
- archivePath: The path to the created archive
|
3730
3789
|
- derivedDataPath: The directory where built products and other derived data will go
|
@@ -4509,6 +4568,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
4509
4568
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
4510
4569
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
4511
4570
|
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
4571
|
+
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
4512
4572
|
- outputPath: Path in which to export certificates, key and profile
|
4513
4573
|
- verbose: Print out extra information and all commands
|
4514
4574
|
|
@@ -4548,6 +4608,7 @@ func match(type: Any = matchfile.type,
|
|
4548
4608
|
platform: Any = matchfile.platform,
|
4549
4609
|
templateName: Any? = matchfile.templateName,
|
4550
4610
|
profileName: Any? = matchfile.profileName,
|
4611
|
+
failOnNameTaken: Bool = matchfile.failOnNameTaken,
|
4551
4612
|
outputPath: Any? = matchfile.outputPath,
|
4552
4613
|
verbose: Bool = matchfile.verbose) {
|
4553
4614
|
let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
@@ -4584,6 +4645,7 @@ func match(type: Any = matchfile.type,
|
|
4584
4645
|
RubyCommand.Argument(name: "platform", value: platform),
|
4585
4646
|
RubyCommand.Argument(name: "template_name", value: templateName),
|
4586
4647
|
RubyCommand.Argument(name: "profile_name", value: profileName),
|
4648
|
+
RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
|
4587
4649
|
RubyCommand.Argument(name: "output_path", value: outputPath),
|
4588
4650
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
4589
4651
|
_ = runner.executeCommand(command)
|
@@ -4979,6 +5041,7 @@ func pem(development: Bool = false,
|
|
4979
5041
|
- notifyExternalTesters: Should notify external testers?
|
4980
5042
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
4981
5043
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
5044
|
+
- expirePreviousBuilds: Should expire previous builds?
|
4982
5045
|
- firstName: The tester's first name
|
4983
5046
|
- lastName: The tester's last name
|
4984
5047
|
- email: The tester's email
|
@@ -5015,6 +5078,7 @@ func pilot(username: String,
|
|
5015
5078
|
notifyExternalTesters: Bool = true,
|
5016
5079
|
appVersion: String? = nil,
|
5017
5080
|
buildNumber: String? = nil,
|
5081
|
+
expirePreviousBuilds: Bool = false,
|
5018
5082
|
firstName: String? = nil,
|
5019
5083
|
lastName: String? = nil,
|
5020
5084
|
email: String? = nil,
|
@@ -5047,6 +5111,7 @@ func pilot(username: String,
|
|
5047
5111
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
5048
5112
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
5049
5113
|
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
5114
|
+
RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
|
5050
5115
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
5051
5116
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
5052
5117
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -5678,6 +5743,8 @@ func rubyVersion() {
|
|
5678
5743
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5679
5744
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5680
5745
|
- testplan: The testplan associated with the scheme that should be used for testing
|
5746
|
+
- onlyTestConfigurations: Array of strings matching test plan configurations to run
|
5747
|
+
- skipTestConfigurations: Array of strings matching test plan configurations to skip
|
5681
5748
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5682
5749
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5683
5750
|
- clean: Should the project be cleaned before building it?
|
@@ -5742,6 +5809,8 @@ func runTests(workspace: String? = nil,
|
|
5742
5809
|
onlyTesting: Any? = nil,
|
5743
5810
|
skipTesting: Any? = nil,
|
5744
5811
|
testplan: String? = nil,
|
5812
|
+
onlyTestConfigurations: Any? = nil,
|
5813
|
+
skipTestConfigurations: Any? = nil,
|
5745
5814
|
xctestrun: String? = nil,
|
5746
5815
|
toolchain: Any? = nil,
|
5747
5816
|
clean: Bool = false,
|
@@ -5780,7 +5849,7 @@ func runTests(workspace: String? = nil,
|
|
5780
5849
|
slackMessage: String? = nil,
|
5781
5850
|
slackUseWebhookConfiguredUsernameAndIcon: Bool = false,
|
5782
5851
|
slackUsername: String = "fastlane",
|
5783
|
-
slackIconUrl: String = "https://
|
5852
|
+
slackIconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
|
5784
5853
|
skipSlack: Bool = false,
|
5785
5854
|
slackOnlyOnFailure: Bool = false,
|
5786
5855
|
destination: Any? = nil,
|
@@ -5803,6 +5872,8 @@ func runTests(workspace: String? = nil,
|
|
5803
5872
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
5804
5873
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
5805
5874
|
RubyCommand.Argument(name: "testplan", value: testplan),
|
5875
|
+
RubyCommand.Argument(name: "only_test_configurations", value: onlyTestConfigurations),
|
5876
|
+
RubyCommand.Argument(name: "skip_test_configurations", value: skipTestConfigurations),
|
5806
5877
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
5807
5878
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
5808
5879
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -5945,6 +6016,8 @@ func say(text: Any,
|
|
5945
6016
|
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
5946
6017
|
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
5947
6018
|
- testplan: The testplan associated with the scheme that should be used for testing
|
6019
|
+
- onlyTestConfigurations: Array of strings matching test plan configurations to run
|
6020
|
+
- skipTestConfigurations: Array of strings matching test plan configurations to skip
|
5948
6021
|
- xctestrun: Run tests using the provided `.xctestrun` file
|
5949
6022
|
- toolchain: The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`)
|
5950
6023
|
- clean: Should the project be cleaned before building it?
|
@@ -6009,6 +6082,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
6009
6082
|
onlyTesting: Any? = scanfile.onlyTesting,
|
6010
6083
|
skipTesting: Any? = scanfile.skipTesting,
|
6011
6084
|
testplan: Any? = scanfile.testplan,
|
6085
|
+
onlyTestConfigurations: Any? = scanfile.onlyTestConfigurations,
|
6086
|
+
skipTestConfigurations: Any? = scanfile.skipTestConfigurations,
|
6012
6087
|
xctestrun: Any? = scanfile.xctestrun,
|
6013
6088
|
toolchain: Any? = scanfile.toolchain,
|
6014
6089
|
clean: Bool = scanfile.clean,
|
@@ -6070,6 +6145,8 @@ func scan(workspace: Any? = scanfile.workspace,
|
|
6070
6145
|
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
6071
6146
|
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6072
6147
|
RubyCommand.Argument(name: "testplan", value: testplan),
|
6148
|
+
RubyCommand.Argument(name: "only_test_configurations", value: onlyTestConfigurations),
|
6149
|
+
RubyCommand.Argument(name: "skip_test_configurations", value: skipTestConfigurations),
|
6073
6150
|
RubyCommand.Argument(name: "xctestrun", value: xctestrun),
|
6074
6151
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
6075
6152
|
RubyCommand.Argument(name: "clean", value: clean),
|
@@ -6479,10 +6556,10 @@ func setupTravis(force: Bool = false) {
|
|
6479
6556
|
*/
|
6480
6557
|
@discardableResult func sh(command: String,
|
6481
6558
|
log: Bool = true,
|
6482
|
-
errorCallback:
|
6559
|
+
errorCallback: ((String) -> Void)? = nil) -> String {
|
6483
6560
|
let command = RubyCommand(commandID: "", methodName: "sh", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
|
6484
6561
|
RubyCommand.Argument(name: "log", value: log),
|
6485
|
-
RubyCommand.Argument(name: "error_callback", value: errorCallback)])
|
6562
|
+
RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure)])
|
6486
6563
|
return runner.executeCommand(command)
|
6487
6564
|
}
|
6488
6565
|
|
@@ -6510,6 +6587,7 @@ func setupTravis(force: Bool = false) {
|
|
6510
6587
|
- platform: Set the provisioning profile's platform (i.e. ios, tvos)
|
6511
6588
|
- readonly: Only fetch existing profile, don't generate new ones
|
6512
6589
|
- 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")
|
6590
|
+
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
6513
6591
|
|
6514
6592
|
- returns: The UUID of the profile sigh just fetched/generated
|
6515
6593
|
|
@@ -6534,7 +6612,8 @@ func sigh(adhoc: Bool = false,
|
|
6534
6612
|
skipCertificateVerification: Bool = false,
|
6535
6613
|
platform: Any = "ios",
|
6536
6614
|
readonly: Bool = false,
|
6537
|
-
templateName: String? = nil
|
6615
|
+
templateName: String? = nil,
|
6616
|
+
failOnNameTaken: Bool = false) {
|
6538
6617
|
let command = RubyCommand(commandID: "", methodName: "sigh", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
|
6539
6618
|
RubyCommand.Argument(name: "developer_id", value: developerId),
|
6540
6619
|
RubyCommand.Argument(name: "development", value: development),
|
@@ -6554,7 +6633,8 @@ func sigh(adhoc: Bool = false,
|
|
6554
6633
|
RubyCommand.Argument(name: "skip_certificate_verification", value: skipCertificateVerification),
|
6555
6634
|
RubyCommand.Argument(name: "platform", value: platform),
|
6556
6635
|
RubyCommand.Argument(name: "readonly", value: readonly),
|
6557
|
-
RubyCommand.Argument(name: "template_name", value: templateName)
|
6636
|
+
RubyCommand.Argument(name: "template_name", value: templateName),
|
6637
|
+
RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken)])
|
6558
6638
|
_ = runner.executeCommand(command)
|
6559
6639
|
}
|
6560
6640
|
|
@@ -6594,7 +6674,7 @@ func slack(message: String? = nil,
|
|
6594
6674
|
useWebhookConfiguredUsernameAndIcon: Bool = false,
|
6595
6675
|
slackUrl: String,
|
6596
6676
|
username: String = "fastlane",
|
6597
|
-
iconUrl: String = "https://
|
6677
|
+
iconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
|
6598
6678
|
payload: [String : Any] = [:],
|
6599
6679
|
defaultPayloads: [String]? = nil,
|
6600
6680
|
attachmentProperties: [String : Any] = [:],
|
@@ -6675,6 +6755,7 @@ func slackTrainStart(distance: Int = 5,
|
|
6675
6755
|
- simpleOutput: Tell slather that it should output results to the terminal
|
6676
6756
|
- gutterJson: Tell slather that it should output results as Gutter JSON format
|
6677
6757
|
- coberturaXml: Tell slather that it should output results as Cobertura XML format
|
6758
|
+
- sonarqubeXml: Tell slather that it should output results as SonarQube Generic XML format
|
6678
6759
|
- llvmCov: Tell slather that it should output results as llvm-cov show format
|
6679
6760
|
- html: Tell slather that it should output results as static HTML pages
|
6680
6761
|
- show: Tell slather that it should open static html pages automatically
|
@@ -6708,6 +6789,7 @@ func slather(buildDirectory: String? = nil,
|
|
6708
6789
|
simpleOutput: Bool? = nil,
|
6709
6790
|
gutterJson: Bool? = nil,
|
6710
6791
|
coberturaXml: Bool? = nil,
|
6792
|
+
sonarqubeXml: Bool? = nil,
|
6711
6793
|
llvmCov: Any? = nil,
|
6712
6794
|
html: Bool? = nil,
|
6713
6795
|
show: Bool = false,
|
@@ -6737,6 +6819,7 @@ func slather(buildDirectory: String? = nil,
|
|
6737
6819
|
RubyCommand.Argument(name: "simple_output", value: simpleOutput),
|
6738
6820
|
RubyCommand.Argument(name: "gutter_json", value: gutterJson),
|
6739
6821
|
RubyCommand.Argument(name: "cobertura_xml", value: coberturaXml),
|
6822
|
+
RubyCommand.Argument(name: "sonarqube_xml", value: sonarqubeXml),
|
6740
6823
|
RubyCommand.Argument(name: "llvm_cov", value: llvmCov),
|
6741
6824
|
RubyCommand.Argument(name: "html", value: html),
|
6742
6825
|
RubyCommand.Argument(name: "show", value: show),
|
@@ -6778,6 +6861,7 @@ func slather(buildDirectory: String? = nil,
|
|
6778
6861
|
- appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
|
6779
6862
|
- addPhotos: A list of photos that should be added to the simulator before running the application
|
6780
6863
|
- addVideos: A list of videos that should be added to the simulator before running the application
|
6864
|
+
- htmlTemplate: A path to screenshots.html template
|
6781
6865
|
- buildlogPath: The directory where to store the build log
|
6782
6866
|
- clean: Should the project be cleaned before building it?
|
6783
6867
|
- testWithoutBuilding: Test without building, requires a derived data path
|
@@ -6795,6 +6879,9 @@ func slather(buildDirectory: String? = nil,
|
|
6795
6879
|
- disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
|
6796
6880
|
- clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
|
6797
6881
|
- testplan: The testplan associated with the scheme that should be used for testing
|
6882
|
+
- onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
|
6883
|
+
- skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
|
6884
|
+
- disableXcpretty: Disable xcpretty formatting of build
|
6798
6885
|
*/
|
6799
6886
|
func snapshot(workspace: Any? = snapshotfile.workspace,
|
6800
6887
|
project: Any? = snapshotfile.project,
|
@@ -6817,6 +6904,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6817
6904
|
appIdentifier: Any? = snapshotfile.appIdentifier,
|
6818
6905
|
addPhotos: [String]? = snapshotfile.addPhotos,
|
6819
6906
|
addVideos: [String]? = snapshotfile.addVideos,
|
6907
|
+
htmlTemplate: Any? = snapshotfile.htmlTemplate,
|
6820
6908
|
buildlogPath: Any = snapshotfile.buildlogPath,
|
6821
6909
|
clean: Bool = snapshotfile.clean,
|
6822
6910
|
testWithoutBuilding: Bool? = snapshotfile.testWithoutBuilding,
|
@@ -6833,7 +6921,10 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6833
6921
|
concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
|
6834
6922
|
disableSlideToType: Bool = snapshotfile.disableSlideToType,
|
6835
6923
|
clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath,
|
6836
|
-
testplan: Any? = snapshotfile.testplan
|
6924
|
+
testplan: Any? = snapshotfile.testplan,
|
6925
|
+
onlyTesting: Any? = snapshotfile.onlyTesting,
|
6926
|
+
skipTesting: Any? = snapshotfile.skipTesting,
|
6927
|
+
disableXcpretty: Bool? = snapshotfile.disableXcpretty) {
|
6837
6928
|
let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
6838
6929
|
RubyCommand.Argument(name: "project", value: project),
|
6839
6930
|
RubyCommand.Argument(name: "xcargs", value: xcargs),
|
@@ -6855,6 +6946,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6855
6946
|
RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
|
6856
6947
|
RubyCommand.Argument(name: "add_photos", value: addPhotos),
|
6857
6948
|
RubyCommand.Argument(name: "add_videos", value: addVideos),
|
6949
|
+
RubyCommand.Argument(name: "html_template", value: htmlTemplate),
|
6858
6950
|
RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
|
6859
6951
|
RubyCommand.Argument(name: "clean", value: clean),
|
6860
6952
|
RubyCommand.Argument(name: "test_without_building", value: testWithoutBuilding),
|
@@ -6871,7 +6963,10 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
|
|
6871
6963
|
RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
|
6872
6964
|
RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
|
6873
6965
|
RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
|
6874
|
-
RubyCommand.Argument(name: "testplan", value: testplan)
|
6966
|
+
RubyCommand.Argument(name: "testplan", value: testplan),
|
6967
|
+
RubyCommand.Argument(name: "only_testing", value: onlyTesting),
|
6968
|
+
RubyCommand.Argument(name: "skip_testing", value: skipTesting),
|
6969
|
+
RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
|
6875
6970
|
_ = runner.executeCommand(command)
|
6876
6971
|
}
|
6877
6972
|
|
@@ -7087,6 +7182,7 @@ func ssh(username: String,
|
|
7087
7182
|
- timeout: Timeout for read, open, and send (in seconds)
|
7088
7183
|
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
7089
7184
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
7185
|
+
- inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
|
7090
7186
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
7091
7187
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
7092
7188
|
- obbPatchReferencesVersion: References version of 'patch' expansion file
|
@@ -7124,6 +7220,7 @@ func supply(packageName: String,
|
|
7124
7220
|
timeout: Int = 300,
|
7125
7221
|
deactivateOnPromote: Bool = true,
|
7126
7222
|
versionCodesToRetain: [String]? = nil,
|
7223
|
+
inAppUpdatePriority: Int? = nil,
|
7127
7224
|
obbMainReferencesVersion: String? = nil,
|
7128
7225
|
obbMainFileSize: String? = nil,
|
7129
7226
|
obbPatchReferencesVersion: String? = nil,
|
@@ -7158,6 +7255,7 @@ func supply(packageName: String,
|
|
7158
7255
|
RubyCommand.Argument(name: "timeout", value: timeout),
|
7159
7256
|
RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
|
7160
7257
|
RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain),
|
7258
|
+
RubyCommand.Argument(name: "in_app_update_priority", value: inAppUpdatePriority),
|
7161
7259
|
RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
|
7162
7260
|
RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
|
7163
7261
|
RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
|
@@ -7253,6 +7351,7 @@ func swiftlint(mode: Any = "lint",
|
|
7253
7351
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
|
7254
7352
|
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
7255
7353
|
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
7354
|
+
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
7256
7355
|
- outputPath: Path in which to export certificates, key and profile
|
7257
7356
|
- verbose: Print out extra information and all commands
|
7258
7357
|
|
@@ -7292,6 +7391,7 @@ func syncCodeSigning(type: String = "development",
|
|
7292
7391
|
platform: String = "ios",
|
7293
7392
|
templateName: String? = nil,
|
7294
7393
|
profileName: String? = nil,
|
7394
|
+
failOnNameTaken: Bool = false,
|
7295
7395
|
outputPath: String? = nil,
|
7296
7396
|
verbose: Bool = false) {
|
7297
7397
|
let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
|
@@ -7328,6 +7428,7 @@ func syncCodeSigning(type: String = "development",
|
|
7328
7428
|
RubyCommand.Argument(name: "platform", value: platform),
|
7329
7429
|
RubyCommand.Argument(name: "template_name", value: templateName),
|
7330
7430
|
RubyCommand.Argument(name: "profile_name", value: profileName),
|
7431
|
+
RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
|
7331
7432
|
RubyCommand.Argument(name: "output_path", value: outputPath),
|
7332
7433
|
RubyCommand.Argument(name: "verbose", value: verbose)])
|
7333
7434
|
_ = runner.executeCommand(command)
|
@@ -7422,6 +7523,7 @@ func testfairy(apiKey: String,
|
|
7422
7523
|
- notifyExternalTesters: Should notify external testers?
|
7423
7524
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
7424
7525
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
7526
|
+
- expirePreviousBuilds: Should expire previous builds?
|
7425
7527
|
- firstName: The tester's first name
|
7426
7528
|
- lastName: The tester's last name
|
7427
7529
|
- email: The tester's email
|
@@ -7458,6 +7560,7 @@ func testflight(username: String,
|
|
7458
7560
|
notifyExternalTesters: Bool = true,
|
7459
7561
|
appVersion: String? = nil,
|
7460
7562
|
buildNumber: String? = nil,
|
7563
|
+
expirePreviousBuilds: Bool = false,
|
7461
7564
|
firstName: String? = nil,
|
7462
7565
|
lastName: String? = nil,
|
7463
7566
|
email: String? = nil,
|
@@ -7490,6 +7593,7 @@ func testflight(username: String,
|
|
7490
7593
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
7491
7594
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
7492
7595
|
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
7596
|
+
RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
|
7493
7597
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
7494
7598
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
7495
7599
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -8187,6 +8291,7 @@ func uploadToAppStore(username: String,
|
|
8187
8291
|
- timeout: Timeout for read, open, and send (in seconds)
|
8188
8292
|
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
8189
8293
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
8294
|
+
- inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
|
8190
8295
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
8191
8296
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
8192
8297
|
- obbPatchReferencesVersion: References version of 'patch' expansion file
|
@@ -8224,6 +8329,7 @@ func uploadToPlayStore(packageName: String,
|
|
8224
8329
|
timeout: Int = 300,
|
8225
8330
|
deactivateOnPromote: Bool = true,
|
8226
8331
|
versionCodesToRetain: [String]? = nil,
|
8332
|
+
inAppUpdatePriority: Int? = nil,
|
8227
8333
|
obbMainReferencesVersion: String? = nil,
|
8228
8334
|
obbMainFileSize: String? = nil,
|
8229
8335
|
obbPatchReferencesVersion: String? = nil,
|
@@ -8258,6 +8364,7 @@ func uploadToPlayStore(packageName: String,
|
|
8258
8364
|
RubyCommand.Argument(name: "timeout", value: timeout),
|
8259
8365
|
RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
|
8260
8366
|
RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain),
|
8367
|
+
RubyCommand.Argument(name: "in_app_update_priority", value: inAppUpdatePriority),
|
8261
8368
|
RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
|
8262
8369
|
RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
|
8263
8370
|
RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
|
@@ -8328,6 +8435,7 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
8328
8435
|
- notifyExternalTesters: Should notify external testers?
|
8329
8436
|
- appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
|
8330
8437
|
- buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
|
8438
|
+
- expirePreviousBuilds: Should expire previous builds?
|
8331
8439
|
- firstName: The tester's first name
|
8332
8440
|
- lastName: The tester's last name
|
8333
8441
|
- email: The tester's email
|
@@ -8364,6 +8472,7 @@ func uploadToTestflight(username: String,
|
|
8364
8472
|
notifyExternalTesters: Bool = true,
|
8365
8473
|
appVersion: String? = nil,
|
8366
8474
|
buildNumber: String? = nil,
|
8475
|
+
expirePreviousBuilds: Bool = false,
|
8367
8476
|
firstName: String? = nil,
|
8368
8477
|
lastName: String? = nil,
|
8369
8478
|
email: String? = nil,
|
@@ -8396,6 +8505,7 @@ func uploadToTestflight(username: String,
|
|
8396
8505
|
RubyCommand.Argument(name: "notify_external_testers", value: notifyExternalTesters),
|
8397
8506
|
RubyCommand.Argument(name: "app_version", value: appVersion),
|
8398
8507
|
RubyCommand.Argument(name: "build_number", value: buildNumber),
|
8508
|
+
RubyCommand.Argument(name: "expire_previous_builds", value: expirePreviousBuilds),
|
8399
8509
|
RubyCommand.Argument(name: "first_name", value: firstName),
|
8400
8510
|
RubyCommand.Argument(name: "last_name", value: lastName),
|
8401
8511
|
RubyCommand.Argument(name: "email", value: email),
|
@@ -8689,7 +8799,7 @@ func xcov(workspace: String? = nil,
|
|
8689
8799
|
htmlReport: Bool = true,
|
8690
8800
|
markdownReport: Bool = false,
|
8691
8801
|
jsonReport: Bool = false,
|
8692
|
-
minimumCoveragePercentage:
|
8802
|
+
minimumCoveragePercentage: Float = 0,
|
8693
8803
|
slackUrl: String? = nil,
|
8694
8804
|
slackChannel: String? = nil,
|
8695
8805
|
skipSlack: Bool = false,
|
@@ -8705,7 +8815,7 @@ func xcov(workspace: String? = nil,
|
|
8705
8815
|
coverallsServiceJobId: String? = nil,
|
8706
8816
|
coverallsRepoToken: String? = nil,
|
8707
8817
|
xcconfig: String? = nil,
|
8708
|
-
ideFoundationPath: String = "/Applications/Xcode-11.
|
8818
|
+
ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8709
8819
|
legacySupport: Bool = false) {
|
8710
8820
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8711
8821
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8850,4 +8960,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8850
8960
|
|
8851
8961
|
// Please don't remove the lines below
|
8852
8962
|
// They are used to detect outdated files
|
8853
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8963
|
+
// FastlaneRunnerAPIVersion [0.9.71]
|