fastlane 2.130.0.beta.20190822200101 → 2.130.0.beta.20190823200017

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c2ad607532d4c35869210b5eb2563a9cc08c53d2
4
- data.tar.gz: 4eac0573499514eae5489339080ce1225afe43f3
3
+ metadata.gz: ff060b30323e069111aa4ad4f61b7459df5cbe94
4
+ data.tar.gz: cfe862be0e4ddbed410b9d47829fbf3a6e6ea107
5
5
  SHA512:
6
- metadata.gz: 859570b73448b23d133e8c6255e68b2b446124a94854499c06869a0c1f15bd0f37eb2b7af24ae4e2e47fc3f8455e5a9e72474e1c70c812ffb6d04ed860390f00
7
- data.tar.gz: 7eb34b9d01bea734489303c82b949e5e3e7c1b020ad0342115a9bcf198f9d9f6779f2413b44035c7c044d3575ba759a1b5c7ec99edd562c359b3641ee29f2453
6
+ metadata.gz: f59a608b40668e023029490fa883f564e42e92c6c9c21b7c96e28b35f24b7d0a389debc9e9b67ed87464f40341a753669fc2e409c73c3326862a53c99b452561
7
+ data.tar.gz: 15c74553ddabcb36be92aa8a6dfbefd03c853d57f92eda287f3738246925333459762ad909223124ba42321a816ee0d8ebac8fbe4055bfcabcc048b96be91c5a
@@ -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
- elsif ["update", "build", "bootstrap"].include?(command_name) && params[:dependencies].count > 0
15
- cmd.concat(params[:dependencies])
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
- begin
89
- UI.verbose("Build_version: #{build.build_version} matches #{build_number}, grabbing dsym_url") if build_number
90
-
91
- build_details = app.tunes_build_details(train: train.version_string, build_number: build.build_version, platform: platform)
92
- download_url = build_details.dsym_url
93
- UI.verbose("dsym_url: #{download_url}")
94
- rescue Spaceship::TunesClient::ITunesConnectError => ex
95
- UI.error("Error accessing dSYM file for build\n\n#{build}\n\nException: #{ex}")
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
- if download_url
99
- self.download(download_url, app.bundle_id, train.version_string, build.build_version, output_directory)
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)
@@ -155,6 +155,9 @@ Style/CollectionMethods:
155
155
  CrossPlatform/ForkUsage:
156
156
  Exclude:
157
157
  - "**/plugins/template/**/*"
158
+ Lint/IsStringUsage:
159
+ Include:
160
+ - gym/**/*
158
161
  Style/MethodCallWithArgsParentheses:
159
162
  Enabled: true
160
163
  IgnoredMethods:
@@ -13,28 +13,18 @@ module Fastlane
13
13
  end
14
14
  end
15
15
 
16
- class SwiftFastlaneAPIGenerator
17
- DEFAULT_API_VERSION_STRING = "0.9.1"
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
- self.actions_not_supported = ["import", "import_from_git"].to_set
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
- # compare old file content to potential new file content
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
- # if there is a change, we need to write out the new file
93
- if api_version != old_api_version
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.20190822200101'.freeze
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,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -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.strip # strip so that \n gets removed
54
+ line = l.chomp
55
55
  output << line
56
56
 
57
57
  next unless print_all
@@ -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
- is_string: false,
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
- is_string: false),
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
- is_string: false,
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
- is_string: true,
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
- is_string: false,
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
- is_string: false),
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
- is_string: false),
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
- is_string: false),
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
- is_string: false),
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
- is_string: false),
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
- is_string: false,
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
- return 1 unless UI.confirm("Overwrite configuration files?")
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["resultString"] || "").include?("Program License Agreement")
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.20190822200101
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-22 00:00:00.000000000 Z
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
- - precheck/lib
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
- - pem/lib
1760
- - match/lib
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
  - - ">="