fastlane 2.130.0.beta.20190822200101 → 2.130.0.beta.20190823200017
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane.rb +4 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +4 -0
- data/fastlane/lib/fastlane/actions/carthage.rb +4 -3
- data/fastlane/lib/fastlane/actions/danger.rb +7 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +36 -15
- data/fastlane/lib/fastlane/actions/slather.rb +1 -0
- data/fastlane/lib/fastlane/commands_generator.rb +16 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -0
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -0
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +113 -32
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +11 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +9 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/fastlane/swift/Plugins.swift +11 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
- data/gym/lib/gym/options.rb +11 -16
- data/snapshot/lib/snapshot/commands_generator.rb +2 -2
- data/snapshot/lib/snapshot/update.rb +4 -2
- data/spaceship/lib/spaceship/client.rb +1 -1
- metadata +16 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff060b30323e069111aa4ad4f61b7459df5cbe94
|
4
|
+
data.tar.gz: cfe862be0e4ddbed410b9d47829fbf3a6e6ea107
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f59a608b40668e023029490fa883f564e42e92c6c9c21b7c96e28b35f24b7d0a389debc9e9b67ed87464f40341a753669fc2e409c73c3326862a53c99b452561
|
7
|
+
data.tar.gz: 15c74553ddabcb36be92aa8a6dfbefd03c853d57f92eda287f3738246925333459762ad909223124ba42321a816ee0d8ebac8fbe4055bfcabcc048b96be91c5a
|
data/fastlane/lib/fastlane.rb
CHANGED
@@ -26,6 +26,7 @@ require 'fastlane/documentation/docs_generator'
|
|
26
26
|
require 'fastlane/other_action'
|
27
27
|
require 'fastlane/plugins/plugins'
|
28
28
|
require 'fastlane/fastlane_require'
|
29
|
+
require "fastlane/swift_fastlane_api_generator.rb"
|
29
30
|
|
30
31
|
module Fastlane
|
31
32
|
Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
|
@@ -39,10 +40,12 @@ module Fastlane
|
|
39
40
|
|
40
41
|
if FastlaneCore::FastlaneFolder.path
|
41
42
|
actions_path = File.join(FastlaneCore::FastlaneFolder.path, 'actions')
|
42
|
-
Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
|
43
|
+
@external_actions = Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
47
|
+
attr_reader :external_actions
|
48
|
+
|
46
49
|
def plugin_manager
|
47
50
|
@plugin_manager ||= Fastlane::PluginManager.new
|
48
51
|
end
|
@@ -105,6 +105,7 @@ module Fastlane
|
|
105
105
|
def self.load_external_actions(path)
|
106
106
|
UI.user_error!("You need to pass a valid path") unless File.exist?(path)
|
107
107
|
|
108
|
+
class_refs = []
|
108
109
|
Dir[File.expand_path('*.rb', path)].each do |file|
|
109
110
|
begin
|
110
111
|
require file
|
@@ -123,6 +124,7 @@ module Fastlane
|
|
123
124
|
class_name = file_name.fastlane_class + 'Action'
|
124
125
|
begin
|
125
126
|
class_ref = Fastlane::Actions.const_get(class_name)
|
127
|
+
class_refs << class_ref
|
126
128
|
|
127
129
|
if class_ref.respond_to?(:run)
|
128
130
|
UI.success("Successfully loaded custom action '#{file}'.") if FastlaneCore::Globals.verbose?
|
@@ -139,6 +141,8 @@ module Fastlane
|
|
139
141
|
end
|
140
142
|
end
|
141
143
|
Actions.reset_aliases
|
144
|
+
|
145
|
+
return class_refs
|
142
146
|
end
|
143
147
|
|
144
148
|
def self.formerly_bundled_actions
|
@@ -11,8 +11,10 @@ module Fastlane
|
|
11
11
|
|
12
12
|
if command_name == "archive" && params[:frameworks].count > 0
|
13
13
|
cmd.concat(params[:frameworks])
|
14
|
-
|
15
|
-
|
14
|
+
# "update", "build" and "bootstrap" are the only commands that support "--derived-data" parameter
|
15
|
+
elsif ["update", "build", "bootstrap"].include?(command_name)
|
16
|
+
cmd.concat(params[:dependencies]) if params[:dependencies].count > 0
|
17
|
+
cmd << "--derived-data #{params[:derived_data].shellescape}" if params[:derived_data]
|
16
18
|
end
|
17
19
|
|
18
20
|
cmd << "--output #{params[:output]}" if params[:output]
|
@@ -24,7 +26,6 @@ module Fastlane
|
|
24
26
|
cmd << "--verbose" if params[:verbose] == true
|
25
27
|
cmd << "--platform #{params[:platform]}" if params[:platform]
|
26
28
|
cmd << "--configuration #{params[:configuration]}" if params[:configuration]
|
27
|
-
cmd << "--derived-data #{params[:derived_data].shellescape}" if params[:derived_data]
|
28
29
|
cmd << "--toolchain #{params[:toolchain]}" if params[:toolchain]
|
29
30
|
cmd << "--project-directory #{params[:project_directory]}" if params[:project_directory]
|
30
31
|
cmd << "--cache-builds" if params[:cache_builds]
|
@@ -18,6 +18,7 @@ module Fastlane
|
|
18
18
|
cmd << "--dangerfile=#{dangerfile}" if dangerfile
|
19
19
|
cmd << "--fail-on-errors=true" if params[:fail_on_errors]
|
20
20
|
cmd << "--new-comment" if params[:new_comment]
|
21
|
+
cmd << "--remove-previous-comments" if params[:remove_previous_comments]
|
21
22
|
cmd << "--base=#{base}" if base
|
22
23
|
cmd << "--head=#{head}" if head
|
23
24
|
cmd << "pr #{pr}" if pr
|
@@ -78,6 +79,12 @@ module Fastlane
|
|
78
79
|
is_string: false,
|
79
80
|
optional: true,
|
80
81
|
default_value: false),
|
82
|
+
FastlaneCore::ConfigItem.new(key: :remove_previous_comments,
|
83
|
+
env_name: "FL_DANGER_REMOVE_PREVIOUS_COMMENT",
|
84
|
+
description: "Makes Danger remove all previous comment and create a new one in the end of the list",
|
85
|
+
is_string: false,
|
86
|
+
optional: true,
|
87
|
+
default_value: false),
|
81
88
|
FastlaneCore::ConfigItem.new(key: :base,
|
82
89
|
env_name: "FL_DANGER_BASE",
|
83
90
|
description: "A branch/tag/commit to use as the base of the diff. [master|dev|stable]",
|
@@ -25,6 +25,7 @@ module Fastlane
|
|
25
25
|
build_number = params[:build_number]
|
26
26
|
platform = params[:platform]
|
27
27
|
output_directory = params[:output_directory]
|
28
|
+
wait_for_dsym_processing = params[:wait_for_dsym_processing]
|
28
29
|
min_version = Gem::Version.new(params[:min_version]) if params[:min_version]
|
29
30
|
|
30
31
|
# Set version if it is latest
|
@@ -85,22 +86,35 @@ module Fastlane
|
|
85
86
|
next
|
86
87
|
end
|
87
88
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
89
|
+
UI.verbose("Build_version: #{build.build_version} matches #{build_number}, grabbing dsym_url") if build_number
|
90
|
+
|
91
|
+
start = Time.now
|
92
|
+
download_url = nil
|
93
|
+
|
94
|
+
loop do
|
95
|
+
begin
|
96
|
+
build_details = app.tunes_build_details(train: train.version_string, build_number: build.build_version, platform: platform)
|
97
|
+
download_url = build_details.dsym_url
|
98
|
+
UI.verbose("dsym_url: #{download_url}")
|
99
|
+
rescue Spaceship::TunesClient::ITunesConnectError => ex
|
100
|
+
UI.error("Error accessing dSYM file for build\n\n#{build}\n\nException: #{ex}")
|
101
|
+
end
|
102
|
+
|
103
|
+
unless download_url
|
104
|
+
if !wait_for_dsym_processing || (Time.now - start) > (60 * 5)
|
105
|
+
UI.error("Could not find any dSYM for #{build.build_version} (#{train.version_string})")
|
106
|
+
else
|
107
|
+
UI.message("Waiting for dSYM file to appear...")
|
108
|
+
sleep(30)
|
109
|
+
next
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
break
|
96
114
|
end
|
97
115
|
|
98
|
-
|
99
|
-
|
100
|
-
break if build_number
|
101
|
-
else
|
102
|
-
UI.message("No dSYM URL for #{build.build_version} (#{train.version_string})")
|
103
|
-
end
|
116
|
+
self.download(download_url, app.bundle_id, train.version_string, build.build_version, output_directory)
|
117
|
+
break if build_number
|
104
118
|
end
|
105
119
|
end
|
106
120
|
|
@@ -228,7 +242,14 @@ module Fastlane
|
|
228
242
|
short_option: "-s",
|
229
243
|
env_name: "DOWNLOAD_DSYMS_OUTPUT_DIRECTORY",
|
230
244
|
description: "Where to save the download dSYMs, defaults to the current path",
|
231
|
-
optional: true)
|
245
|
+
optional: true),
|
246
|
+
FastlaneCore::ConfigItem.new(key: :wait_for_dsym_processing,
|
247
|
+
short_option: "-w",
|
248
|
+
env_name: "DOWNLOAD_DSYMS_WAIT_FOR_DSYM_PROCESSING",
|
249
|
+
description: "Wait for dSYMs to process",
|
250
|
+
optional: true,
|
251
|
+
default_value: false,
|
252
|
+
type: Boolean)
|
232
253
|
]
|
233
254
|
end
|
234
255
|
|
@@ -263,6 +263,7 @@ module Fastlane
|
|
263
263
|
FastlaneCore::ConfigItem.new(key: :binary_file,
|
264
264
|
env_name: "FL_SLATHER_BINARY_FILE",
|
265
265
|
description: "Binary file name to be used for code coverage",
|
266
|
+
type: Array,
|
266
267
|
skip_type_validation: true, # skipping validation for backwards compatibility with Boolean type
|
267
268
|
optional: true),
|
268
269
|
FastlaneCore::ConfigItem.new(key: :arch,
|
@@ -329,6 +329,22 @@ module Fastlane
|
|
329
329
|
end
|
330
330
|
end
|
331
331
|
|
332
|
+
#####################################################
|
333
|
+
# @!group Swift
|
334
|
+
#####################################################
|
335
|
+
|
336
|
+
if FastlaneCore::FastlaneFolder.swift?
|
337
|
+
command :generate_swift do |c|
|
338
|
+
c.syntax = 'fastlane generate_swift'
|
339
|
+
c.description = 'Generates additional Swift APIs for plugins and local actions'
|
340
|
+
|
341
|
+
c.action do |args, options|
|
342
|
+
SwiftActionsAPIGenerator.new(target_output_path: FastlaneCore::FastlaneFolder.swift_folder_path).generate_swift
|
343
|
+
SwiftPluginsAPIGenerator.new(target_output_path: FastlaneCore::FastlaneFolder.swift_folder_path).generate_swift
|
344
|
+
end
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
332
348
|
default_command(:trigger)
|
333
349
|
run!
|
334
350
|
end
|
@@ -178,6 +178,7 @@ module Fastlane
|
|
178
178
|
with_clean_bundler_env do
|
179
179
|
cmd = "bundle install"
|
180
180
|
cmd << " --quiet" unless FastlaneCore::Globals.verbose?
|
181
|
+
cmd << " && bundle exec fastlane generate_swift" if FastlaneCore::FastlaneFolder.swift?
|
181
182
|
cmd << " && echo 'Successfully installed plugins'"
|
182
183
|
UI.command(cmd) if FastlaneCore::Globals.verbose?
|
183
184
|
exec(cmd)
|
@@ -197,6 +198,7 @@ module Fastlane
|
|
197
198
|
cmd = "bundle update"
|
198
199
|
cmd << " #{plugins.join(' ')}"
|
199
200
|
cmd << " --quiet" unless FastlaneCore::Globals.verbose?
|
201
|
+
cmd << " && bundle exec fastlane generate_swift" if FastlaneCore::FastlaneFolder.swift?
|
200
202
|
cmd << " && echo 'Successfully updated plugins'"
|
201
203
|
UI.command(cmd) if FastlaneCore::Globals.verbose?
|
202
204
|
exec(cmd)
|
@@ -13,28 +13,18 @@ module Fastlane
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
class
|
17
|
-
|
18
|
-
attr_accessor :tools_option_files
|
19
|
-
attr_accessor :actions_not_supported
|
20
|
-
attr_accessor :action_options_to_ignore
|
21
|
-
attr_accessor :target_output_path
|
22
|
-
attr_accessor :generated_paths # stores all file names of generated files (as they are generated)
|
16
|
+
class SwiftAPIGenerator
|
17
|
+
end
|
23
18
|
|
19
|
+
class SwiftFastlaneAPIGenerator < SwiftAPIGenerator
|
24
20
|
def initialize(target_output_path: "swift")
|
21
|
+
@target_filename = "Fastlane.swift"
|
25
22
|
@target_output_path = File.expand_path(target_output_path)
|
26
23
|
@generated_paths = []
|
27
|
-
require 'fastlane'
|
28
|
-
require 'fastlane/documentation/actions_list'
|
29
|
-
Fastlane.load_actions
|
30
|
-
# Tools that can be used with <Toolname>file, like Deliverfile, Screengrabfile
|
31
|
-
# this is important because we need to generate the proper api for these by creating a protocol
|
32
|
-
# with default implementation we can use in the Fastlane.swift API if people want to use
|
33
|
-
# <Toolname>file.swift files.
|
34
|
-
self.tools_option_files = TOOL_CONFIG_FILES.map { |config_file| config_file.downcase.chomp("file") }.to_set
|
35
24
|
|
36
|
-
|
25
|
+
super()
|
37
26
|
|
27
|
+
self.actions_not_supported = ["import", "import_from_git"].to_set
|
38
28
|
self.action_options_to_ignore = {
|
39
29
|
|
40
30
|
"precheck" => [
|
@@ -51,6 +41,110 @@ module Fastlane
|
|
51
41
|
}
|
52
42
|
end
|
53
43
|
|
44
|
+
def extend_content(file_content, tool_details)
|
45
|
+
file_content << "" # newline because we're adding an extension
|
46
|
+
file_content << "// These are all the parsing functions needed to transform our data into the expected types"
|
47
|
+
file_content << generate_lanefile_parsing_functions
|
48
|
+
|
49
|
+
tool_objects = generate_lanefile_tool_objects(classes: tool_details.map(&:swift_class))
|
50
|
+
file_content << tool_objects
|
51
|
+
|
52
|
+
old_file_content = File.read(fastlane_swift_api_path)
|
53
|
+
new_file_content = file_content.join("\n")
|
54
|
+
|
55
|
+
# compare old file content to potential new file content
|
56
|
+
api_version = determine_api_version(new_file_content: new_file_content, old_file_content: old_file_content)
|
57
|
+
old_api_version = find_api_version_string(content: old_file_content)
|
58
|
+
|
59
|
+
# if there is a change, we need to write out the new file
|
60
|
+
puts("#{api_version} vs #{old_api_version}")
|
61
|
+
if api_version != old_api_version
|
62
|
+
file_content << autogen_version_warning_text(api_version: api_version)
|
63
|
+
else
|
64
|
+
file_content = nil
|
65
|
+
end
|
66
|
+
|
67
|
+
return file_content
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class SwiftActionsAPIGenerator < SwiftAPIGenerator
|
72
|
+
def initialize(target_output_path: "swift")
|
73
|
+
@target_filename = "Actions.swift"
|
74
|
+
@target_output_path = File.expand_path(target_output_path)
|
75
|
+
@generated_paths = []
|
76
|
+
|
77
|
+
super()
|
78
|
+
|
79
|
+
# Excludes all actions that aren't external actions (including plugins)
|
80
|
+
available_external_actions = Fastlane.external_actions || []
|
81
|
+
available_actions = []
|
82
|
+
ActionsList.all_actions do |action|
|
83
|
+
available_actions << action.action_name unless available_external_actions.include?(action)
|
84
|
+
end
|
85
|
+
|
86
|
+
self.actions_not_supported = (["import", "import_from_git"] + available_actions).to_set
|
87
|
+
self.action_options_to_ignore = {}
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class SwiftPluginsAPIGenerator < SwiftAPIGenerator
|
92
|
+
def initialize(target_output_path: "swift")
|
93
|
+
@target_filename = "Plugins.swift"
|
94
|
+
@target_output_path = File.expand_path(target_output_path)
|
95
|
+
@generated_paths = []
|
96
|
+
|
97
|
+
super()
|
98
|
+
|
99
|
+
# Gets list of plugin actions
|
100
|
+
plugin_actions = Fastlane.plugin_manager.plugin_references.values.flat_map do |info|
|
101
|
+
info[:actions]
|
102
|
+
end
|
103
|
+
|
104
|
+
# Action references from plugins
|
105
|
+
available_plugins = plugin_actions.map do |plugin_action|
|
106
|
+
Fastlane::Runner.new.class_reference_from_action_name(plugin_action)
|
107
|
+
end
|
108
|
+
|
109
|
+
# Excludes all actions that aren't pluign actions (including external actions)
|
110
|
+
available_actions = []
|
111
|
+
ActionsList.all_actions do |action|
|
112
|
+
available_actions << action.action_name unless available_plugins.include?(action)
|
113
|
+
end
|
114
|
+
|
115
|
+
self.actions_not_supported = (["import", "import_from_git"] + available_actions).to_set
|
116
|
+
self.action_options_to_ignore = {}
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
class SwiftAPIGenerator
|
121
|
+
DEFAULT_API_VERSION_STRING = "0.9.1"
|
122
|
+
attr_accessor :tools_option_files
|
123
|
+
attr_accessor :actions_not_supported
|
124
|
+
attr_accessor :action_options_to_ignore
|
125
|
+
attr_accessor :target_output_path
|
126
|
+
attr_accessor :target_filename
|
127
|
+
attr_accessor :generated_paths # stores all file names of generated files (as they are generated)
|
128
|
+
|
129
|
+
attr_accessor :fastlane_swift_api_path
|
130
|
+
|
131
|
+
def initialize
|
132
|
+
require 'fastlane'
|
133
|
+
require 'fastlane/documentation/actions_list'
|
134
|
+
Fastlane.load_actions
|
135
|
+
# Tools that can be used with <Toolname>file, like Deliverfile, Screengrabfile
|
136
|
+
# this is important because we need to generate the proper api for these by creating a protocol
|
137
|
+
# with default implementation we can use in the Fastlane.swift API if people want to use
|
138
|
+
# <Toolname>file.swift files.
|
139
|
+
self.tools_option_files = TOOL_CONFIG_FILES.map { |config_file| config_file.downcase.chomp("file") }.to_set
|
140
|
+
|
141
|
+
@fastlane_swift_api_path = File.join(@target_output_path, @target_filename)
|
142
|
+
end
|
143
|
+
|
144
|
+
def extend_content(content, tool_details)
|
145
|
+
return content
|
146
|
+
end
|
147
|
+
|
54
148
|
def generate_swift
|
55
149
|
self.generated_paths = [] # reset generated paths in case we're called multiple times
|
56
150
|
file_content = []
|
@@ -74,24 +168,11 @@ module Fastlane
|
|
74
168
|
|
75
169
|
file_content << swift_function.swift_code
|
76
170
|
end
|
77
|
-
file_content << "" # newline because we're adding an extension
|
78
|
-
file_content << "// These are all the parsing functions needed to transform our data into the expected types"
|
79
|
-
file_content << generate_lanefile_parsing_functions
|
80
|
-
|
81
|
-
tool_objects = generate_lanefile_tool_objects(classes: tool_details.map(&:swift_class))
|
82
|
-
file_content << tool_objects
|
83
|
-
new_file_content = file_content.join("\n")
|
84
|
-
|
85
|
-
fastlane_swift_api_path = File.join(@target_output_path, "Fastlane.swift")
|
86
|
-
old_file_content = File.read(fastlane_swift_api_path)
|
87
171
|
|
88
|
-
|
89
|
-
api_version = determine_api_version(new_file_content: new_file_content, old_file_content: old_file_content)
|
90
|
-
old_api_version = find_api_version_string(content: old_file_content)
|
172
|
+
file_content = extend_content(file_content, tool_details)
|
91
173
|
|
92
|
-
|
93
|
-
|
94
|
-
new_file_content.concat(autogen_version_warning_text(api_version: api_version))
|
174
|
+
if file_content
|
175
|
+
new_file_content = file_content.join("\n")
|
95
176
|
|
96
177
|
File.write(fastlane_swift_api_path, new_file_content)
|
97
178
|
UI.success(fastlane_swift_api_path)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.130.0.beta.
|
2
|
+
VERSION = '2.130.0.beta.20190823200017'.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
|
@@ -0,0 +1,11 @@
|
|
1
|
+
// This class is automatically included in FastlaneRunner during build
|
2
|
+
|
3
|
+
// This autogenerated file will be overwritten or replaced when running "fastlane generate_swift"
|
4
|
+
//
|
5
|
+
// ** NOTE **
|
6
|
+
// This file is provided by fastlane and WILL be overwritten in future updates
|
7
|
+
// If you want to add extra functionality to this project, create a new file in a
|
8
|
+
// new group so that it won't be marked for upgrade
|
9
|
+
//
|
10
|
+
|
11
|
+
import Foundation
|
@@ -7,6 +7,8 @@
|
|
7
7
|
objects = {
|
8
8
|
|
9
9
|
/* Begin PBXBuildFile section */
|
10
|
+
0311E387230AC1B20060BB5C /* Plugins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E386230AC1B20060BB5C /* Plugins.swift */; };
|
11
|
+
0311E38B230AC9490060BB5C /* Actions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E38A230AC9490060BB5C /* Actions.swift */; };
|
10
12
|
B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */; };
|
11
13
|
B302067C1F5E3E9000DE6EBD /* GymfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */; };
|
12
14
|
B302067D1F5E3E9000DE6EBD /* MatchfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */; };
|
@@ -38,6 +40,8 @@
|
|
38
40
|
/* End PBXBuildFile section */
|
39
41
|
|
40
42
|
/* Begin PBXFileReference section */
|
43
|
+
0311E386230AC1B20060BB5C /* Plugins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Plugins.swift; path = ../Plugins.swift; sourceTree = "<group>"; };
|
44
|
+
0311E38A230AC9490060BB5C /* Actions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Actions.swift; path = ../Actions.swift; sourceTree = "<group>"; };
|
41
45
|
B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotfileProtocol.swift; path = ../SnapshotfileProtocol.swift; sourceTree = "<group>"; };
|
42
46
|
B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GymfileProtocol.swift; path = ../GymfileProtocol.swift; sourceTree = "<group>"; };
|
43
47
|
B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MatchfileProtocol.swift; path = ../MatchfileProtocol.swift; sourceTree = "<group>"; };
|
@@ -131,10 +135,12 @@
|
|
131
135
|
isa = PBXGroup;
|
132
136
|
children = (
|
133
137
|
B3144C09200553D400470AFE /* README.txt */,
|
138
|
+
0311E38A230AC9490060BB5C /* Actions.swift */,
|
134
139
|
B3BA659D1F5A269100B34850 /* Fastlane.swift */,
|
135
140
|
B302067A1F5E3E9000DE6EBD /* DeliverfileProtocol.swift */,
|
136
141
|
B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */,
|
137
142
|
B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */,
|
143
|
+
0311E386230AC1B20060BB5C /* Plugins.swift */,
|
138
144
|
B30206771F5E3E9000DE6EBD /* PrecheckfileProtocol.swift */,
|
139
145
|
B30206781F5E3E9000DE6EBD /* ScanfileProtocol.swift */,
|
140
146
|
B30206791F5E3E9000DE6EBD /* ScreengrabfileProtocol.swift */,
|
@@ -205,6 +211,7 @@
|
|
205
211
|
developmentRegion = English;
|
206
212
|
hasScannedForEncodings = 0;
|
207
213
|
knownRegions = (
|
214
|
+
English,
|
208
215
|
en,
|
209
216
|
);
|
210
217
|
mainGroup = B33BAF4E1F51F8D90001A751;
|
@@ -253,6 +260,7 @@
|
|
253
260
|
B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */,
|
254
261
|
D55B28C31F6C588300DC42C5 /* Deliverfile.swift in Sources */,
|
255
262
|
D5A7C4901F7C4DAF00A91DE6 /* Fastfile.swift in Sources */,
|
263
|
+
0311E38B230AC9490060BB5C /* Actions.swift in Sources */,
|
256
264
|
D5A7C48F1F7C4DAF00A91DE6 /* Appfile.swift in Sources */,
|
257
265
|
B3BA65AB1F5A269100B34850 /* SocketClient.swift in Sources */,
|
258
266
|
B30206811F5E3E9000DE6EBD /* DeliverfileProtocol.swift in Sources */,
|
@@ -263,6 +271,7 @@
|
|
263
271
|
B3BA65AD1F5A269100B34850 /* SocketResponse.swift in Sources */,
|
264
272
|
B3BA65A81F5A269100B34850 /* main.swift in Sources */,
|
265
273
|
D55B28C71F6C588300DC42C5 /* Scanfile.swift in Sources */,
|
274
|
+
0311E387230AC1B20060BB5C /* Plugins.swift in Sources */,
|
266
275
|
D55B28C91F6C588300DC42C5 /* Snapshotfile.swift in Sources */,
|
267
276
|
B3BA65A61F5A269100B34850 /* Fastlane.swift in Sources */,
|
268
277
|
D55B28C81F6C588300DC42C5 /* Screengrabfile.swift in Sources */,
|
@@ -0,0 +1,11 @@
|
|
1
|
+
// This class is automatically included in FastlaneRunner during build
|
2
|
+
|
3
|
+
// This autogenerated file will be overwritten or replaced when installing/updating plugins or running "fastlane generate_swift"
|
4
|
+
//
|
5
|
+
// ** NOTE **
|
6
|
+
// This file is provided by fastlane and WILL be overwritten in future updates
|
7
|
+
// If you want to add extra functionality to this project, create a new file in a
|
8
|
+
// new group so that it won't be marked for upgrade
|
9
|
+
//
|
10
|
+
|
11
|
+
import Foundation
|
@@ -51,7 +51,7 @@ module FastlaneCore
|
|
51
51
|
begin
|
52
52
|
status = FastlaneCore::FastlanePty.spawn(command) do |command_stdout, command_stdin, pid|
|
53
53
|
command_stdout.each do |l|
|
54
|
-
line = l.
|
54
|
+
line = l.chomp
|
55
55
|
output << line
|
56
56
|
|
57
57
|
next unless print_all
|
data/gym/lib/gym/options.rb
CHANGED
@@ -51,7 +51,7 @@ module Gym
|
|
51
51
|
short_option: "-c",
|
52
52
|
env_name: "GYM_CLEAN",
|
53
53
|
description: "Should the project be cleaned before building it?",
|
54
|
-
|
54
|
+
type: Boolean,
|
55
55
|
default_value: false),
|
56
56
|
FastlaneCore::ConfigItem.new(key: :output_directory,
|
57
57
|
short_option: "-o",
|
@@ -74,7 +74,7 @@ module Gym
|
|
74
74
|
env_name: "GYM_SILENT",
|
75
75
|
description: "Hide all information that's not necessary while building",
|
76
76
|
default_value: false,
|
77
|
-
|
77
|
+
type: Boolean),
|
78
78
|
FastlaneCore::ConfigItem.new(key: :codesigning_identity,
|
79
79
|
short_option: "-i",
|
80
80
|
env_name: "GYM_CODE_SIGNING_IDENTITY",
|
@@ -83,27 +83,25 @@ module Gym
|
|
83
83
|
FastlaneCore::ConfigItem.new(key: :skip_package_ipa,
|
84
84
|
env_name: "GYM_SKIP_PACKAGE_IPA",
|
85
85
|
description: "Should we skip packaging the ipa?",
|
86
|
-
|
86
|
+
type: Boolean,
|
87
87
|
default_value: false),
|
88
88
|
FastlaneCore::ConfigItem.new(key: :include_symbols,
|
89
89
|
short_option: "-m",
|
90
90
|
env_name: "GYM_INCLUDE_SYMBOLS",
|
91
91
|
description: "Should the ipa file include symbols?",
|
92
|
-
is_string: false,
|
93
92
|
type: Boolean,
|
94
93
|
optional: true),
|
95
94
|
FastlaneCore::ConfigItem.new(key: :include_bitcode,
|
96
95
|
short_option: "-z",
|
97
96
|
env_name: "GYM_INCLUDE_BITCODE",
|
98
97
|
description: "Should the ipa file include bitcode?",
|
99
|
-
is_string: false,
|
100
98
|
type: Boolean,
|
101
99
|
optional: true),
|
102
100
|
FastlaneCore::ConfigItem.new(key: :export_method,
|
103
101
|
short_option: "-j",
|
104
102
|
env_name: "GYM_EXPORT_METHOD",
|
105
103
|
description: "Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id",
|
106
|
-
|
104
|
+
type: String,
|
107
105
|
optional: true,
|
108
106
|
verify_block: proc do |value|
|
109
107
|
av = %w(app-store ad-hoc package enterprise development developer-id)
|
@@ -112,7 +110,6 @@ module Gym
|
|
112
110
|
FastlaneCore::ConfigItem.new(key: :export_options,
|
113
111
|
env_name: "GYM_EXPORT_OPTIONS",
|
114
112
|
description: "Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options",
|
115
|
-
is_string: false,
|
116
113
|
optional: true,
|
117
114
|
type: Hash,
|
118
115
|
skip_type_validation: true,
|
@@ -130,13 +127,11 @@ module Gym
|
|
130
127
|
FastlaneCore::ConfigItem.new(key: :skip_build_archive,
|
131
128
|
env_name: "GYM_SKIP_BUILD_ARCHIVE",
|
132
129
|
description: "Export ipa from previously built xcarchive. Uses archive_path as source",
|
133
|
-
is_string: false,
|
134
130
|
type: Boolean,
|
135
131
|
optional: true),
|
136
132
|
FastlaneCore::ConfigItem.new(key: :skip_archive,
|
137
133
|
env_name: "GYM_SKIP_ARCHIVE",
|
138
134
|
description: "After building, don't archive, effectively not including -archivePath param",
|
139
|
-
is_string: false,
|
140
135
|
type: Boolean,
|
141
136
|
optional: true),
|
142
137
|
# Very optional
|
@@ -157,7 +152,7 @@ module Gym
|
|
157
152
|
FastlaneCore::ConfigItem.new(key: :result_bundle,
|
158
153
|
short_option: "-u",
|
159
154
|
env_name: "GYM_RESULT_BUNDLE",
|
160
|
-
|
155
|
+
type: Boolean,
|
161
156
|
description: "Should an Xcode result bundle be generated in the output directory",
|
162
157
|
default_value: false,
|
163
158
|
optional: true),
|
@@ -180,7 +175,7 @@ module Gym
|
|
180
175
|
env_name: "GYM_TOOLCHAIN",
|
181
176
|
description: "The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)",
|
182
177
|
optional: true,
|
183
|
-
|
178
|
+
type: String),
|
184
179
|
FastlaneCore::ConfigItem.new(key: :destination,
|
185
180
|
short_option: "-d",
|
186
181
|
env_name: "GYM_DESTINATION",
|
@@ -215,12 +210,12 @@ module Gym
|
|
215
210
|
env_name: "DISABLE_XCPRETTY",
|
216
211
|
description: "Disable xcpretty formatting of build output",
|
217
212
|
optional: true,
|
218
|
-
|
213
|
+
type: Boolean),
|
219
214
|
FastlaneCore::ConfigItem.new(key: :xcpretty_test_format,
|
220
215
|
env_name: "XCPRETTY_TEST_FORMAT",
|
221
216
|
description: "Use the test (RSpec style) format for build output",
|
222
217
|
optional: true,
|
223
|
-
|
218
|
+
type: Boolean),
|
224
219
|
FastlaneCore::ConfigItem.new(key: :xcpretty_formatter,
|
225
220
|
env_name: "XCPRETTY_FORMATTER",
|
226
221
|
description: "A custom xcpretty formatter to use",
|
@@ -244,17 +239,17 @@ module Gym
|
|
244
239
|
env_name: "GYM_ANALYZE_BUILD_TIME",
|
245
240
|
description: "Analyze the project build time and store the output in 'culprits.txt' file",
|
246
241
|
optional: true,
|
247
|
-
|
242
|
+
type: Boolean),
|
248
243
|
FastlaneCore::ConfigItem.new(key: :xcpretty_utf,
|
249
244
|
env_name: "XCPRETTY_UTF",
|
250
245
|
description: "Have xcpretty use unicode encoding when reporting builds",
|
251
246
|
optional: true,
|
252
|
-
|
247
|
+
type: Boolean),
|
253
248
|
FastlaneCore::ConfigItem.new(key: :skip_profile_detection,
|
254
249
|
env_name: "GYM_SKIP_PROFILE_DETECTION",
|
255
250
|
description: "Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used",
|
256
251
|
optional: true,
|
257
|
-
|
252
|
+
type: Boolean,
|
258
253
|
default_value: false)
|
259
254
|
]
|
260
255
|
end
|
@@ -56,10 +56,10 @@ module Snapshot
|
|
56
56
|
command :update do |c|
|
57
57
|
c.syntax = 'fastlane snapshot update'
|
58
58
|
c.description = "Updates your SnapshotHelper.swift to the latest version"
|
59
|
-
|
59
|
+
c.option('--force', 'Disables confirmation prompts')
|
60
60
|
c.action do |args, options|
|
61
61
|
require 'snapshot/update'
|
62
|
-
Snapshot::Update.new.update
|
62
|
+
Snapshot::Update.new.update(force: options.force)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -11,7 +11,7 @@ module Snapshot
|
|
11
11
|
paths.reject { |p| p.include?("snapshot/lib/assets/") }
|
12
12
|
end
|
13
13
|
|
14
|
-
def update
|
14
|
+
def update(force: false)
|
15
15
|
paths = self.class.find_helper
|
16
16
|
UI.user_error!("Couldn't find any SnapshotHelper files in current directory") if paths.count == 0
|
17
17
|
|
@@ -22,7 +22,9 @@ module Snapshot
|
|
22
22
|
UI.message("The underlying API will not change. You can always migrate manually by looking at")
|
23
23
|
UI.message("https://github.com/fastlane/fastlane/blob/master/snapshot/lib/assets/SnapshotHelper.swift")
|
24
24
|
|
25
|
-
|
25
|
+
if !force && !UI.confirm("Overwrite configuration files?")
|
26
|
+
return 1
|
27
|
+
end
|
26
28
|
|
27
29
|
paths.each do |path|
|
28
30
|
UI.message("Updating '#{path}'...")
|
@@ -738,7 +738,7 @@ module Spaceship
|
|
738
738
|
raise InternalServerError, "Received an internal server error from App Store Connect / Developer Portal, please try again later"
|
739
739
|
elsif body.to_s.include?("Gateway Timeout - In read")
|
740
740
|
raise GatewayTimeoutError, "Received a gateway timeout error from App Store Connect / Developer Portal, please try again later"
|
741
|
-
elsif (body["
|
741
|
+
elsif (body["userString"] || "").include?("Program License Agreement")
|
742
742
|
raise ProgramLicenseAgreementUpdated, "#{body['userString']} Please manually log into your Apple Developer account to review and accept the updated agreement."
|
743
743
|
end
|
744
744
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.130.0.beta.
|
4
|
+
version: 2.130.0.beta.20190823200017
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jorge Revuelta H
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-08-
|
30
|
+
date: 2019-08-23 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1301,6 +1301,7 @@ files:
|
|
1301
1301
|
- fastlane/lib/fastlane/swift_runner_upgrader.rb
|
1302
1302
|
- fastlane/lib/fastlane/tools.rb
|
1303
1303
|
- fastlane/lib/fastlane/version.rb
|
1304
|
+
- fastlane/swift/Actions.swift
|
1304
1305
|
- fastlane/swift/Appfile.swift
|
1305
1306
|
- fastlane/swift/ArgumentProcessor.swift
|
1306
1307
|
- fastlane/swift/ControlCommand.swift
|
@@ -1310,6 +1311,7 @@ files:
|
|
1310
1311
|
- fastlane/swift/Fastlane.swift
|
1311
1312
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
|
1312
1313
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
1314
|
+
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
1313
1315
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
|
1314
1316
|
- fastlane/swift/FastlaneSwiftRunner/README.txt
|
1315
1317
|
- fastlane/swift/Gymfile.swift
|
@@ -1317,6 +1319,7 @@ files:
|
|
1317
1319
|
- fastlane/swift/LaneFileProtocol.swift
|
1318
1320
|
- fastlane/swift/Matchfile.swift
|
1319
1321
|
- fastlane/swift/MatchfileProtocol.swift
|
1322
|
+
- fastlane/swift/Plugins.swift
|
1320
1323
|
- fastlane/swift/Precheckfile.swift
|
1321
1324
|
- fastlane/swift/PrecheckfileProtocol.swift
|
1322
1325
|
- fastlane/swift/RubyCommand.swift
|
@@ -1742,24 +1745,24 @@ metadata:
|
|
1742
1745
|
post_install_message:
|
1743
1746
|
rdoc_options: []
|
1744
1747
|
require_paths:
|
1745
|
-
-
|
1746
|
-
- supply/lib
|
1747
|
-
- snapshot/lib
|
1748
|
+
- pem/lib
|
1748
1749
|
- sigh/lib
|
1749
|
-
- cert/lib
|
1750
|
-
- credentials_manager/lib
|
1751
|
-
- fastlane_core/lib
|
1752
1750
|
- gym/lib
|
1751
|
+
- supply/lib
|
1753
1752
|
- frameit/lib
|
1754
|
-
- produce/lib
|
1755
|
-
- spaceship/lib
|
1756
1753
|
- pilot/lib
|
1757
|
-
- scan/lib
|
1758
1754
|
- fastlane/lib
|
1759
|
-
-
|
1760
|
-
-
|
1755
|
+
- produce/lib
|
1756
|
+
- spaceship/lib
|
1761
1757
|
- deliver/lib
|
1758
|
+
- cert/lib
|
1762
1759
|
- screengrab/lib
|
1760
|
+
- fastlane_core/lib
|
1761
|
+
- precheck/lib
|
1762
|
+
- snapshot/lib
|
1763
|
+
- match/lib
|
1764
|
+
- scan/lib
|
1765
|
+
- credentials_manager/lib
|
1763
1766
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1764
1767
|
requirements:
|
1765
1768
|
- - ">="
|