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 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
  - - ">="