fastlane 2.69.0.beta.20171212010004 → 2.69.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
- data/deliver/lib/deliver/commands_generator.rb +2 -1
- data/deliver/lib/deliver/options.rb +8 -3
- data/deliver/lib/deliver/setup.rb +19 -3
- data/fastlane/lib/assets/AppfileTemplate.swift +8 -0
- data/fastlane/lib/assets/DefaultFastfileTemplate.swift +72 -0
- data/fastlane/lib/fastlane.rb +6 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/action.rb +13 -0
- data/fastlane/lib/fastlane/actions/adb.rb +4 -0
- data/fastlane/lib/fastlane/actions/appium.rb +2 -0
- data/fastlane/lib/fastlane/actions/bundle_install.rb +2 -0
- data/fastlane/lib/fastlane/actions/carthage.rb +12 -24
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +5 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -1
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +4 -0
- data/fastlane/lib/fastlane/actions/environment_variable.rb +73 -0
- data/fastlane/lib/fastlane/actions/get_version_number.rb +4 -4
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +4 -0
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +4 -0
- data/fastlane/lib/fastlane/actions/is_ci.rb +4 -0
- data/fastlane/lib/fastlane/actions/last_git_commit.rb +4 -0
- data/fastlane/lib/fastlane/actions/last_git_tag.rb +4 -0
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +4 -0
- data/fastlane/lib/fastlane/actions/modify_services.rb +1 -0
- data/fastlane/lib/fastlane/actions/number_of_commits.rb +4 -0
- data/fastlane/lib/fastlane/actions/podio_item.rb +1 -0
- data/fastlane/lib/fastlane/actions/prompt.rb +4 -0
- data/fastlane/lib/fastlane/actions/read_podspec.rb +4 -0
- data/fastlane/lib/fastlane/actions/register_device.rb +4 -0
- data/fastlane/lib/fastlane/actions/register_devices.rb +1 -0
- data/fastlane/lib/fastlane/actions/rocket.rb +4 -0
- data/fastlane/lib/fastlane/actions/set_github_release.rb +4 -0
- data/fastlane/lib/fastlane/actions/sh.rb +5 -0
- data/fastlane/lib/fastlane/actions/slather.rb +14 -0
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -0
- data/fastlane/lib/fastlane/actions/xcode_install.rb +4 -0
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +4 -0
- data/fastlane/lib/fastlane/actions/zip.rb +4 -0
- data/fastlane/lib/fastlane/boolean.rb +5 -0
- data/fastlane/lib/fastlane/command_line_handler.rb +6 -1
- data/fastlane/lib/fastlane/commands_generator.rb +40 -1
- data/fastlane/lib/fastlane/fast_file.rb +5 -1
- data/fastlane/lib/fastlane/lane_list.rb +67 -4
- data/fastlane/lib/fastlane/lane_manager.rb +3 -69
- data/fastlane/lib/fastlane/lane_manager_base.rb +124 -0
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/server/command.rb +70 -0
- data/fastlane/lib/fastlane/server/command_executor.rb +9 -0
- data/fastlane/lib/fastlane/server/socket_server.rb +212 -0
- data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +100 -0
- data/fastlane/lib/fastlane/setup/setup.rb +7 -2
- data/fastlane/lib/fastlane/setup/setup_ios.rb +72 -15
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +265 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +342 -0
- data/fastlane/lib/fastlane/swift_lane_manager.rb +246 -0
- data/fastlane/lib/fastlane/tools.rb +13 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core.rb +3 -0
- data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +6 -3
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +7 -0
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +13 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +33 -2
- data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +32 -0
- data/gym/lib/assets/GymfileTemplate.swift +13 -0
- data/gym/lib/gym/commands_generator.rb +14 -2
- data/gym/lib/gym/generators/build_command_generator.rb +2 -2
- data/gym/lib/gym/options.rb +11 -0
- data/match/lib/assets/MatchfileTemplate.swift +9 -0
- data/match/lib/match/commands_generator.rb +9 -3
- data/match/lib/match/options.rb +1 -0
- data/match/lib/match/setup.rb +6 -2
- data/precheck/lib/.DS_Store +0 -0
- data/precheck/lib/assets/PrecheckfileTemplate +1 -1
- data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
- data/precheck/lib/precheck/commands_generator.rb +13 -2
- data/scan/lib/assets/ScanfileTemplate.swift +13 -0
- data/scan/lib/scan/commands_generator.rb +14 -2
- data/scan/lib/scan/options.rb +6 -0
- data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
- data/screengrab/lib/screengrab/commands_generator.rb +2 -1
- data/screengrab/lib/screengrab/setup.rb +9 -3
- data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
- data/snapshot/lib/snapshot/commands_generator.rb +2 -1
- data/snapshot/lib/snapshot/setup.rb +9 -3
- data/spaceship/lib/spaceship/client.rb +4 -1
- metadata +38 -16
@@ -17,4 +17,17 @@ module Fastlane
|
|
17
17
|
:gym,
|
18
18
|
:precheck
|
19
19
|
]
|
20
|
+
|
21
|
+
# a list of all the config files we currently expect
|
22
|
+
TOOL_CONFIG_FILES = [
|
23
|
+
"Appfile",
|
24
|
+
"Deliverfile",
|
25
|
+
"Fastfile",
|
26
|
+
"Gymfile",
|
27
|
+
"Matchfile",
|
28
|
+
"Precheckfile",
|
29
|
+
"Scanfile",
|
30
|
+
"Screengrabfile",
|
31
|
+
"Snapshotfile"
|
32
|
+
]
|
20
33
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.69.0
|
2
|
+
VERSION = '2.69.0'.freeze
|
3
3
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
4
4
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
5
5
|
RUBOCOP_REQUIREMENT = '0.49.1'.freeze
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'fastlane/version'
|
3
|
+
require 'fastlane/boolean'
|
3
4
|
|
4
5
|
require 'fastlane_core/globals'
|
5
6
|
# Ruby monkey-patches - should be before almost all else
|
@@ -53,6 +54,8 @@ require 'commander'
|
|
53
54
|
# after commander import
|
54
55
|
require 'fastlane_core/ui/fastlane_runner' # monkey patch
|
55
56
|
|
57
|
+
Boolean = Fastlane::Boolean
|
58
|
+
|
56
59
|
module FastlaneCore
|
57
60
|
ROOT = Pathname.new(File.expand_path('../..', __FILE__))
|
58
61
|
|
@@ -7,19 +7,22 @@ module FastlaneCore
|
|
7
7
|
attr_accessor :action_name
|
8
8
|
attr_accessor :p_hash
|
9
9
|
attr_accessor :platform
|
10
|
+
attr_accessor :configuration_language # example: ruby fastfile, swift fastfile
|
10
11
|
|
11
|
-
def initialize(action_name: nil, p_hash: UNKNOWN_P_HASH, platform: nil)
|
12
|
+
def initialize(action_name: nil, p_hash: UNKNOWN_P_HASH, platform: nil, configuration_language: nil)
|
12
13
|
@action_name = action_name
|
13
14
|
@p_hash = p_hash
|
14
15
|
@platform = platform
|
16
|
+
@configuration_language = configuration_language
|
15
17
|
end
|
16
18
|
|
17
|
-
def self.context_for_action_name(action_name, args: nil)
|
19
|
+
def self.context_for_action_name(action_name, configuration_language: "ruby", args: nil)
|
18
20
|
app_id_guesser = FastlaneCore::AppIdentifierGuesser.new(args: args)
|
19
21
|
return self.new(
|
20
22
|
action_name: action_name,
|
21
23
|
p_hash: app_id_guesser.p_hash,
|
22
|
-
platform: app_id_guesser.platform
|
24
|
+
platform: app_id_guesser.platform,
|
25
|
+
configuration_language: configuration_language
|
23
26
|
)
|
24
27
|
end
|
25
28
|
|
@@ -54,6 +54,13 @@ module FastlaneCore
|
|
54
54
|
}
|
55
55
|
)
|
56
56
|
|
57
|
+
@events << builder.launched_event(
|
58
|
+
primary_target_hash: {
|
59
|
+
name: 'configuration_language',
|
60
|
+
detail: launch_context.configuration_language
|
61
|
+
}
|
62
|
+
)
|
63
|
+
|
57
64
|
@events << builder.launched_event(
|
58
65
|
primary_target_hash: {
|
59
66
|
name: 'install_method',
|
@@ -21,6 +21,19 @@ module FastlaneCore
|
|
21
21
|
|
22
22
|
type = option.data_type
|
23
23
|
|
24
|
+
# We added type: Hash to code generation, but Ruby's OptionParser doesn't like that
|
25
|
+
# so we need to switch that to something that is supported, luckily, we have an `is_string`
|
26
|
+
# property and if that is false, we'll default to nil
|
27
|
+
if type == Hash
|
28
|
+
type = option.is_string ? String : nil
|
29
|
+
end
|
30
|
+
|
31
|
+
# Boolean is a fastlane thing, it's either TrueClass, or FalseClass, but we won't know
|
32
|
+
# that until runtime, so nil is the best we get
|
33
|
+
if type == Boolean
|
34
|
+
type = nil
|
35
|
+
end
|
36
|
+
|
24
37
|
# This is an important bit of trickery to solve the boolean option situation.
|
25
38
|
#
|
26
39
|
# Typically, boolean command line flags do not accept trailing values. If the flag
|
@@ -67,6 +67,7 @@ module FastlaneCore
|
|
67
67
|
verify_block: nil,
|
68
68
|
is_string: true,
|
69
69
|
type: nil,
|
70
|
+
skip_type_validation: false,
|
70
71
|
optional: nil,
|
71
72
|
conflicting_options: nil,
|
72
73
|
conflict_block: nil,
|
@@ -118,20 +119,45 @@ module FastlaneCore
|
|
118
119
|
@sensitive = sensitive
|
119
120
|
@allow_shell_conversion = (type == :shell_string)
|
120
121
|
@display_in_shell = display_in_shell
|
122
|
+
@skip_type_validation = skip_type_validation # sometimes we allow multiple types which causes type validation failures, e.g.: export_options in gym
|
121
123
|
end
|
122
124
|
|
123
125
|
def verify!(value)
|
124
126
|
valid?(value)
|
125
127
|
end
|
126
128
|
|
129
|
+
def ensure_generic_type_passes_validation(value)
|
130
|
+
if @skip_type_validation
|
131
|
+
return
|
132
|
+
end
|
133
|
+
|
134
|
+
if data_type != :string_callback && data_type && !value.kind_of?(data_type)
|
135
|
+
UI.user_error!("'#{self.key}' value must be a #{data_type}! Found #{value.class} instead.")
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def ensure_boolean_type_passes_validation(value)
|
140
|
+
if @skip_type_validation
|
141
|
+
return
|
142
|
+
end
|
143
|
+
|
144
|
+
# We need to explicity test against Fastlane::Boolean, TrueClass/FalseClass
|
145
|
+
if value.class != FalseClass && value.class != TrueClass
|
146
|
+
UI.user_error!("'#{self.key}' value must be either `true` or `false`! Found #{value.class} instead.")
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
127
150
|
# Make sure, the value is valid (based on the verify block)
|
128
151
|
# Raises an exception if the value is invalid
|
129
152
|
def valid?(value)
|
130
153
|
# we also allow nil values, which do not have to be verified.
|
131
154
|
if value
|
132
155
|
# Verify that value is the type that we're expecting, if we are expecting a type
|
133
|
-
|
134
|
-
|
156
|
+
|
157
|
+
if data_type == Boolean
|
158
|
+
ensure_boolean_type_passes_validation(value)
|
159
|
+
else
|
160
|
+
ensure_generic_type_passes_validation(value)
|
135
161
|
end
|
136
162
|
|
137
163
|
if @verify_block
|
@@ -189,6 +215,11 @@ module FastlaneCore
|
|
189
215
|
data_type == String
|
190
216
|
end
|
191
217
|
|
218
|
+
# it's preferred to use self.string? In most cases, except in commander_generator.rb, cause... reasons
|
219
|
+
def is_string
|
220
|
+
return @is_string
|
221
|
+
end
|
222
|
+
|
192
223
|
def to_s
|
193
224
|
[@key, @description].join(": ")
|
194
225
|
end
|
@@ -6,15 +6,47 @@ module FastlaneCore
|
|
6
6
|
def self.path
|
7
7
|
value ||= "./#{FOLDER_NAME}/" if File.directory?("./#{FOLDER_NAME}/")
|
8
8
|
value ||= "./.#{FOLDER_NAME}/" if File.directory?("./.#{FOLDER_NAME}/") # hidden folder
|
9
|
+
value ||= "./" if File.basename(Dir.getwd) == FOLDER_NAME && File.exist?('Fastfile.swift') # inside the folder
|
10
|
+
value ||= "./" if File.basename(Dir.getwd) == ".#{FOLDER_NAME}" && File.exist?('Fastfile.swift') # inside the folder and hidden
|
9
11
|
value ||= "./" if File.basename(Dir.getwd) == FOLDER_NAME && File.exist?('Fastfile') # inside the folder
|
10
12
|
value ||= "./" if File.basename(Dir.getwd) == ".#{FOLDER_NAME}" && File.exist?('Fastfile') # inside the folder and hidden
|
11
13
|
return value
|
12
14
|
end
|
13
15
|
|
16
|
+
# path to the Swift runner executable if it has been built
|
17
|
+
def self.swift_runner_path
|
18
|
+
return File.join(self.path, 'FastlaneRunner')
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.swift?
|
22
|
+
return self.fastfile_path.downcase.end_with?(".swift")
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.swift_folder_path
|
26
|
+
return File.join(self.path, 'swift')
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.swift_runner_project_path
|
30
|
+
return File.join(self.swift_folder_path, 'FastlaneSwiftRunner', 'FastlaneSwiftRunner.xcodeproj')
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.swift_runner_built?
|
34
|
+
swift_runner_path = self.swift_runner_path
|
35
|
+
if swift_runner_path.nil?
|
36
|
+
return false
|
37
|
+
end
|
38
|
+
|
39
|
+
return File.exist?(swift_runner_path)
|
40
|
+
end
|
41
|
+
|
14
42
|
# Path to the Fastfile inside the fastlane folder. This is nil when none is available
|
15
43
|
def self.fastfile_path
|
16
44
|
return nil if self.path.nil?
|
17
45
|
|
46
|
+
# Check for Swift first, because Swift is #1
|
47
|
+
path = File.join(self.path, 'Fastfile.swift')
|
48
|
+
return path if File.exist?(path)
|
49
|
+
|
18
50
|
path = File.join(self.path, 'Fastfile')
|
19
51
|
return path if File.exist?(path)
|
20
52
|
return nil
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// For more information about this configuration visit
|
2
|
+
// https://docs.fastlane.tools/actions/gym/#gymfile
|
3
|
+
|
4
|
+
// In general, you can use the options available
|
5
|
+
// fastlane gym --help
|
6
|
+
|
7
|
+
// Remove the // in front of the line to enable the option
|
8
|
+
|
9
|
+
class Gymfile: GymfileProtocol {
|
10
|
+
//var sdk: String { return "iphoneos9.0" }
|
11
|
+
//var scheme: String { return "Example" }
|
12
|
+
var outputDirectory: String { return "./" }
|
13
|
+
}
|
@@ -45,11 +45,23 @@ module Gym
|
|
45
45
|
command :init do |c|
|
46
46
|
c.syntax = "fastlane gym init"
|
47
47
|
c.description = "Creates a new Gymfile for you"
|
48
|
-
c.action do |
|
48
|
+
c.action do |args, options|
|
49
49
|
containing = FastlaneCore::Helper.fastlane_enabled_folder_path
|
50
50
|
path = File.join(containing, Gym.gymfile_name)
|
51
51
|
UI.user_error! "Gymfile already exists" if File.exist?(path)
|
52
|
-
|
52
|
+
|
53
|
+
is_swift_fastfile = args.include?("swift")
|
54
|
+
if is_swift_fastfile
|
55
|
+
path = File.join(containing, Gym.gymfile_name + ".swift")
|
56
|
+
UI.user_error! "Gymfile.swift already exists" if File.exist?(path)
|
57
|
+
end
|
58
|
+
|
59
|
+
if is_swift_fastfile
|
60
|
+
template = File.read("#{Gym::ROOT}/lib/assets/GymfileTemplate.swift")
|
61
|
+
else
|
62
|
+
template = File.read("#{Gym::ROOT}/lib/assets/GymfileTemplate")
|
63
|
+
end
|
64
|
+
|
53
65
|
File.write(path, template)
|
54
66
|
UI.success "Successfully created '#{path}'. Open the file using a code editor."
|
55
67
|
end
|
@@ -37,7 +37,7 @@ module Gym
|
|
37
37
|
options << "-toolchain '#{config[:toolchain]}'" if config[:toolchain]
|
38
38
|
options << "-destination '#{config[:destination]}'" if config[:destination]
|
39
39
|
options << "-xcconfig '#{config[:xcconfig]}'" if config[:xcconfig]
|
40
|
-
options << "-archivePath #{archive_path.shellescape}"
|
40
|
+
options << "-archivePath #{archive_path.shellescape}" unless config[:skip_archive]
|
41
41
|
options << "-derivedDataPath '#{config[:derived_data_path]}'" if config[:derived_data_path]
|
42
42
|
options << "-resultBundlePath '#{result_bundle_path}'" if config[:result_bundle]
|
43
43
|
options << config[:xcargs] if config[:xcargs]
|
@@ -51,7 +51,7 @@ module Gym
|
|
51
51
|
|
52
52
|
actions = []
|
53
53
|
actions << :clean if config[:clean]
|
54
|
-
actions << :archive
|
54
|
+
actions << :archive unless config[:skip_archive]
|
55
55
|
|
56
56
|
actions
|
57
57
|
end
|
data/gym/lib/gym/options.rb
CHANGED
@@ -92,12 +92,14 @@ module Gym
|
|
92
92
|
env_name: "GYM_INCLUDE_SYMBOLS",
|
93
93
|
description: "Should the ipa file include symbols?",
|
94
94
|
is_string: false,
|
95
|
+
type: Boolean,
|
95
96
|
optional: true),
|
96
97
|
FastlaneCore::ConfigItem.new(key: :include_bitcode,
|
97
98
|
short_option: "-z",
|
98
99
|
env_name: "GYM_INCLUDE_BITCODE",
|
99
100
|
description: "Should the ipa file include bitcode?",
|
100
101
|
is_string: false,
|
102
|
+
type: Boolean,
|
101
103
|
optional: true),
|
102
104
|
FastlaneCore::ConfigItem.new(key: :export_method,
|
103
105
|
short_option: "-j",
|
@@ -114,6 +116,8 @@ module Gym
|
|
114
116
|
description: "Specifies path to export options plist. Use 'xcodebuild -help' to print the full set of available options",
|
115
117
|
is_string: false,
|
116
118
|
optional: true,
|
119
|
+
type: Hash,
|
120
|
+
skip_type_validation: true,
|
117
121
|
conflict_block: proc do |value|
|
118
122
|
UI.user_error!("'#{value.key}' must be false to use 'export_options'")
|
119
123
|
end),
|
@@ -129,6 +133,13 @@ module Gym
|
|
129
133
|
env_name: "GYM_SKIP_BUILD_ARCHIVE",
|
130
134
|
description: "Export ipa from previously built xarchive. Uses archive_path as source",
|
131
135
|
is_string: false,
|
136
|
+
type: Boolean,
|
137
|
+
optional: true),
|
138
|
+
FastlaneCore::ConfigItem.new(key: :skip_archive,
|
139
|
+
env_name: "GYM_SKIP_ARCHIVE",
|
140
|
+
description: "After building, don't archive, effectively not including -archivePath param",
|
141
|
+
is_string: false,
|
142
|
+
type: Boolean,
|
132
143
|
optional: true),
|
133
144
|
# Very optional
|
134
145
|
FastlaneCore::ConfigItem.new(key: :build_path,
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class Matchfile: MatchfileProtocol {
|
2
|
+
var gitUrl: String { return "[[GIT_URL]]" }
|
3
|
+
var type: String { return "development" } // The default type, can be: appstore, adhoc, enterprise or development
|
4
|
+
// var appIdentifier: [String] { return ["tools.fastlane.app", "tools.fastlane.app2"] }
|
5
|
+
// cat username:String { return "user@fastlane.tools" } // Your Apple Developer Portal username
|
6
|
+
}
|
7
|
+
|
8
|
+
// For all available options run `fastlane match --help`
|
9
|
+
// Remove the // in the beginning of the line to enable the other options
|
@@ -62,14 +62,20 @@ module Match
|
|
62
62
|
c.description = 'Create the Matchfile for you'
|
63
63
|
c.action do |args, options|
|
64
64
|
containing = FastlaneCore::Helper.fastlane_enabled_folder_path
|
65
|
-
|
65
|
+
is_swift_fastfile = args.include?("swift")
|
66
|
+
|
67
|
+
if is_swift_fastfile
|
68
|
+
path = File.join(containing, "Matchfile.swift")
|
69
|
+
else
|
70
|
+
path = File.join(containing, "Matchfile")
|
71
|
+
end
|
66
72
|
|
67
73
|
if File.exist?(path)
|
68
|
-
FastlaneCore::UI.user_error!("You already
|
74
|
+
FastlaneCore::UI.user_error!("You already have a Matchfile in this directory (#{path})")
|
69
75
|
return 0
|
70
76
|
end
|
71
77
|
|
72
|
-
Match::Setup.new.run(path)
|
78
|
+
Match::Setup.new.run(path, is_swift_fastfile: is_swift_fastfile)
|
73
79
|
end
|
74
80
|
end
|
75
81
|
|
data/match/lib/match/options.rb
CHANGED
@@ -33,6 +33,7 @@ module Match
|
|
33
33
|
env_name: "MATCH_APP_IDENTIFIER",
|
34
34
|
description: "The bundle identifier(s) of your app (comma-separated)",
|
35
35
|
is_string: false,
|
36
|
+
type: Array,
|
36
37
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)),
|
37
38
|
FastlaneCore::ConfigItem.new(key: :username,
|
38
39
|
short_option: "-u",
|
data/match/lib/match/setup.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
module Match
|
2
2
|
class Setup
|
3
|
-
def run(path)
|
4
|
-
|
3
|
+
def run(path, is_swift_fastfile: false)
|
4
|
+
if is_swift_fastfile
|
5
|
+
template = File.read("#{Match::ROOT}/lib/assets/MatchfileTemplate.swift")
|
6
|
+
else
|
7
|
+
template = File.read("#{Match::ROOT}/lib/assets/MatchfileTemplate")
|
8
|
+
end
|
5
9
|
|
6
10
|
UI.important "Please create a new, private git repository"
|
7
11
|
UI.important "to store the certificates and profiles there"
|
Binary file
|
@@ -13,7 +13,7 @@
|
|
13
13
|
# :warn
|
14
14
|
# when triggered, this rule will warn you of a potential problem
|
15
15
|
|
16
|
-
# :
|
16
|
+
# :error
|
17
17
|
# when triggered, this rule will cause an error to be displayed and it will prevent any further fastlane commands from running after precheck finishes
|
18
18
|
|
19
19
|
# Examples:
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// For more information about this configuration visit
|
2
|
+
// https://docs.fastlane.tools/actions/precheck/#precheckfile
|
3
|
+
|
4
|
+
// In general, you can use the options available
|
5
|
+
// fastlane precheck --help
|
6
|
+
|
7
|
+
class Precheckfile: PrecheckfileProtocol {
|
8
|
+
//var defaultRuleLevel: String { return "error" }
|
9
|
+
}
|
10
|
+
|
11
|
+
// You have three possible values for defaultRuleLevel
|
12
|
+
// "skip"
|
13
|
+
// indicates that your metadata will not be checked by this rule
|
14
|
+
|
15
|
+
// "warn"
|
16
|
+
// when triggered, this rule will warn you of a potential problem
|
17
|
+
|
18
|
+
// "error"
|
19
|
+
// when triggered, this rule will cause an error to be displayed and it will prevent any further fastlane commands from running after precheck finishes
|
@@ -38,11 +38,22 @@ module Precheck
|
|
38
38
|
command :init do |c|
|
39
39
|
c.syntax = "fastlane precheck init"
|
40
40
|
c.description = "Creates a new Precheckfile for you"
|
41
|
-
c.action do |
|
41
|
+
c.action do |args, options|
|
42
42
|
containing = FastlaneCore::Helper.fastlane_enabled_folder_path
|
43
43
|
path = File.join(containing, Precheck.precheckfile_name)
|
44
44
|
UI.user_error! "Precheckfile already exists" if File.exist?(path)
|
45
|
-
|
45
|
+
|
46
|
+
is_swift_fastfile = args.include?("swift")
|
47
|
+
if is_swift_fastfile
|
48
|
+
path = File.join(containing, Precheck.precheckfile_name + ".swift")
|
49
|
+
UI.user_error! "Precheckfile.swift already exists" if File.exist?(path)
|
50
|
+
end
|
51
|
+
|
52
|
+
if is_swift_fastfile
|
53
|
+
template = File.read("#{Precheck::ROOT}/lib/assets/PrecheckfileTemplate.swift")
|
54
|
+
else
|
55
|
+
template = File.read("#{Precheck::ROOT}/lib/assets/PrecheckfileTemplate")
|
56
|
+
end
|
46
57
|
File.write(path, template)
|
47
58
|
UI.success "Successfully created '#{path}'. Open the file using a code editor."
|
48
59
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// For more information about this configuration visit
|
2
|
+
// https://docs.fastlane.tools/actions/scan/#scanfile
|
3
|
+
|
4
|
+
// In general, you can use the options available
|
5
|
+
// fastlane scan --help
|
6
|
+
|
7
|
+
// Remove the // in front of the line to enable the option
|
8
|
+
|
9
|
+
class Scanfile: ScanfileProtocol {
|
10
|
+
//var scheme: String? { return "Example" }
|
11
|
+
//var openReport: Bool { return true }
|
12
|
+
//var clean: Bool { return true }
|
13
|
+
}
|