fastlane 2.189.0 → 2.193.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +92 -92
- data/deliver/lib/deliver/app_screenshot.rb +2 -1
- data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
- data/deliver/lib/deliver/loader.rb +1 -1
- data/deliver/lib/deliver/options.rb +6 -0
- data/deliver/lib/deliver/runner.rb +9 -1
- data/deliver/lib/deliver/screenshot_comparable.rb +62 -0
- data/deliver/lib/deliver/sync_screenshots.rb +200 -0
- data/fastlane/lib/assets/completions/completion.bash +4 -1
- data/fastlane/lib/assets/completions/completion.zsh +6 -5
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
- data/fastlane/lib/fastlane/actions/bundle_install.rb +13 -1
- data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +25 -1
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +97 -17
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +2 -2
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
- data/fastlane/lib/fastlane/actions/notarize.rb +77 -1
- data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +3 -1
- data/fastlane/lib/fastlane/actions/zip.rb +86 -21
- data/fastlane/lib/fastlane/features.rb +3 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +5 -1
- data/fastlane/swift/Fastlane.swift +121 -25
- 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 +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +9 -9
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +25 -6
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +11 -4
- data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +1 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +41 -0
- data/match/lib/match/runner.rb +5 -5
- data/match/lib/match/storage/.git_storage.rb.swp +0 -0
- data/match/lib/match/storage/.interface.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +14 -4
- data/pilot/lib/pilot/manager.rb +3 -1
- data/pilot/lib/pilot/options.rb +20 -1
- data/produce/lib/produce/commands_generator.rb +28 -0
- data/produce/lib/produce/service.rb +16 -1
- data/scan/lib/scan/xcpretty_reporter_options_generator.rb +1 -1
- data/sigh/lib/sigh/options.rb +2 -1
- data/spaceship/lib/spaceship/client.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +15 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +9 -1
- data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/capabilities.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/user.rb +17 -3
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +26 -5
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +3 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +46 -5
- data/spaceship/lib/spaceship/connect_api/token.rb +4 -1
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +3 -0
- data/spaceship/lib/spaceship/connect_api/users/client.rb +3 -0
- data/spaceship/lib/spaceship/connect_api/users/users.rb +58 -3
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -0
- data/supply/lib/supply/client.rb +38 -5
- data/supply/lib/supply/options.rb +7 -0
- data/supply/lib/supply/uploader.rb +1 -1
- metadata +39 -19
@@ -82,7 +82,7 @@ module Fastlane
|
|
82
82
|
def self.output
|
83
83
|
[
|
84
84
|
['MATCH_PROVISIONING_PROFILE_MAPPING', 'The match provisioning profile mapping'],
|
85
|
-
['SIGH_PROFILE_TYPE', 'The profile type, can be
|
85
|
+
['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, can be used in `build_app` as a default value for `export_method`']
|
86
86
|
]
|
87
87
|
end
|
88
88
|
|
@@ -13,6 +13,8 @@ module Fastlane
|
|
13
13
|
unless distribute_only
|
14
14
|
values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
15
15
|
values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
|
16
|
+
values[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
|
17
|
+
values[:pkg] = File.expand_path(values[:pkg]) if values[:pkg]
|
16
18
|
end
|
17
19
|
|
18
20
|
# Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
|
@@ -117,7 +119,7 @@ module Fastlane
|
|
117
119
|
end
|
118
120
|
|
119
121
|
def self.is_supported?(platform)
|
120
|
-
[:ios].include?(platform)
|
122
|
+
[:ios, :mac, :tvos].include?(platform)
|
121
123
|
end
|
122
124
|
end
|
123
125
|
end
|
@@ -1,35 +1,76 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
class ZipAction < Action
|
4
|
-
|
5
|
-
|
4
|
+
class Runner
|
5
|
+
attr_reader :output_path, :path, :verbose, :password, :symlinks, :include, :exclude
|
6
|
+
|
7
|
+
def initialize(params)
|
8
|
+
@output_path = File.expand_path(params[:output_path] || params[:path])
|
9
|
+
@path = params[:path]
|
10
|
+
@verbose = params[:verbose]
|
11
|
+
@password = params[:password]
|
12
|
+
@symlinks = params[:symlinks]
|
13
|
+
@include = params[:include] || []
|
14
|
+
@exclude = params[:exclude] || []
|
15
|
+
|
16
|
+
@output_path += ".zip" unless @output_path.end_with?(".zip")
|
17
|
+
end
|
18
|
+
|
19
|
+
def run
|
20
|
+
UI.message("Compressing #{path}...")
|
6
21
|
|
7
|
-
|
22
|
+
create_output_dir
|
23
|
+
run_zip_command
|
8
24
|
|
9
|
-
|
25
|
+
UI.success("Successfully generated zip file at path '#{output_path}'")
|
26
|
+
output_path
|
27
|
+
end
|
10
28
|
|
11
|
-
|
12
|
-
|
13
|
-
|
29
|
+
def create_output_dir
|
30
|
+
output_dir = File.expand_path("..", output_path)
|
31
|
+
FileUtils.mkdir_p(output_dir)
|
14
32
|
end
|
15
33
|
|
16
|
-
|
17
|
-
|
34
|
+
def run_zip_command
|
35
|
+
# The 'zip' command archives relative to the working directory, chdir to produce expected results relative to `path`
|
36
|
+
Dir.chdir(File.expand_path("..", path)) do
|
37
|
+
Actions.sh(*zip_command)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def zip_command
|
42
|
+
zip_options = verbose ? "r" : "rq"
|
43
|
+
zip_options += "y" if symlinks
|
44
|
+
|
45
|
+
command = ["zip", "-#{zip_options}"]
|
46
|
+
|
47
|
+
if password
|
48
|
+
command << "-P"
|
49
|
+
command << password
|
50
|
+
end
|
51
|
+
|
52
|
+
# The zip command is executed from the paths **parent** directory, as a result we use just the basename, which is the file or folder within
|
53
|
+
basename = File.basename(path)
|
18
54
|
|
19
|
-
|
20
|
-
|
21
|
-
zip_options += "y" if params[:symlinks]
|
55
|
+
command << output_path
|
56
|
+
command << basename
|
22
57
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
else
|
27
|
-
Actions.sh("zip -#{zip_options} #{absolute_output_path.shellescape} #{File.basename(params[:path]).shellescape}")
|
58
|
+
unless include.empty?
|
59
|
+
command << "-i"
|
60
|
+
command += include.map { |path| File.join(basename, path) }
|
28
61
|
end
|
62
|
+
|
63
|
+
unless exclude.empty?
|
64
|
+
command << "-x"
|
65
|
+
command += exclude.map { |path| File.join(basename, path) }
|
66
|
+
end
|
67
|
+
|
68
|
+
command
|
29
69
|
end
|
70
|
+
end
|
30
71
|
|
31
|
-
|
32
|
-
|
72
|
+
def self.run(params)
|
73
|
+
Runner.new(params).run
|
33
74
|
end
|
34
75
|
|
35
76
|
#####################################################
|
@@ -46,7 +87,8 @@ module Fastlane
|
|
46
87
|
env_name: "FL_ZIP_PATH",
|
47
88
|
description: "Path to the directory or file to be zipped",
|
48
89
|
verify_block: proc do |value|
|
49
|
-
|
90
|
+
path = File.expand_path(value)
|
91
|
+
UI.user_error!("Couldn't find file/folder at path '#{path}'") unless File.exist?(path)
|
50
92
|
end),
|
51
93
|
FastlaneCore::ConfigItem.new(key: :output_path,
|
52
94
|
env_name: "FL_ZIP_OUTPUT_NAME",
|
@@ -67,7 +109,19 @@ module Fastlane
|
|
67
109
|
description: "Store symbolic links as such in the zip archive",
|
68
110
|
optional: true,
|
69
111
|
type: Boolean,
|
70
|
-
default_value: false)
|
112
|
+
default_value: false),
|
113
|
+
FastlaneCore::ConfigItem.new(key: :include,
|
114
|
+
env_name: "FL_ZIP_INCLUDE",
|
115
|
+
description: "Array of paths or patterns to include",
|
116
|
+
optional: true,
|
117
|
+
type: Array,
|
118
|
+
default_value: []),
|
119
|
+
FastlaneCore::ConfigItem.new(key: :exclude,
|
120
|
+
env_name: "FL_ZIP_EXCLUDE",
|
121
|
+
description: "Array of paths or patterns to exclude",
|
122
|
+
optional: true,
|
123
|
+
type: Array,
|
124
|
+
default_value: [])
|
71
125
|
]
|
72
126
|
end
|
73
127
|
|
@@ -88,6 +142,17 @@ module Fastlane
|
|
88
142
|
output_path: "Latest.app.zip",
|
89
143
|
verbose: false,
|
90
144
|
symlinks: true
|
145
|
+
)',
|
146
|
+
'zip(
|
147
|
+
path: "./",
|
148
|
+
output_path: "Source Code.zip",
|
149
|
+
exclude: [".git/*"]
|
150
|
+
)',
|
151
|
+
'zip(
|
152
|
+
path: "./",
|
153
|
+
output_path: "Swift Code.zip",
|
154
|
+
include: ["**/*.swift"],
|
155
|
+
exclude: ["Package.swift", "vendor/*", "Pods/*"]
|
91
156
|
)'
|
92
157
|
]
|
93
158
|
end
|
@@ -2,3 +2,6 @@
|
|
2
2
|
|
3
3
|
# FastlaneCore::Feature.register(env_var: 'YOUR_FEATURE_SWITCH_ENV_VAR',
|
4
4
|
# description: 'Describe what this feature switch controls')
|
5
|
+
|
6
|
+
FastlaneCore::Feature.register(env_var: 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS',
|
7
|
+
description: 'Use a newly implemented screenshots synchronization logic')
|
@@ -59,6 +59,9 @@ public protocol DeliverfileProtocol: class {
|
|
59
59
|
/// Clear all previously uploaded screenshots before uploading the new ones
|
60
60
|
var overwriteScreenshots: Bool { get }
|
61
61
|
|
62
|
+
/// Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
63
|
+
var syncScreenshots: Bool { get }
|
64
|
+
|
62
65
|
/// Submit the new version for Review after uploading everything
|
63
66
|
var submitForReview: Bool { get }
|
64
67
|
|
@@ -209,6 +212,7 @@ public extension DeliverfileProtocol {
|
|
209
212
|
var skipAppVersionUpdate: Bool { return false }
|
210
213
|
var force: Bool { return false }
|
211
214
|
var overwriteScreenshots: Bool { return false }
|
215
|
+
var syncScreenshots: Bool { return false }
|
212
216
|
var submitForReview: Bool { return false }
|
213
217
|
var rejectIfPossible: Bool { return false }
|
214
218
|
var automaticRelease: Bool? { return nil }
|
@@ -256,4 +260,4 @@ public extension DeliverfileProtocol {
|
|
256
260
|
|
257
261
|
// Please don't remove the lines below
|
258
262
|
// They are used to detect outdated files
|
259
|
-
// FastlaneRunnerAPIVersion [0.9.
|
263
|
+
// FastlaneRunnerAPIVersion [0.9.81]
|
@@ -204,7 +204,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
204
204
|
keyFilepath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
205
205
|
keyContent: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
206
206
|
isKeyContentBase64: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
207
|
-
duration: Int =
|
207
|
+
duration: Int = 500,
|
208
208
|
inHouse: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
209
209
|
setSpaceshipToken: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
210
210
|
{
|
@@ -661,6 +661,7 @@ public func appledoc(input: [String],
|
|
661
661
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
662
662
|
- force: Skip verification of HTML preview file
|
663
663
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
664
|
+
- syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
664
665
|
- submitForReview: Submit the new version for Review after uploading everything
|
665
666
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
666
667
|
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
@@ -731,6 +732,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
731
732
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
732
733
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
733
734
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
735
|
+
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
734
736
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
735
737
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
736
738
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
@@ -794,6 +796,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
794
796
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
795
797
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
796
798
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
799
|
+
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
797
800
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
798
801
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
799
802
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
@@ -856,6 +859,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
856
859
|
skipAppVersionUpdateArg,
|
857
860
|
forceArg,
|
858
861
|
overwriteScreenshotsArg,
|
862
|
+
syncScreenshotsArg,
|
859
863
|
submitForReviewArg,
|
860
864
|
rejectIfPossibleArg,
|
861
865
|
automaticReleaseArg,
|
@@ -1888,6 +1892,8 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
|
|
1888
1892
|
- trustPolicy: Sets level of security when dealing with signed gems. Accepts `LowSecurity`, `MediumSecurity` and `HighSecurity` as values
|
1889
1893
|
- without: Exclude gems that are part of the specified named group
|
1890
1894
|
- with: Include gems that are part of the specified named group
|
1895
|
+
- frozen: Don't allow the Gemfile.lock to be updated after install
|
1896
|
+
- redownload: Force download every gem, even if the required versions are already available locally
|
1891
1897
|
*/
|
1892
1898
|
public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
1893
1899
|
clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -1906,7 +1912,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
|
|
1906
1912
|
standalone: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
1907
1913
|
trustPolicy: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
1908
1914
|
without: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
1909
|
-
with: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
1915
|
+
with: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
1916
|
+
frozen: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
1917
|
+
redownload: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
1910
1918
|
{
|
1911
1919
|
let binstubsArg = binstubs.asRubyArgument(name: "binstubs", type: nil)
|
1912
1920
|
let cleanArg = clean.asRubyArgument(name: "clean", type: nil)
|
@@ -1926,6 +1934,8 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
|
|
1926
1934
|
let trustPolicyArg = trustPolicy.asRubyArgument(name: "trust_policy", type: nil)
|
1927
1935
|
let withoutArg = without.asRubyArgument(name: "without", type: nil)
|
1928
1936
|
let withArg = with.asRubyArgument(name: "with", type: nil)
|
1937
|
+
let frozenArg = frozen.asRubyArgument(name: "frozen", type: nil)
|
1938
|
+
let redownloadArg = redownload.asRubyArgument(name: "redownload", type: nil)
|
1929
1939
|
let array: [RubyCommand.Argument?] = [binstubsArg,
|
1930
1940
|
cleanArg,
|
1931
1941
|
fullIndexArg,
|
@@ -1943,7 +1953,9 @@ public func bundleInstall(binstubs: OptionalConfigValue<String?> = .fastlaneDefa
|
|
1943
1953
|
standaloneArg,
|
1944
1954
|
trustPolicyArg,
|
1945
1955
|
withoutArg,
|
1946
|
-
withArg
|
1956
|
+
withArg,
|
1957
|
+
frozenArg,
|
1958
|
+
redownloadArg]
|
1947
1959
|
let args: [RubyCommand.Argument] = array
|
1948
1960
|
.filter { $0?.value != nil }
|
1949
1961
|
.compactMap { $0 }
|
@@ -2854,11 +2866,29 @@ public func cleanBuildArtifacts(excludePattern: OptionalConfigValue<String?> = .
|
|
2854
2866
|
/**
|
2855
2867
|
Remove the cache for pods
|
2856
2868
|
|
2857
|
-
-
|
2869
|
+
- parameters:
|
2870
|
+
- name: Pod name to be removed from cache
|
2871
|
+
- noAnsi: Show output without ANSI codes
|
2872
|
+
- verbose: Show more debugging information
|
2873
|
+
- silent: Show nothing
|
2874
|
+
- allowRoot: Allows CocoaPods to run as root
|
2858
2875
|
*/
|
2859
|
-
public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
2876
|
+
public func cleanCocoapodsCache(name: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2877
|
+
noAnsi: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
2878
|
+
verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
2879
|
+
silent: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
2880
|
+
allowRoot: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
2881
|
+
{
|
2860
2882
|
let nameArg = name.asRubyArgument(name: "name", type: nil)
|
2861
|
-
let
|
2883
|
+
let noAnsiArg = noAnsi.asRubyArgument(name: "no_ansi", type: nil)
|
2884
|
+
let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
|
2885
|
+
let silentArg = silent.asRubyArgument(name: "silent", type: nil)
|
2886
|
+
let allowRootArg = allowRoot.asRubyArgument(name: "allow_root", type: nil)
|
2887
|
+
let array: [RubyCommand.Argument?] = [nameArg,
|
2888
|
+
noAnsiArg,
|
2889
|
+
verboseArg,
|
2890
|
+
silentArg,
|
2891
|
+
allowRootArg]
|
2862
2892
|
let args: [RubyCommand.Argument] = array
|
2863
2893
|
.filter { $0?.value != nil }
|
2864
2894
|
.compactMap { $0 }
|
@@ -3474,37 +3504,63 @@ public func createPullRequest(apiToken: OptionalConfigValue<String?> = .fastlane
|
|
3474
3504
|
Package multiple build configs of a library/framework into a single xcframework
|
3475
3505
|
|
3476
3506
|
- parameters:
|
3477
|
-
- frameworks: Frameworks to add to the target xcframework
|
3478
|
-
-
|
3507
|
+
- frameworks: Frameworks (without dSYMs) to add to the target xcframework
|
3508
|
+
- frameworksWithDsyms: Frameworks (with dSYMs) to add to the target xcframework
|
3509
|
+
- libraries: Libraries (without headers or dSYMs) to add to the target xcframework
|
3510
|
+
- librariesWithHeadersOrDsyms: Libraries (with headers or dSYMs) to add to the target xcframework
|
3479
3511
|
- output: The path to write the xcframework to
|
3480
3512
|
- allowInternalDistribution: Specifies that the created xcframework contains information not suitable for public distribution
|
3481
3513
|
|
3482
3514
|
Utility for packaging multiple build configurations of a given library
|
3483
3515
|
or framework into a single xcframework.
|
3484
3516
|
|
3485
|
-
If you want to package several frameworks just provide
|
3486
|
-
|
3517
|
+
If you want to package several frameworks just provide one of:
|
3518
|
+
|
3519
|
+
* An array containing the list of frameworks using the :frameworks parameter
|
3520
|
+
(if they have no associated dSYMs):
|
3521
|
+
['FrameworkA.framework', 'FrameworkB.framework']
|
3522
|
+
|
3523
|
+
* A hash containing the list of frameworks with their dSYMs using the
|
3524
|
+
:frameworks_with_dsyms parameter:
|
3525
|
+
{
|
3526
|
+
'FrameworkA.framework' => {},
|
3527
|
+
'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' }
|
3528
|
+
}
|
3529
|
+
|
3530
|
+
If you want to package several libraries just provide one of:
|
3487
3531
|
|
3488
|
-
|
3489
|
-
|
3490
|
-
|
3491
|
-
|
3532
|
+
* An array containing the list of libraries using the :libraries parameter
|
3533
|
+
(if they have no associated headers or dSYMs):
|
3534
|
+
['LibraryA.so', 'LibraryB.so']
|
3535
|
+
|
3536
|
+
* A hash containing the list of libraries with their headers and dSYMs
|
3537
|
+
using the :libraries_with_headers_or_dsyms parameter:
|
3538
|
+
{
|
3539
|
+
'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' },
|
3540
|
+
'LibraryB.so' => { headers: 'headers' }
|
3541
|
+
}
|
3492
3542
|
|
3493
3543
|
Finally specify the location of the xcframework to be generated using the :output
|
3494
3544
|
parameter.
|
3495
3545
|
|
3496
3546
|
*/
|
3497
3547
|
public func createXcframework(frameworks: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
|
3498
|
-
|
3548
|
+
frameworksWithDsyms: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
3549
|
+
libraries: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
|
3550
|
+
librariesWithHeadersOrDsyms: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
3499
3551
|
output: String,
|
3500
3552
|
allowInternalDistribution: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
3501
3553
|
{
|
3502
3554
|
let frameworksArg = frameworks.asRubyArgument(name: "frameworks", type: nil)
|
3555
|
+
let frameworksWithDsymsArg = frameworksWithDsyms.asRubyArgument(name: "frameworks_with_dsyms", type: nil)
|
3503
3556
|
let librariesArg = libraries.asRubyArgument(name: "libraries", type: nil)
|
3557
|
+
let librariesWithHeadersOrDsymsArg = librariesWithHeadersOrDsyms.asRubyArgument(name: "libraries_with_headers_or_dsyms", type: nil)
|
3504
3558
|
let outputArg = RubyCommand.Argument(name: "output", value: output, type: nil)
|
3505
3559
|
let allowInternalDistributionArg = allowInternalDistribution.asRubyArgument(name: "allow_internal_distribution", type: nil)
|
3506
3560
|
let array: [RubyCommand.Argument?] = [frameworksArg,
|
3561
|
+
frameworksWithDsymsArg,
|
3507
3562
|
librariesArg,
|
3563
|
+
librariesWithHeadersOrDsymsArg,
|
3508
3564
|
outputArg,
|
3509
3565
|
allowInternalDistributionArg]
|
3510
3566
|
let args: [RubyCommand.Argument] = array
|
@@ -3642,6 +3698,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
|
|
3642
3698
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
3643
3699
|
- force: Skip verification of HTML preview file
|
3644
3700
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
3701
|
+
- syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
3645
3702
|
- submitForReview: Submit the new version for Review after uploading everything
|
3646
3703
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
3647
3704
|
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
@@ -3712,6 +3769,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3712
3769
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.skipAppVersionUpdate),
|
3713
3770
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.force),
|
3714
3771
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.overwriteScreenshots),
|
3772
|
+
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.syncScreenshots),
|
3715
3773
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.submitForReview),
|
3716
3774
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.rejectIfPossible),
|
3717
3775
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(deliverfile.automaticRelease),
|
@@ -3775,6 +3833,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3775
3833
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
3776
3834
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
3777
3835
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
3836
|
+
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
3778
3837
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
3779
3838
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
3780
3839
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
@@ -3837,6 +3896,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3837
3896
|
skipAppVersionUpdateArg,
|
3838
3897
|
forceArg,
|
3839
3898
|
overwriteScreenshotsArg,
|
3899
|
+
syncScreenshotsArg,
|
3840
3900
|
submitForReviewArg,
|
3841
3901
|
rejectIfPossibleArg,
|
3842
3902
|
automaticReleaseArg,
|
@@ -7069,6 +7129,7 @@ public func nexusUpload(file: String,
|
|
7069
7129
|
|
7070
7130
|
- parameters:
|
7071
7131
|
- package: Path to package to notarize, e.g. .app bundle or disk image
|
7132
|
+
- useNotarytool: Whether to `xcrun notarytool` or `xcrun altool`
|
7072
7133
|
- tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
|
7073
7134
|
- bundleId: Bundle identifier to uniquely identify the package
|
7074
7135
|
- username: Apple ID username
|
@@ -7078,6 +7139,7 @@ public func nexusUpload(file: String,
|
|
7078
7139
|
- apiKeyPath: Path to AppStore Connect API key
|
7079
7140
|
*/
|
7080
7141
|
public func notarize(package: String,
|
7142
|
+
useNotarytool: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
7081
7143
|
tryEarlyStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
7082
7144
|
bundleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7083
7145
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
@@ -7087,6 +7149,7 @@ public func notarize(package: String,
|
|
7087
7149
|
apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil))
|
7088
7150
|
{
|
7089
7151
|
let packageArg = RubyCommand.Argument(name: "package", value: package, type: nil)
|
7152
|
+
let useNotarytoolArg = useNotarytool.asRubyArgument(name: "use_notarytool", type: nil)
|
7090
7153
|
let tryEarlyStaplingArg = tryEarlyStapling.asRubyArgument(name: "try_early_stapling", type: nil)
|
7091
7154
|
let bundleIdArg = bundleId.asRubyArgument(name: "bundle_id", type: nil)
|
7092
7155
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
@@ -7095,6 +7158,7 @@ public func notarize(package: String,
|
|
7095
7158
|
let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
|
7096
7159
|
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
7097
7160
|
let array: [RubyCommand.Argument?] = [packageArg,
|
7161
|
+
useNotarytoolArg,
|
7098
7162
|
tryEarlyStaplingArg,
|
7099
7163
|
bundleIdArg,
|
7100
7164
|
usernameArg,
|
@@ -7444,6 +7508,7 @@ public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
|
7444
7508
|
- appPlatform: The platform to use (optional)
|
7445
7509
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
7446
7510
|
- ipa: Path to the ipa file to upload
|
7511
|
+
- pkg: Path to your pkg file
|
7447
7512
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
7448
7513
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
7449
7514
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -7482,9 +7547,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7482
7547
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
7483
7548
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7484
7549
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7485
|
-
appPlatform: String =
|
7550
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7486
7551
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7487
7552
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7553
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7488
7554
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
7489
7555
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
7490
7556
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -7520,9 +7586,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7520
7586
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
7521
7587
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
7522
7588
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
7523
|
-
let appPlatformArg =
|
7589
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
7524
7590
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
7525
7591
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
7592
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
7526
7593
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
7527
7594
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
7528
7595
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -7560,6 +7627,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7560
7627
|
appPlatformArg,
|
7561
7628
|
appleIdArg,
|
7562
7629
|
ipaArg,
|
7630
|
+
pkgArg,
|
7563
7631
|
demoAccountRequiredArg,
|
7564
7632
|
betaAppReviewInfoArg,
|
7565
7633
|
localizedAppInfoArg,
|
@@ -10638,6 +10706,7 @@ public func ssh(username: String,
|
|
10638
10706
|
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
10639
10707
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
10640
10708
|
- changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
|
10709
|
+
- rescueChangesNotSentForReview: Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended
|
10641
10710
|
- inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
|
10642
10711
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
10643
10712
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
@@ -10678,6 +10747,7 @@ public func supply(packageName: String,
|
|
10678
10747
|
deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
10679
10748
|
versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
|
10680
10749
|
changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10750
|
+
rescueChangesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
10681
10751
|
inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
10682
10752
|
obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10683
10753
|
obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
@@ -10716,6 +10786,7 @@ public func supply(packageName: String,
|
|
10716
10786
|
let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
|
10717
10787
|
let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
|
10718
10788
|
let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
|
10789
|
+
let rescueChangesNotSentForReviewArg = rescueChangesNotSentForReview.asRubyArgument(name: "rescue_changes_not_sent_for_review", type: nil)
|
10719
10790
|
let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
|
10720
10791
|
let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
|
10721
10792
|
let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
|
@@ -10753,6 +10824,7 @@ public func supply(packageName: String,
|
|
10753
10824
|
deactivateOnPromoteArg,
|
10754
10825
|
versionCodesToRetainArg,
|
10755
10826
|
changesNotSentForReviewArg,
|
10827
|
+
rescueChangesNotSentForReviewArg,
|
10756
10828
|
inAppUpdatePriorityArg,
|
10757
10829
|
obbMainReferencesVersionArg,
|
10758
10830
|
obbMainFileSizeArg,
|
@@ -11122,6 +11194,7 @@ public func testfairy(apiKey: String,
|
|
11122
11194
|
- appPlatform: The platform to use (optional)
|
11123
11195
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
11124
11196
|
- ipa: Path to the ipa file to upload
|
11197
|
+
- pkg: Path to your pkg file
|
11125
11198
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
11126
11199
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
11127
11200
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -11160,9 +11233,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11160
11233
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
11161
11234
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11162
11235
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11163
|
-
appPlatform: String =
|
11236
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11164
11237
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11165
11238
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11239
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11166
11240
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
11167
11241
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
11168
11242
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -11198,9 +11272,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11198
11272
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
11199
11273
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
11200
11274
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
11201
|
-
let appPlatformArg =
|
11275
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
11202
11276
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
11203
11277
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
11278
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
11204
11279
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
11205
11280
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
11206
11281
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -11238,6 +11313,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11238
11313
|
appPlatformArg,
|
11239
11314
|
appleIdArg,
|
11240
11315
|
ipaArg,
|
11316
|
+
pkgArg,
|
11241
11317
|
demoAccountRequiredArg,
|
11242
11318
|
betaAppReviewInfoArg,
|
11243
11319
|
localizedAppInfoArg,
|
@@ -11978,6 +12054,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
|
|
11978
12054
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
11979
12055
|
- force: Skip verification of HTML preview file
|
11980
12056
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
12057
|
+
- syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
11981
12058
|
- submitForReview: Submit the new version for Review after uploading everything
|
11982
12059
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
11983
12060
|
- automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
|
@@ -12048,6 +12125,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12048
12125
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12049
12126
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12050
12127
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12128
|
+
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12051
12129
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12052
12130
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12053
12131
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
@@ -12111,6 +12189,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12111
12189
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
12112
12190
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
12113
12191
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
12192
|
+
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
12114
12193
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
12115
12194
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
12116
12195
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
@@ -12173,6 +12252,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12173
12252
|
skipAppVersionUpdateArg,
|
12174
12253
|
forceArg,
|
12175
12254
|
overwriteScreenshotsArg,
|
12255
|
+
syncScreenshotsArg,
|
12176
12256
|
submitForReviewArg,
|
12177
12257
|
rejectIfPossibleArg,
|
12178
12258
|
automaticReleaseArg,
|
@@ -12258,6 +12338,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12258
12338
|
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
12259
12339
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
12260
12340
|
- changesNotSentForReview: Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI
|
12341
|
+
- rescueChangesNotSentForReview: Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended
|
12261
12342
|
- inAppUpdatePriority: In-app update priority for all the newly added apks in the release. Can take values between [0,5]
|
12262
12343
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
12263
12344
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
@@ -12298,6 +12379,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12298
12379
|
deactivateOnPromote: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
12299
12380
|
versionCodesToRetain: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
|
12300
12381
|
changesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12382
|
+
rescueChangesNotSentForReview: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
12301
12383
|
inAppUpdatePriority: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
12302
12384
|
obbMainReferencesVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12303
12385
|
obbMainFileSize: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
@@ -12336,6 +12418,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12336
12418
|
let deactivateOnPromoteArg = deactivateOnPromote.asRubyArgument(name: "deactivate_on_promote", type: nil)
|
12337
12419
|
let versionCodesToRetainArg = versionCodesToRetain.asRubyArgument(name: "version_codes_to_retain", type: nil)
|
12338
12420
|
let changesNotSentForReviewArg = changesNotSentForReview.asRubyArgument(name: "changes_not_sent_for_review", type: nil)
|
12421
|
+
let rescueChangesNotSentForReviewArg = rescueChangesNotSentForReview.asRubyArgument(name: "rescue_changes_not_sent_for_review", type: nil)
|
12339
12422
|
let inAppUpdatePriorityArg = inAppUpdatePriority.asRubyArgument(name: "in_app_update_priority", type: nil)
|
12340
12423
|
let obbMainReferencesVersionArg = obbMainReferencesVersion.asRubyArgument(name: "obb_main_references_version", type: nil)
|
12341
12424
|
let obbMainFileSizeArg = obbMainFileSize.asRubyArgument(name: "obb_main_file_size", type: nil)
|
@@ -12373,6 +12456,7 @@ public func uploadToPlayStore(packageName: String,
|
|
12373
12456
|
deactivateOnPromoteArg,
|
12374
12457
|
versionCodesToRetainArg,
|
12375
12458
|
changesNotSentForReviewArg,
|
12459
|
+
rescueChangesNotSentForReviewArg,
|
12376
12460
|
inAppUpdatePriorityArg,
|
12377
12461
|
obbMainReferencesVersionArg,
|
12378
12462
|
obbMainFileSizeArg,
|
@@ -12450,6 +12534,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
12450
12534
|
- appPlatform: The platform to use (optional)
|
12451
12535
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
12452
12536
|
- ipa: Path to the ipa file to upload
|
12537
|
+
- pkg: Path to your pkg file
|
12453
12538
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
12454
12539
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
12455
12540
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -12488,9 +12573,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12488
12573
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
12489
12574
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12490
12575
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12491
|
-
appPlatform: String =
|
12576
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12492
12577
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12493
12578
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12579
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12494
12580
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
12495
12581
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
12496
12582
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -12526,9 +12612,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12526
12612
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
12527
12613
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
12528
12614
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
12529
|
-
let appPlatformArg =
|
12615
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
12530
12616
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
12531
12617
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
12618
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
12532
12619
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
12533
12620
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
12534
12621
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -12566,6 +12653,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12566
12653
|
appPlatformArg,
|
12567
12654
|
appleIdArg,
|
12568
12655
|
ipaArg,
|
12656
|
+
pkgArg,
|
12569
12657
|
demoAccountRequiredArg,
|
12570
12658
|
betaAppReviewInfoArg,
|
12571
12659
|
localizedAppInfoArg,
|
@@ -12973,7 +13061,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
12973
13061
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12974
13062
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12975
13063
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12976
|
-
ideFoundationPath: String = "/Applications/Xcode-
|
13064
|
+
ideFoundationPath: String = "/Applications/Xcode-beta.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
12977
13065
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
12978
13066
|
{
|
12979
13067
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
@@ -13087,6 +13175,8 @@ public func xcversion(version: String) {
|
|
13087
13175
|
- verbose: Enable verbose output of zipped file
|
13088
13176
|
- password: Encrypt the contents of the zip archive using a password
|
13089
13177
|
- symlinks: Store symbolic links as such in the zip archive
|
13178
|
+
- include: Array of paths or patterns to include
|
13179
|
+
- exclude: Array of paths or patterns to exclude
|
13090
13180
|
|
13091
13181
|
- returns: The path to the output zip file
|
13092
13182
|
*/
|
@@ -13094,18 +13184,24 @@ public func xcversion(version: String) {
|
|
13094
13184
|
outputPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13095
13185
|
verbose: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
13096
13186
|
password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13097
|
-
symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
13187
|
+
symlinks: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
13188
|
+
include: [String] = [],
|
13189
|
+
exclude: [String] = []) -> String
|
13098
13190
|
{
|
13099
13191
|
let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
|
13100
13192
|
let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil)
|
13101
13193
|
let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
|
13102
13194
|
let passwordArg = password.asRubyArgument(name: "password", type: nil)
|
13103
13195
|
let symlinksArg = symlinks.asRubyArgument(name: "symlinks", type: nil)
|
13196
|
+
let includeArg = RubyCommand.Argument(name: "include", value: include, type: nil)
|
13197
|
+
let excludeArg = RubyCommand.Argument(name: "exclude", value: exclude, type: nil)
|
13104
13198
|
let array: [RubyCommand.Argument?] = [pathArg,
|
13105
13199
|
outputPathArg,
|
13106
13200
|
verboseArg,
|
13107
13201
|
passwordArg,
|
13108
|
-
symlinksArg
|
13202
|
+
symlinksArg,
|
13203
|
+
includeArg,
|
13204
|
+
excludeArg]
|
13109
13205
|
let args: [RubyCommand.Argument] = array
|
13110
13206
|
.filter { $0?.value != nil }
|
13111
13207
|
.compactMap { $0 }
|
@@ -13167,4 +13263,4 @@ public let snapshotfile = Snapshotfile()
|
|
13167
13263
|
|
13168
13264
|
// Please don't remove the lines below
|
13169
13265
|
// They are used to detect outdated files
|
13170
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13266
|
+
// FastlaneRunnerAPIVersion [0.9.134]
|