fastlane 2.70.3 → 2.71.0.beta.20171219010003
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/actions/build_ios_app.rb +1 -1
- data/fastlane/lib/fastlane/actions/danger.rb +0 -7
- data/fastlane/lib/fastlane/actions/docs/produce.md +1 -5
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -7
- data/fastlane/lib/fastlane/actions/get_build_number.rb +0 -4
- data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +0 -4
- data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -4
- data/fastlane/lib/fastlane/actions/git_branch.rb +0 -4
- data/fastlane/lib/fastlane/actions/import_from_git.rb +2 -8
- data/fastlane/lib/fastlane/actions/modify_services.rb +1 -5
- data/fastlane/lib/fastlane/actions/slack.rb +9 -24
- data/fastlane/lib/fastlane/fast_file.rb +75 -9
- data/fastlane/lib/fastlane/server/socket_server.rb +3 -8
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +6 -11
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +14 -18
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +0 -4
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +7 -12
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +3 -44
- data/fastlane_core/lib/fastlane_core.rb +0 -1
- data/produce/lib/produce/developer_center.rb +1 -5
- data/produce/lib/produce/service.rb +1 -42
- data/snapshot/lib/assets/SnapshotHelper.swift +1 -2
- data/supply/lib/supply/setup.rb +2 -2
- data/supply/lib/supply/uploader.rb +13 -14
- metadata +19 -23
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/liebowitz.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/fastlane_core/lib/fastlane_core/tag_version.rb +0 -24
- data/precheck/lib/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1fd252b22d17a46eaec58c8a919ac167ac5f852
|
4
|
+
data.tar.gz: 2785ab29b9e222048881ab02ef16eaae06373234
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7a1c6c6ab62d30df653c582a0736939fe4bf174f5757c2e4f4907e534678bd257d6bb59e1b60bb4dc6f63aa3712b0ff29738481d7d7155d0407ddbe29131ae7
|
7
|
+
data.tar.gz: ddec52067646e9f0e33d7641e1cac5f9ea3d8d81a07a6bfc139546c9932f6b5fa2dc65083ac284dca54fa121d8d08a555fdefac342fd6b5f5b97a862e4d6e8d2
|
@@ -121,7 +121,7 @@ module Fastlane
|
|
121
121
|
clean: true,
|
122
122
|
output_directory: "path/to/dir", # Destination directory. Defaults to current directory.
|
123
123
|
output_name: "my-app.ipa", # specify the name of the .ipa file to generate (including file extension)
|
124
|
-
sdk: "
|
124
|
+
sdk: "10.0" # use SDK as the name or path of the base SDK when building the project.
|
125
125
|
)',
|
126
126
|
'gym # alias for "build_ios_app"',
|
127
127
|
'build_app # alias for "build_ios_app"'
|
@@ -13,14 +13,12 @@ module Fastlane
|
|
13
13
|
dangerfile = params[:dangerfile]
|
14
14
|
base = params[:base]
|
15
15
|
head = params[:head]
|
16
|
-
pr = params[:pr]
|
17
16
|
cmd << "--danger_id=#{danger_id}" if danger_id
|
18
17
|
cmd << "--dangerfile=#{dangerfile}" if dangerfile
|
19
18
|
cmd << "--fail-on-errors=true" if params[:fail_on_errors]
|
20
19
|
cmd << "--new-comment" if params[:new_comment]
|
21
20
|
cmd << "--base=#{base}" if base
|
22
21
|
cmd << "--head=#{head}" if head
|
23
|
-
cmd << "pr #{pr}" if pr
|
24
22
|
|
25
23
|
ENV['DANGER_GITHUB_API_TOKEN'] = params[:github_api_token] if params[:github_api_token]
|
26
24
|
|
@@ -87,11 +85,6 @@ module Fastlane
|
|
87
85
|
env_name: "FL_DANGER_HEAD",
|
88
86
|
description: "A branch/tag/commit to use as the head. [master|dev|stable]",
|
89
87
|
is_string: true,
|
90
|
-
optional: true),
|
91
|
-
FastlaneCore::ConfigItem.new(key: :pr,
|
92
|
-
env_name: "FL_DANGER_PR",
|
93
|
-
description: "Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\"",
|
94
|
-
is_string: true,
|
95
88
|
optional: true)
|
96
89
|
]
|
97
90
|
end
|
@@ -204,11 +204,7 @@ lane :release do
|
|
204
204
|
passbook: "on", # Valid values: "on", "off"
|
205
205
|
push_notification: "on", # Valid values: "on", "off"
|
206
206
|
siri_kit: "on", # Valid values: "on", "off"
|
207
|
-
vpn_configuration: "on"
|
208
|
-
network_extension: "on", # Valid values: "on", "off"
|
209
|
-
hotspot: "on", # Valid values: "on", "off"
|
210
|
-
multipath: "on", # Valid values: "on", "off"
|
211
|
-
nfc_tag_reading: "on", # Valid values: "on", "off"
|
207
|
+
vpn_configuration: "on" # Valid values: "on", "off"
|
212
208
|
}
|
213
209
|
)
|
214
210
|
|
@@ -5,7 +5,6 @@ module Fastlane
|
|
5
5
|
end
|
6
6
|
|
7
7
|
class DownloadDsymsAction < Action
|
8
|
-
# rubocop:disable Metrics/PerceivedComplexity
|
9
8
|
def self.run(params)
|
10
9
|
require 'spaceship'
|
11
10
|
require 'net/http'
|
@@ -30,12 +29,8 @@ module Fastlane
|
|
30
29
|
# Set version if it is latest
|
31
30
|
if version == 'latest'
|
32
31
|
# Try to grab the edit version first, else fallback to live version
|
33
|
-
UI.message("Looking for latest version...")
|
34
32
|
latest_version = app.edit_version(platform: platform) || app.live_version(platform: platform)
|
35
|
-
|
36
|
-
UI.user_error!("Could not find latest version for your app, please try setting a specific version") if latest_version.version.nil?
|
37
|
-
|
38
|
-
version = latest_version.version
|
33
|
+
version = nil
|
39
34
|
build_number = latest_version.build_version
|
40
35
|
end
|
41
36
|
|
@@ -87,7 +82,6 @@ module Fastlane
|
|
87
82
|
UI.error("No dSYM files found on iTunes Connect - this usually happens when no recompling happened yet")
|
88
83
|
end
|
89
84
|
end
|
90
|
-
# rubocop:enable Metrics/PerceivedComplexity
|
91
85
|
|
92
86
|
def self.write_dsym(data, bundle_id, train_number, build_number, output_directory)
|
93
87
|
file_name = "#{bundle_id}-#{train_number}-#{build_number}.dSYM.zip"
|
@@ -34,7 +34,7 @@ module Fastlane
|
|
34
34
|
default_value: 'fastlane/Fastfile',
|
35
35
|
optional: true),
|
36
36
|
FastlaneCore::ConfigItem.new(key: :version,
|
37
|
-
description: "The version to checkout on the respository. Optimistic
|
37
|
+
description: "The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints",
|
38
38
|
default_value: nil,
|
39
39
|
optional: true)
|
40
40
|
]
|
@@ -54,13 +54,7 @@ module Fastlane
|
|
54
54
|
url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
|
55
55
|
branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
|
56
56
|
path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
|
57
|
-
version: "~> 1.0.0" #
|
58
|
-
)',
|
59
|
-
'import_from_git(
|
60
|
-
url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
|
61
|
-
branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
|
62
|
-
path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
|
63
|
-
version: [">= 1.1.0", "< 2.0.0"] # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints.
|
57
|
+
version: "~> 1.0.0" #The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints.
|
64
58
|
)'
|
65
59
|
]
|
66
60
|
end
|
@@ -58,11 +58,7 @@ module Fastlane
|
|
58
58
|
passbook: 'passbook',
|
59
59
|
push_notification: 'push_notification',
|
60
60
|
siri_kit: 'sirikit',
|
61
|
-
vpn_configuration: 'vpn_conf'
|
62
|
-
network_extension: 'network_extension',
|
63
|
-
hotspot: 'hotspot',
|
64
|
-
multipath: 'multipath',
|
65
|
-
nfc_tag_reading: 'nfc_tag_reading'
|
61
|
+
vpn_configuration: 'vpn_conf'
|
66
62
|
}
|
67
63
|
end
|
68
64
|
|
@@ -38,24 +38,15 @@ module Fastlane
|
|
38
38
|
|
39
39
|
return [notifier, slack_attachment] if Helper.is_test? # tests will verify the slack attachments and other properties
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
UI.
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
else
|
51
|
-
UI.verbose(result) unless result.nil?
|
52
|
-
message = "Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL"
|
53
|
-
if options[:fail_on_error]
|
54
|
-
UI.user_error!(message)
|
55
|
-
else
|
56
|
-
UI.error(message)
|
57
|
-
end
|
58
|
-
end
|
41
|
+
result = notifier.ping '',
|
42
|
+
icon_url: icon_url,
|
43
|
+
attachments: [slack_attachment]
|
44
|
+
|
45
|
+
if result.code.to_i == 200
|
46
|
+
UI.success('Successfully sent Slack notification')
|
47
|
+
else
|
48
|
+
UI.verbose(result)
|
49
|
+
UI.user_error!("Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL")
|
59
50
|
end
|
60
51
|
end
|
61
52
|
|
@@ -118,12 +109,6 @@ module Fastlane
|
|
118
109
|
description: "Was this build successful? (true/false)",
|
119
110
|
optional: true,
|
120
111
|
default_value: true,
|
121
|
-
is_string: false),
|
122
|
-
FastlaneCore::ConfigItem.new(key: :fail_on_error,
|
123
|
-
env_name: "FL_SLACK_FAIL_ON_ERROR",
|
124
|
-
description: "Should an error sending the slack notification cause a failure? (true/false)",
|
125
|
-
optional: true,
|
126
|
-
default_value: true,
|
127
112
|
is_string: false)
|
128
113
|
]
|
129
114
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require "rubygems/requirement"
|
2
|
-
|
3
1
|
module Fastlane
|
4
2
|
class FastFile
|
5
3
|
# Stores all relevant information from the currently running process
|
@@ -231,7 +229,7 @@ module Fastlane
|
|
231
229
|
# @param url [String] The git URL to clone the repository from
|
232
230
|
# @param branch [String] The branch to checkout in the repository
|
233
231
|
# @param path [String] The path to the Fastfile
|
234
|
-
# @param
|
232
|
+
# @param verion [String] Version of the required Fastlane version
|
235
233
|
def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil)
|
236
234
|
UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
|
237
235
|
|
@@ -253,10 +251,13 @@ module Fastlane
|
|
253
251
|
Actions.sh("GIT_TERMINAL_PROMPT=0 git clone '#{url}' '#{clone_folder}' --depth 1 -n #{branch_option}")
|
254
252
|
|
255
253
|
unless version.nil?
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
254
|
+
git_tags = fetch_remote_tags(folder: clone_folder)
|
255
|
+
|
256
|
+
# Separate version from optimistic operator
|
257
|
+
version_number = version(version_string: version)
|
258
|
+
operator = operator(version_string: version)
|
259
|
+
|
260
|
+
checkout_param = checkout_param_for_operator(operator: operator, version: version_number, git_tags: git_tags)
|
260
261
|
end
|
261
262
|
|
262
263
|
Actions.sh("cd '#{clone_folder}' && git checkout #{checkout_param} '#{path}'")
|
@@ -292,10 +293,75 @@ module Fastlane
|
|
292
293
|
git_tags_string = Actions.sh("cd '#{folder}' && git tag -l")
|
293
294
|
git_tags = git_tags_string.split("\n")
|
294
295
|
|
296
|
+
# Delete tags that are not a real version number
|
297
|
+
git_tags.delete_if { |tag| Gem::Version.correct?(tag) != 0 }
|
298
|
+
|
295
299
|
# Sort tags based on their version number
|
300
|
+
git_tags.sort_by { |tag| Gem::Version.new(tag) }
|
301
|
+
|
296
302
|
return git_tags
|
297
|
-
|
298
|
-
|
303
|
+
end
|
304
|
+
|
305
|
+
def checkout_param_for_operator(operator: nil, version: nil, git_tags: nil)
|
306
|
+
# ~> should select the latest version withing constraints.
|
307
|
+
# -> should select a specific version without fallback.
|
308
|
+
if operator == "~>"
|
309
|
+
return checkout_param_twiddle_wakka(version: version, git_tags: git_tags)
|
310
|
+
|
311
|
+
elsif operator == "->" || operator.nil?
|
312
|
+
return checkout_param_specific_version(version: version, git_tags: git_tags)
|
313
|
+
|
314
|
+
else
|
315
|
+
UI.user_error!("The specified operator \"#{operator}\" in \"#{version}\" is unknown. Please use one of these '~> ->'")
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
def checkout_param_specific_version(version: nil, git_tags: nil)
|
320
|
+
# Search matching version in array
|
321
|
+
matching_git_tags = git_tags.select do |tag|
|
322
|
+
tag == version
|
323
|
+
end
|
324
|
+
|
325
|
+
UI.user_error!("The specified version \"#{version}\" doesn't exist") if matching_git_tags.count == 0
|
326
|
+
return matching_git_tags.last
|
327
|
+
end
|
328
|
+
|
329
|
+
def checkout_param_twiddle_wakka(version: nil, git_tags: nil)
|
330
|
+
# Drop last specified digit in version
|
331
|
+
last_dot_index = version.rindex('.')
|
332
|
+
version_range = version[0..last_dot_index - 1]
|
333
|
+
|
334
|
+
# Search matching version in array
|
335
|
+
matching_git_tags = git_tags.select do |tag|
|
336
|
+
tag.start_with?(version_range)
|
337
|
+
end
|
338
|
+
|
339
|
+
UI.user_error!("No version found within the \"#{version_range}.*\" range") if matching_git_tags.count == 0
|
340
|
+
|
341
|
+
return matching_git_tags.last
|
342
|
+
end
|
343
|
+
|
344
|
+
def operator(version_string: nil)
|
345
|
+
version_info = version_range_info(version_string: version_string)
|
346
|
+
|
347
|
+
# version_info will have 2 elements if an optimistic operator is specified.
|
348
|
+
if version_info.count > 1
|
349
|
+
|
350
|
+
# Optimistic operator is always the first part. e.g.: ["~>", "2.0.0"]
|
351
|
+
return version_info.first
|
352
|
+
end
|
353
|
+
|
354
|
+
return nil
|
355
|
+
end
|
356
|
+
|
357
|
+
def version(version_string: nil)
|
358
|
+
version_info = version_range_info(version_string: version_string)
|
359
|
+
return version_info.last
|
360
|
+
end
|
361
|
+
|
362
|
+
def version_range_info(version_string: nil)
|
363
|
+
# Separate version from optimistic operator
|
364
|
+
return version_string.split(" ")
|
299
365
|
end
|
300
366
|
|
301
367
|
#####################################################
|
@@ -174,8 +174,7 @@ module Fastlane
|
|
174
174
|
return_value = ""
|
175
175
|
end
|
176
176
|
|
177
|
-
|
178
|
-
return JSON.generate(return_value.to_s, quirks_mode: true)
|
177
|
+
return JSON.generate(return_value.to_s)
|
179
178
|
end
|
180
179
|
|
181
180
|
def process_value_as_array_of_strings(return_value: nil)
|
@@ -183,7 +182,6 @@ module Fastlane
|
|
183
182
|
return_value = []
|
184
183
|
end
|
185
184
|
|
186
|
-
# quirks_mode shouldn't be required for real objects
|
187
185
|
return JSON.generate(return_value)
|
188
186
|
end
|
189
187
|
|
@@ -192,7 +190,6 @@ module Fastlane
|
|
192
190
|
return_value = {}
|
193
191
|
end
|
194
192
|
|
195
|
-
# quirks_mode shouldn't be required for real objects
|
196
193
|
return JSON.generate(return_value)
|
197
194
|
end
|
198
195
|
|
@@ -201,8 +198,7 @@ module Fastlane
|
|
201
198
|
return_value = false
|
202
199
|
end
|
203
200
|
|
204
|
-
|
205
|
-
return JSON.generate(return_value.to_s, quirks_mode: true)
|
201
|
+
return JSON.generate(return_value)
|
206
202
|
end
|
207
203
|
|
208
204
|
def process_value_as_int(return_value: nil)
|
@@ -210,8 +206,7 @@ module Fastlane
|
|
210
206
|
return_value = 0
|
211
207
|
end
|
212
208
|
|
213
|
-
|
214
|
-
return JSON.generate(return_value.to_s, quirks_mode: true)
|
209
|
+
return JSON.generate(return_value)
|
215
210
|
end
|
216
211
|
end
|
217
212
|
end
|
@@ -79,13 +79,11 @@ module Fastlane
|
|
79
79
|
file_content += autogen_version_warning_text_array
|
80
80
|
|
81
81
|
file_content = file_content.join("\n")
|
82
|
-
|
83
|
-
File.write(
|
84
|
-
UI.success(
|
82
|
+
target_path = File.join(@target_output_path, "Fastlane.swift")
|
83
|
+
File.write(target_path, file_content)
|
84
|
+
UI.success(target_path)
|
85
85
|
|
86
|
-
|
87
|
-
files_generated += generate_default_implementations(tool_details: tool_details)
|
88
|
-
return files_generated
|
86
|
+
generate_default_implementation_opening(tool_details: tool_details)
|
89
87
|
end
|
90
88
|
|
91
89
|
def write_lanefile(lanefile_implementation_opening: nil, class_name: nil, tool_name: nil)
|
@@ -111,20 +109,17 @@ module Fastlane
|
|
111
109
|
target_path = File.join(@target_output_path, "#{class_name}.swift")
|
112
110
|
File.write(target_path, file_content)
|
113
111
|
UI.success(target_path)
|
114
|
-
return target_path
|
115
112
|
end
|
116
113
|
|
117
|
-
def
|
118
|
-
files_generated = []
|
114
|
+
def generate_default_implementation_opening(tool_details: nil)
|
119
115
|
tool_details.each do |tool_detail|
|
120
116
|
lanefile_implementation_opening = "class #{tool_detail.swift_class}: #{tool_detail.swift_protocol} {"
|
121
|
-
|
117
|
+
write_lanefile(
|
122
118
|
lanefile_implementation_opening: lanefile_implementation_opening,
|
123
119
|
class_name: tool_detail.swift_class,
|
124
120
|
tool_name: tool_detail.command_line_tool_name
|
125
121
|
)
|
126
122
|
end
|
127
|
-
return files_generated
|
128
123
|
end
|
129
124
|
|
130
125
|
def generate_lanefile_parsing_functions
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.71.0.beta.20171219010003'.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
|
@@ -1123,8 +1123,7 @@ func danger(useBundleExec: Bool = true,
|
|
1123
1123
|
failOnErrors: Bool = false,
|
1124
1124
|
newComment: Bool = false,
|
1125
1125
|
base: String? = nil,
|
1126
|
-
head: String? = nil
|
1127
|
-
pr: String? = nil) {
|
1126
|
+
head: String? = nil) {
|
1128
1127
|
let command = RubyCommand(commandID: "", methodName: "danger", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
|
1129
1128
|
RubyCommand.Argument(name: "verbose", value: verbose),
|
1130
1129
|
RubyCommand.Argument(name: "danger_id", value: dangerId),
|
@@ -1133,8 +1132,7 @@ func danger(useBundleExec: Bool = true,
|
|
1133
1132
|
RubyCommand.Argument(name: "fail_on_errors", value: failOnErrors),
|
1134
1133
|
RubyCommand.Argument(name: "new_comment", value: newComment),
|
1135
1134
|
RubyCommand.Argument(name: "base", value: base),
|
1136
|
-
RubyCommand.Argument(name: "head", value: head)
|
1137
|
-
RubyCommand.Argument(name: "pr", value: pr)])
|
1135
|
+
RubyCommand.Argument(name: "head", value: head)])
|
1138
1136
|
_ = runner.executeCommand(command)
|
1139
1137
|
}
|
1140
1138
|
func deleteKeychain(name: String? = nil,
|
@@ -1395,9 +1393,9 @@ func gcovr() {
|
|
1395
1393
|
let command = RubyCommand(commandID: "", methodName: "gcovr", className: nil, args: [])
|
1396
1394
|
_ = runner.executeCommand(command)
|
1397
1395
|
}
|
1398
|
-
|
1396
|
+
func getBuildNumber(xcodeproj: String? = nil) {
|
1399
1397
|
let command = RubyCommand(commandID: "", methodName: "get_build_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
|
1400
|
-
|
1398
|
+
_ = runner.executeCommand(command)
|
1401
1399
|
}
|
1402
1400
|
func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
1403
1401
|
let command = RubyCommand(commandID: "", methodName: "get_build_number_repository", className: nil, args: [RubyCommand.Argument(name: "use_hg_revision_number", value: useHgRevisionNumber)])
|
@@ -1433,17 +1431,17 @@ func getGithubRelease(url: String,
|
|
1433
1431
|
RubyCommand.Argument(name: "api_token", value: apiToken)])
|
1434
1432
|
_ = runner.executeCommand(command)
|
1435
1433
|
}
|
1436
|
-
|
1437
|
-
|
1434
|
+
func getInfoPlistValue(key: String,
|
1435
|
+
path: String) {
|
1438
1436
|
let command = RubyCommand(commandID: "", methodName: "get_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
|
1439
1437
|
RubyCommand.Argument(name: "path", value: path)])
|
1440
|
-
|
1438
|
+
_ = runner.executeCommand(command)
|
1441
1439
|
}
|
1442
|
-
|
1443
|
-
|
1440
|
+
func getIpaInfoPlistValue(key: String,
|
1441
|
+
ipa: String) {
|
1444
1442
|
let command = RubyCommand(commandID: "", methodName: "get_ipa_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
|
1445
1443
|
RubyCommand.Argument(name: "ipa", value: ipa)])
|
1446
|
-
|
1444
|
+
_ = runner.executeCommand(command)
|
1447
1445
|
}
|
1448
1446
|
func getProvisioningProfile(adhoc: Bool = false,
|
1449
1447
|
development: Bool = false,
|
@@ -1527,9 +1525,9 @@ func gitAdd(path: String? = nil,
|
|
1527
1525
|
RubyCommand.Argument(name: "pathspec", value: pathspec)])
|
1528
1526
|
_ = runner.executeCommand(command)
|
1529
1527
|
}
|
1530
|
-
|
1528
|
+
func gitBranch() {
|
1531
1529
|
let command = RubyCommand(commandID: "", methodName: "git_branch", className: nil, args: [])
|
1532
|
-
|
1530
|
+
_ = runner.executeCommand(command)
|
1533
1531
|
}
|
1534
1532
|
func gitCommit(path: String,
|
1535
1533
|
message: String) {
|
@@ -2858,8 +2856,7 @@ func slack(message: String? = nil,
|
|
2858
2856
|
payload: String = "{}",
|
2859
2857
|
defaultPayloads: [String]? = nil,
|
2860
2858
|
attachmentProperties: String = "{}",
|
2861
|
-
success: Bool = true
|
2862
|
-
failOnError: Bool = true) {
|
2859
|
+
success: Bool = true) {
|
2863
2860
|
let command = RubyCommand(commandID: "", methodName: "slack", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
|
2864
2861
|
RubyCommand.Argument(name: "channel", value: channel),
|
2865
2862
|
RubyCommand.Argument(name: "use_webhook_configured_username_and_icon", value: useWebhookConfiguredUsernameAndIcon),
|
@@ -2869,8 +2866,7 @@ func slack(message: String? = nil,
|
|
2869
2866
|
RubyCommand.Argument(name: "payload", value: payload),
|
2870
2867
|
RubyCommand.Argument(name: "default_payloads", value: defaultPayloads),
|
2871
2868
|
RubyCommand.Argument(name: "attachment_properties", value: attachmentProperties),
|
2872
|
-
RubyCommand.Argument(name: "success", value: success)
|
2873
|
-
RubyCommand.Argument(name: "fail_on_error", value: failOnError)])
|
2869
|
+
RubyCommand.Argument(name: "success", value: success)])
|
2874
2870
|
_ = runner.executeCommand(command)
|
2875
2871
|
}
|
2876
2872
|
func slackTrain() {
|
@@ -20,7 +20,7 @@ module FastlaneCore
|
|
20
20
|
app_id_guesser = FastlaneCore::AppIdentifierGuesser.new(args: args)
|
21
21
|
return self.new(
|
22
22
|
action_name: action_name,
|
23
|
-
p_hash: app_id_guesser.p_hash
|
23
|
+
p_hash: app_id_guesser.p_hash,
|
24
24
|
platform: app_id_guesser.platform,
|
25
25
|
configuration_language: configuration_language
|
26
26
|
)
|
@@ -23,9 +23,6 @@ module FastlaneCore
|
|
23
23
|
# [Boolean] is false by default. If set to true, also string values will not be asked to the user
|
24
24
|
attr_accessor :optional
|
25
25
|
|
26
|
-
# [Boolean] is false by default. If set to true, type of the parameter will not be validated.
|
27
|
-
attr_accessor :skip_type_validation
|
28
|
-
|
29
26
|
# [Array] array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
|
30
27
|
attr_accessor :conflicting_options
|
31
28
|
|
@@ -56,7 +53,6 @@ module FastlaneCore
|
|
56
53
|
# You have to raise a specific exception if something goes wrong. Append .red after the string
|
57
54
|
# @param is_string *DEPRECATED: Use `type` instead* (Boolean) is that parameter a string? Defaults to true. If it's true, the type string will be verified.
|
58
55
|
# @param type (Class) the data type of this config item. Takes precedence over `is_string`. Use `:shell_string` to allow types `String`, `Hash` and `Array` that will be converted to shell-escaped strings
|
59
|
-
# @param skip_type_validation (Boolean) is false by default. If set to true, type of the parameter will not be validated.
|
60
56
|
# @param optional (Boolean) is false by default. If set to true, also string values will not be asked to the user
|
61
57
|
# @param conflicting_options ([]) array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
|
62
58
|
# @param conflict_block an optional block which is called when options conflict happens
|
@@ -163,9 +163,14 @@ module FastlaneCore
|
|
163
163
|
|
164
164
|
self.config_file_name = config_file_name
|
165
165
|
|
166
|
-
|
167
|
-
|
166
|
+
paths = []
|
167
|
+
paths += Dir["./fastlane/#{self.config_file_name}"]
|
168
|
+
paths += Dir["./.fastlane/#{self.config_file_name}"]
|
169
|
+
paths += Dir["./#{self.config_file_name}"]
|
170
|
+
paths += Dir["./fastlane_core/spec/fixtures/#{self.config_file_name}"] if Helper.is_test?
|
171
|
+
return if paths.count == 0
|
168
172
|
|
173
|
+
path = paths.first
|
169
174
|
begin
|
170
175
|
configuration_file = ConfigurationFile.new(self, path, block_for_missing, skip_printing_values)
|
171
176
|
options = configuration_file.options
|
@@ -191,16 +196,6 @@ module FastlaneCore
|
|
191
196
|
configuration_file
|
192
197
|
end
|
193
198
|
|
194
|
-
def self.find_configuration_file_path(config_file_name: nil)
|
195
|
-
paths = []
|
196
|
-
paths += Dir["./fastlane/#{config_file_name}"]
|
197
|
-
paths += Dir["./.fastlane/#{config_file_name}"]
|
198
|
-
paths += Dir["./#{config_file_name}"]
|
199
|
-
paths += Dir["./fastlane_core/spec/fixtures/#{config_file_name}"] if Helper.is_test?
|
200
|
-
return nil if paths.count == 0
|
201
|
-
return paths.first
|
202
|
-
end
|
203
|
-
|
204
199
|
#####################################################
|
205
200
|
# @!group Actually using the class
|
206
201
|
#####################################################
|
@@ -141,7 +141,7 @@ module FastlaneCore
|
|
141
141
|
# @return the full path to the Xcode developer tools of the currently
|
142
142
|
# running system
|
143
143
|
def self.xcode_path
|
144
|
-
return ""
|
144
|
+
return "" if self.is_test? and !self.is_mac?
|
145
145
|
`xcode-select -p`.delete("\n") + "/"
|
146
146
|
end
|
147
147
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module FastlaneCore
|
2
2
|
class IOSAppIdentifierGuesser
|
3
|
-
APP_ID_REGEX = /var\s*appIdentifier:\s*String\?{0,1}\s*\[?\]?\s*{\s*return\s*\[?\s*"(\s*[a-zA-Z.-]+\s*)"\s*\]?\s*}/
|
4
3
|
class << self
|
5
4
|
def guess_app_identifier_from_args(args)
|
6
5
|
# args example: ["-a", "com.krausefx.app", "--team_id", "5AA97AAHK2"]
|
@@ -25,7 +24,7 @@ module FastlaneCore
|
|
25
24
|
CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
|
26
25
|
end
|
27
26
|
|
28
|
-
def
|
27
|
+
def fetch_app_identifier_from_file(file_name)
|
29
28
|
# we only care about the app_identifier item in the configuration file, so
|
30
29
|
# build an options array & Configuration with just that one key and it will
|
31
30
|
# be fetched if it is present in the config file
|
@@ -42,52 +41,12 @@ module FastlaneCore
|
|
42
41
|
nil
|
43
42
|
end
|
44
43
|
|
45
|
-
def fetch_app_identifier_from_swift_file(file_name)
|
46
|
-
swift_config_file_path = FastlaneCore::Configuration.find_configuration_file_path(config_file_name: file_name)
|
47
|
-
return nil if swift_config_file_path.nil?
|
48
|
-
|
49
|
-
# Deliverfile.swift, Snapfile.swift, Appfile.swift all look like:
|
50
|
-
# var appIdentifier: String? { return nil }
|
51
|
-
# var appIdentifier: String { return "" }
|
52
|
-
|
53
|
-
# Matchfile.swift is the odd one out
|
54
|
-
# var appIdentifier: [String] { return [] }
|
55
|
-
#
|
56
|
-
|
57
|
-
swift_config_file_path = File.expand_path(swift_config_file_path)
|
58
|
-
swift_config_content = File.read(swift_config_file_path)
|
59
|
-
|
60
|
-
swift_config_content.split("\n").reject(&:empty?).each do |line|
|
61
|
-
application_id = match_swift_application_id(text_line: line)
|
62
|
-
return application_id if application_id
|
63
|
-
end
|
64
|
-
return nil
|
65
|
-
rescue
|
66
|
-
# any option/file error here should just be treated as identifier not found
|
67
|
-
return nil
|
68
|
-
end
|
69
|
-
|
70
|
-
def match_swift_application_id(text_line: nil)
|
71
|
-
text_line.strip!
|
72
|
-
application_id_match = APP_ID_REGEX.match(text_line)
|
73
|
-
return application_id_match[1].strip if application_id_match
|
74
|
-
|
75
|
-
return nil
|
76
|
-
end
|
77
|
-
|
78
44
|
def guess_app_identifier_from_config_files
|
79
45
|
["Deliverfile", "Gymfile", "Snapfile", "Matchfile"].each do |current|
|
80
|
-
app_identifier = self.
|
46
|
+
app_identifier = self.fetch_app_identifier_from_file(current)
|
81
47
|
return app_identifier if app_identifier
|
82
48
|
end
|
83
|
-
|
84
|
-
# if we're swifty, let's look there
|
85
|
-
# this isn't the same list as above
|
86
|
-
["Deliverfile.swift", "Snapfile.swift", "Appfile.swift", "Matchfile.swift"].each do |current|
|
87
|
-
app_identifier = self.fetch_app_identifier_from_swift_file(current)
|
88
|
-
return app_identifier if app_identifier
|
89
|
-
end
|
90
|
-
return nil
|
49
|
+
nil
|
91
50
|
end
|
92
51
|
|
93
52
|
# make a best-guess for the app_identifier for this project, using most-reliable signals
|
@@ -46,7 +46,6 @@ require 'fastlane_core/analytics/action_launch_context'
|
|
46
46
|
require 'fastlane_core/analytics/analytics_event_builder'
|
47
47
|
require 'fastlane_core/analytics/analytics_ingester_client'
|
48
48
|
require 'fastlane_core/analytics/analytics_session'
|
49
|
-
require 'fastlane_core/tag_version'
|
50
49
|
|
51
50
|
# Third Party code
|
52
51
|
require 'colored'
|
@@ -29,11 +29,7 @@ module Produce
|
|
29
29
|
passbook: [SERVICE_ON, SERVICE_OFF],
|
30
30
|
push_notification: [SERVICE_ON, SERVICE_OFF],
|
31
31
|
siri_kit: [SERVICE_ON, SERVICE_OFF],
|
32
|
-
vpn_configuration: [SERVICE_ON, SERVICE_OFF]
|
33
|
-
network_extension: [SERVICE_ON, SERVICE_OFF],
|
34
|
-
hotspot: [SERVICE_ON, SERVICE_OFF],
|
35
|
-
multipath: [SERVICE_ON, SERVICE_OFF],
|
36
|
-
nfc_tag_reading: [SERVICE_ON, SERVICE_OFF]
|
32
|
+
vpn_configuration: [SERVICE_ON, SERVICE_OFF]
|
37
33
|
}
|
38
34
|
|
39
35
|
def run
|
@@ -34,8 +34,7 @@ module Produce
|
|
34
34
|
|
35
35
|
def valid_services_for(options)
|
36
36
|
allowed_keys = [:app_group, :apple_pay, :associated_domains, :data_protection, :game_center, :healthkit, :homekit,
|
37
|
-
:wireless_conf, :icloud, :in_app_purchase, :inter_app_audio, :passbook, :push_notification, :sirikit,
|
38
|
-
:vpn_conf, :network_extension, :hotspot, :multipath, :nfc_tag_reading]
|
37
|
+
:wireless_conf, :icloud, :in_app_purchase, :inter_app_audio, :passbook, :push_notification, :sirikit, :vpn_conf]
|
39
38
|
options.__hash__.select { |key, value| allowed_keys.include? key }
|
40
39
|
end
|
41
40
|
|
@@ -211,46 +210,6 @@ module Produce
|
|
211
210
|
end
|
212
211
|
end
|
213
212
|
|
214
|
-
if options.network_extension
|
215
|
-
UI.message("\tNetwork Extension")
|
216
|
-
|
217
|
-
if on
|
218
|
-
app.update_service(Spaceship.app_service.network_extension.on)
|
219
|
-
else
|
220
|
-
app.update_service(Spaceship.app_service.network_extension.off)
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
224
|
-
if options.hotspot
|
225
|
-
UI.message("\tHotspot")
|
226
|
-
|
227
|
-
if on
|
228
|
-
app.update_service(Spaceship.app_service.hotspot.on)
|
229
|
-
else
|
230
|
-
app.update_service(Spaceship.app_service.hotspot.off)
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
if options.multipath
|
235
|
-
UI.message("\tMultipath")
|
236
|
-
|
237
|
-
if on
|
238
|
-
app.update_service(Spaceship.app_service.multipath.on)
|
239
|
-
else
|
240
|
-
app.update_service(Spaceship.app_service.multipath.off)
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
if options.nfc_tag_reading
|
245
|
-
UI.message("\tNFC Tag Reading")
|
246
|
-
|
247
|
-
if on
|
248
|
-
app.update_service(Spaceship.app_service.nfc_tag_reading.on)
|
249
|
-
else
|
250
|
-
app.update_service(Spaceship.app_service.nfc_tag_reading.off)
|
251
|
-
end
|
252
|
-
end
|
253
|
-
|
254
213
|
updated
|
255
214
|
end
|
256
215
|
|
@@ -58,7 +58,6 @@ enum SnapshotError: Error, CustomDebugStringConvertible {
|
|
58
58
|
}
|
59
59
|
}
|
60
60
|
|
61
|
-
@objcMembers
|
62
61
|
open class Snapshot: NSObject {
|
63
62
|
static var app: XCUIApplication!
|
64
63
|
static var cacheDirectory: URL!
|
@@ -243,4 +242,4 @@ private extension CGFloat {
|
|
243
242
|
|
244
243
|
// Please don't remove the lines below
|
245
244
|
// They are used to detect outdated configuration files
|
246
|
-
// SnapshotHelperVersion [1.
|
245
|
+
// SnapshotHelperVersion [1.7]
|
data/supply/lib/supply/setup.rb
CHANGED
@@ -44,7 +44,7 @@ module Supply
|
|
44
44
|
IMAGES_TYPES.each do |image_type|
|
45
45
|
if ['featureGraphic'].include?(image_type)
|
46
46
|
# we don't get all files in full resolution :(
|
47
|
-
UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature
|
47
|
+
UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphics. Please copy your feature graphics into `metadata/android/en-US/images/`")
|
48
48
|
next
|
49
49
|
end
|
50
50
|
|
@@ -71,7 +71,7 @@ module Supply
|
|
71
71
|
FileUtils.mkdir_p(File.join(containing, IMAGES_FOLDER_NAME, screenshot_type))
|
72
72
|
end
|
73
73
|
|
74
|
-
UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android
|
74
|
+
UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/en-US/images/`")
|
75
75
|
end
|
76
76
|
|
77
77
|
def store_apk_listing(apk_listing)
|
@@ -168,7 +168,7 @@ module Supply
|
|
168
168
|
# - Lesser than the greatest of any later (i.e. production) track
|
169
169
|
# - Or lesser than the currently being uploaded if it's in an earlier (i.e. alpha) track
|
170
170
|
def check_superseded_tracks(apk_version_codes)
|
171
|
-
UI.message("Checking superseded tracks
|
171
|
+
UI.message("Checking superseded tracks...")
|
172
172
|
max_apk_version_code = apk_version_codes.max
|
173
173
|
max_tracks_version_code = nil
|
174
174
|
|
@@ -176,27 +176,26 @@ module Supply
|
|
176
176
|
config_track_index = tracks.index(Supply.config[:track])
|
177
177
|
|
178
178
|
tracks.each_index do |track_index|
|
179
|
+
next if track_index.eql? config_track_index
|
179
180
|
track = tracks[track_index]
|
180
|
-
track_version_codes = client.track_version_codes(track).sort
|
181
|
-
UI.verbose("Found '#{track_version_codes}' on track '#{track}'")
|
182
181
|
|
183
|
-
|
182
|
+
track_version_codes = client.track_version_codes(track).sort
|
184
183
|
next if track_version_codes.empty?
|
185
184
|
|
186
185
|
if max_tracks_version_code.nil?
|
187
186
|
max_tracks_version_code = track_version_codes.max
|
188
|
-
|
187
|
+
else
|
188
|
+
removed_version_codes = track_version_codes.take_while do |v|
|
189
|
+
v < max_tracks_version_code || (v < max_apk_version_code && track_index > config_track_index)
|
190
|
+
end
|
189
191
|
|
190
|
-
|
191
|
-
|
192
|
+
unless removed_version_codes.empty?
|
193
|
+
keep_version_codes = track_version_codes - removed_version_codes
|
194
|
+
max_tracks_version_code = keep_version_codes[0] unless keep_version_codes.empty?
|
195
|
+
client.update_track(track, 1.0, keep_version_codes)
|
196
|
+
UI.message("Superseded track '#{track}', removed '#{removed_version_codes}'")
|
197
|
+
end
|
192
198
|
end
|
193
|
-
|
194
|
-
next if removed_version_codes.empty?
|
195
|
-
|
196
|
-
keep_version_codes = track_version_codes - removed_version_codes
|
197
|
-
max_tracks_version_code = keep_version_codes[0] unless keep_version_codes.empty?
|
198
|
-
client.update_track(track, 1.0, keep_version_codes)
|
199
|
-
UI.message("Superseded track '#{track}', removed '#{removed_version_codes}'")
|
200
199
|
end
|
201
200
|
end
|
202
201
|
|
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.
|
4
|
+
version: 2.71.0.beta.20171219010003
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2017-12-
|
18
|
+
date: 2017-12-19 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: slack-notifier
|
@@ -677,14 +677,14 @@ dependencies:
|
|
677
677
|
requirements:
|
678
678
|
- - "~>"
|
679
679
|
- !ruby/object:Gem::Version
|
680
|
-
version: 0.
|
680
|
+
version: 0.8.7.4
|
681
681
|
type: :development
|
682
682
|
prerelease: false
|
683
683
|
version_requirements: !ruby/object:Gem::Requirement
|
684
684
|
requirements:
|
685
685
|
- - "~>"
|
686
686
|
- !ruby/object:Gem::Version
|
687
|
-
version: 0.
|
687
|
+
version: 0.8.7.4
|
688
688
|
- !ruby/object:Gem::Dependency
|
689
689
|
name: webmock
|
690
690
|
requirement: !ruby/object:Gem::Requirement
|
@@ -848,7 +848,6 @@ files:
|
|
848
848
|
- fastlane/lib/assets/s3_plist_template.erb
|
849
849
|
- fastlane/lib/assets/s3_version_template.erb
|
850
850
|
- fastlane/lib/fastlane.rb
|
851
|
-
- fastlane/lib/fastlane/.DS_Store
|
852
851
|
- fastlane/lib/fastlane/action.rb
|
853
852
|
- fastlane/lib/fastlane/action_collector.rb
|
854
853
|
- fastlane/lib/fastlane/actions/README.md
|
@@ -1162,7 +1161,6 @@ files:
|
|
1162
1161
|
- fastlane/swift/Fastlane.swift
|
1163
1162
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
|
1164
1163
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
1165
|
-
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/liebowitz.xcuserdatad/UserInterfaceState.xcuserstate
|
1166
1164
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
|
1167
1165
|
- fastlane/swift/Gymfile.swift
|
1168
1166
|
- fastlane/swift/GymfileProtocol.swift
|
@@ -1227,7 +1225,6 @@ files:
|
|
1227
1225
|
- fastlane_core/lib/fastlane_core/provisioning_profile.rb
|
1228
1226
|
- fastlane_core/lib/fastlane_core/string_filters.rb
|
1229
1227
|
- fastlane_core/lib/fastlane_core/swag.rb
|
1230
|
-
- fastlane_core/lib/fastlane_core/tag_version.rb
|
1231
1228
|
- fastlane_core/lib/fastlane_core/test_parser.rb
|
1232
1229
|
- fastlane_core/lib/fastlane_core/tool_collector.rb
|
1233
1230
|
- fastlane_core/lib/fastlane_core/ui/disable_colors.rb
|
@@ -1314,7 +1311,6 @@ files:
|
|
1314
1311
|
- pilot/lib/pilot/tester_manager.rb
|
1315
1312
|
- pilot/lib/pilot/tester_util.rb
|
1316
1313
|
- precheck/README.md
|
1317
|
-
- precheck/lib/.DS_Store
|
1318
1314
|
- precheck/lib/assets/PrecheckfileTemplate
|
1319
1315
|
- precheck/lib/assets/PrecheckfileTemplate.swift
|
1320
1316
|
- precheck/lib/precheck.rb
|
@@ -1530,24 +1526,24 @@ metadata:
|
|
1530
1526
|
post_install_message:
|
1531
1527
|
rdoc_options: []
|
1532
1528
|
require_paths:
|
1533
|
-
-
|
1534
|
-
-
|
1535
|
-
- deliver/lib
|
1536
|
-
- fastlane/lib
|
1537
|
-
- fastlane_core/lib
|
1538
|
-
- frameit/lib
|
1539
|
-
- gym/lib
|
1529
|
+
- supply/lib
|
1530
|
+
- screengrab/lib
|
1540
1531
|
- match/lib
|
1541
|
-
- pem/lib
|
1542
|
-
- pilot/lib
|
1543
1532
|
- precheck/lib
|
1533
|
+
- sigh/lib
|
1544
1534
|
- produce/lib
|
1545
1535
|
- scan/lib
|
1546
|
-
-
|
1547
|
-
- sigh/lib
|
1536
|
+
- gym/lib
|
1548
1537
|
- snapshot/lib
|
1538
|
+
- frameit/lib
|
1539
|
+
- fastlane/lib
|
1540
|
+
- cert/lib
|
1541
|
+
- pilot/lib
|
1549
1542
|
- spaceship/lib
|
1550
|
-
-
|
1543
|
+
- credentials_manager/lib
|
1544
|
+
- deliver/lib
|
1545
|
+
- fastlane_core/lib
|
1546
|
+
- pem/lib
|
1551
1547
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1552
1548
|
requirements:
|
1553
1549
|
- - ">="
|
@@ -1555,12 +1551,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1555
1551
|
version: 2.0.0
|
1556
1552
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1557
1553
|
requirements:
|
1558
|
-
- - "
|
1554
|
+
- - ">"
|
1559
1555
|
- !ruby/object:Gem::Version
|
1560
|
-
version:
|
1556
|
+
version: 1.3.1
|
1561
1557
|
requirements: []
|
1562
1558
|
rubyforge_project:
|
1563
|
-
rubygems_version: 2.
|
1559
|
+
rubygems_version: 2.4.5.1
|
1564
1560
|
signing_key:
|
1565
1561
|
specification_version: 4
|
1566
1562
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
Binary file
|
Binary file
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require "rubygems/version"
|
2
|
-
|
3
|
-
module FastlaneCore
|
4
|
-
# Utility class to construct a Gem::Version from a tag.
|
5
|
-
# Accepts vX.Y.Z and X.Y.Z.
|
6
|
-
class TagVersion < Gem::Version
|
7
|
-
class << self
|
8
|
-
def correct?(tag)
|
9
|
-
superclass.correct?(version_number_from_tag(tag))
|
10
|
-
end
|
11
|
-
|
12
|
-
# Gem::Version.new barfs on things like "v0.1.0", which is the style
|
13
|
-
# generated by the rake release task. Just strip off any initial v
|
14
|
-
# to generate a Gem::Version from a tag.
|
15
|
-
def version_number_from_tag(tag)
|
16
|
-
tag.sub(/^v/, "")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def initialize(tag)
|
21
|
-
super(self.class.version_number_from_tag(tag))
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/precheck/lib/.DS_Store
DELETED
Binary file
|