fastlane 2.24.0.beta.20170327010009 → 2.24.0.beta.20170328010037
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/deliver/lib/deliver/commands_generator.rb +2 -2
- data/fastlane/lib/assets/completions/completion.fish +37 -0
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +2 -2
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +2 -2
- data/fastlane/lib/fastlane/actions/deploygate.rb +0 -1
- data/fastlane/lib/fastlane/actions/oclint.rb +1 -1
- data/fastlane/lib/fastlane/actions/snapshot.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -0
- data/fastlane/lib/fastlane/auto_complete.rb +30 -12
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +28 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/gym/lib/gym/error_handler.rb +1 -0
- data/gym/lib/gym/generators/package_command_generator.rb +1 -0
- data/gym/lib/gym/generators/package_command_generator_legacy.rb +1 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +1 -0
- data/gym/lib/gym/xcodebuild_fixes/swift_fix.rb +1 -0
- data/scan/lib/scan/options.rb +1 -1
- data/screengrab/lib/screengrab/commands_generator.rb +1 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +34 -10
- data/snapshot/lib/assets/SnapshotHelper2-3.swift +26 -6
- data/snapshot/lib/snapshot/collector.rb +22 -7
- data/snapshot/lib/snapshot/commands_generator.rb +1 -1
- data/snapshot/lib/snapshot/detect_values.rb +3 -1
- data/snapshot/lib/snapshot/options.rb +3 -2
- data/snapshot/lib/snapshot/runner.rb +17 -15
- data/snapshot/lib/snapshot/test_command_generator.rb +3 -0
- data/spaceship/lib/spaceship/portal/device.rb +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9bb503038512e9a8134c5fe54de9f0b4abc0eac
|
4
|
+
data.tar.gz: f6034d834040f4d68b72d2e3510fff7dd05d469a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c226305eb6c1f588ea2228541b99ec3546700f3a1504ef0ce60383214de82e8e7047a8d2b37b9ec572f3c8d7cc030c0022ba51f0570376e5bc25d74734d5bb6
|
7
|
+
data.tar.gz: 224ad84f19cd8c53c0d8c8952fc78bdec2037493b86aa1bdd696550bb46be112445614ad469e52576224a6435cbd17bced32c5f69644419caf4e84ab9565f60c
|
@@ -124,7 +124,7 @@ module Deliver
|
|
124
124
|
options = FastlaneCore::Configuration.create(deliverfile_options(skip_verification: true), options.__hash__)
|
125
125
|
options.load_configuration_file("Deliverfile")
|
126
126
|
Deliver::Runner.new(options, skip_version: true) # to login...
|
127
|
-
containing = FastlaneCore::Helper.fastlane_enabled? ?
|
127
|
+
containing = FastlaneCore::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
128
128
|
path = options[:screenshots_path] || File.join(containing, 'screenshots')
|
129
129
|
Deliver::DownloadScreenshots.run(options, path)
|
130
130
|
end
|
@@ -140,7 +140,7 @@ module Deliver
|
|
140
140
|
options = FastlaneCore::Configuration.create(deliverfile_options(skip_verification: true), options.__hash__)
|
141
141
|
options.load_configuration_file("Deliverfile")
|
142
142
|
Deliver::Runner.new(options) # to login...
|
143
|
-
containing = FastlaneCore::Helper.fastlane_enabled? ?
|
143
|
+
containing = FastlaneCore::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
144
144
|
path = options[:metadata_path] || File.join(containing, 'metadata')
|
145
145
|
res = ENV["DELIVER_FORCE_OVERWRITE"]
|
146
146
|
res ||= UI.confirm("Do you want to overwrite existing metadata on path '#{File.expand_path(path)}'?")
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# This function was taken from https://github.com/Carthage/Carthage/blob/master/Source/Scripts/carthage-fish-completion
|
2
|
+
function __fish_fastlane_needs_subcommand
|
3
|
+
set cmd (commandline -opc)
|
4
|
+
if [ (count $cmd) -eq 1 -a $cmd[1] = 'fastlane' ]
|
5
|
+
return 0
|
6
|
+
end
|
7
|
+
return 1
|
8
|
+
end
|
9
|
+
|
10
|
+
if test -e "Fastfile"
|
11
|
+
set file "Fastfile"
|
12
|
+
else if test -e "fastlane/Fastfile"
|
13
|
+
set file "fastlane/Fastfile"
|
14
|
+
else if test -e ".fastlane/Fastfile"
|
15
|
+
set file ".fastlane/Fastfile"
|
16
|
+
else
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
|
20
|
+
set commands (string match --regex '.*lane\ \:(?!private_)([^\s]*)\ do' (cat $file))
|
21
|
+
|
22
|
+
set commands_string
|
23
|
+
|
24
|
+
# Fish returns the fully matched string, plus the capture group. The actual captured value
|
25
|
+
# is every other line, starting at line 2.
|
26
|
+
set use_command false
|
27
|
+
|
28
|
+
for line in $commands
|
29
|
+
if [ $use_command = true ]
|
30
|
+
set commands_string "$commands_string $line"
|
31
|
+
set use_command false
|
32
|
+
else
|
33
|
+
set use_command true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
complete -c fastlane -n '__fish_fastlane_needs_subcommand' -a (string trim $commands_string) -f
|
@@ -58,8 +58,8 @@ module Fastlane
|
|
58
58
|
# Removes .plist files that matched the given expression in the 'ignore' parameter
|
59
59
|
ignore_expression = params[:ignore]
|
60
60
|
if ignore_expression
|
61
|
-
info_plist_files.
|
62
|
-
|
61
|
+
info_plist_files.reject! do |info_plist_file|
|
62
|
+
info_plist_file.match(ignore_expression)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -22,11 +22,11 @@ module Fastlane
|
|
22
22
|
UI.verbose(params[:keep_original] ? "Keeping original files" : "Not keeping original files")
|
23
23
|
|
24
24
|
if params[:fail_on_missing]
|
25
|
-
missing = artifacts.
|
25
|
+
missing = artifacts.reject { |a| File.exist?(a) }
|
26
26
|
UI.user_error! "Not all files were present in copy artifacts. Missing #{missing.join(', ')}" unless missing.empty?
|
27
27
|
else
|
28
28
|
# If we don't fail on non-existant files, don't try to copy non-existant files
|
29
|
-
artifacts.
|
29
|
+
artifacts.select! { |artifact| File.exist?(artifact) }
|
30
30
|
end
|
31
31
|
|
32
32
|
if params[:keep_original]
|
@@ -43,7 +43,7 @@ module Fastlane
|
|
43
43
|
file_ruby = file.gsub('\ ', ' ')
|
44
44
|
File.exist?(file_ruby) and
|
45
45
|
(!select_regex or file_ruby =~ select_regex) and
|
46
|
-
(!exclude_regex or
|
46
|
+
(!exclude_regex or file_ruby !~ exclude_regex)
|
47
47
|
end
|
48
48
|
|
49
49
|
command_prefix = [
|
@@ -4,21 +4,39 @@ module Fastlane
|
|
4
4
|
# Enable tab auto completion
|
5
5
|
class AutoComplete
|
6
6
|
def self.execute
|
7
|
-
|
8
|
-
confirm = UI.confirm "This will copy a shell script into #{fastlane_conf_dir} that provides the command tab completion. Sound good?"
|
9
|
-
return unless confirm
|
7
|
+
shell = ENV['SHELL']
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
if shell.end_with? "fish"
|
10
|
+
fish_completions_dir = "~/.config/fish/completions"
|
11
|
+
confirm = UI.confirm "This will copy a fish script into #{fish_completions_dir} that provides the command tab completion. If the directory does not exist it will be created. Sound good?"
|
12
|
+
return unless confirm
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
FileUtils.cp_r completion_script_path, fastlane_conf_dir
|
14
|
+
fish_completions_dir = File.expand_path fish_completions_dir
|
15
|
+
FileUtils.mkdir_p fish_completions_dir
|
18
16
|
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
completion_script_path = File.join(Fastlane::ROOT, 'lib', 'assets', 'completions', 'completion.fish')
|
18
|
+
final_completion_script_path = File.join(fish_completions_dir, 'fastlane.fish')
|
19
|
+
|
20
|
+
FileUtils.cp completion_script_path, final_completion_script_path
|
21
|
+
|
22
|
+
UI.success "Copied! You can now use tab completion for lanes"
|
23
|
+
else
|
24
|
+
fastlane_conf_dir = "~/.fastlane"
|
25
|
+
confirm = UI.confirm "This will copy a shell script into #{fastlane_conf_dir} that provides the command tab completion. Sound good?"
|
26
|
+
return unless confirm
|
27
|
+
|
28
|
+
# create the ~/.fastlane directory
|
29
|
+
fastlane_conf_dir = File.expand_path fastlane_conf_dir
|
30
|
+
FileUtils.mkdir_p fastlane_conf_dir
|
31
|
+
|
32
|
+
# then copy all of the completions files into it from the gem
|
33
|
+
completion_script_path = File.join(Fastlane::ROOT, 'lib', 'assets', 'completions')
|
34
|
+
FileUtils.cp_r completion_script_path, fastlane_conf_dir
|
35
|
+
|
36
|
+
UI.success "Copied! To use auto complete for fastlane, add the following line to your favorite rc file (e.g. ~/.bashrc)"
|
37
|
+
UI.important " . ~/.fastlane/completions/completion.sh"
|
38
|
+
UI.success "Don't forget to source that file in your current shell! 🐚"
|
39
|
+
end
|
22
40
|
end
|
23
41
|
end
|
24
42
|
end
|
@@ -81,6 +81,19 @@ Style/DotPosition:
|
|
81
81
|
Style/DoubleNegation:
|
82
82
|
Enabled: false
|
83
83
|
|
84
|
+
# Prevent to replace [] into %i
|
85
|
+
Style/SymbolArray:
|
86
|
+
Enabled: false
|
87
|
+
|
88
|
+
# We still support Ruby 2.0.0
|
89
|
+
Style/IndentHeredoc:
|
90
|
+
Enabled: false
|
91
|
+
|
92
|
+
# This cop would not work fine with rspec
|
93
|
+
Style/MixinGrouping:
|
94
|
+
Exclude:
|
95
|
+
- '**/spec/**/*'
|
96
|
+
|
84
97
|
# Sometimes we allow a rescue block that doesn't contain code
|
85
98
|
Lint/HandleExceptions:
|
86
99
|
Enabled: false
|
@@ -89,6 +102,9 @@ Lint/HandleExceptions:
|
|
89
102
|
Lint/UnusedBlockArgument:
|
90
103
|
Enabled: false
|
91
104
|
|
105
|
+
Lint/AmbiguousBlockAssociation:
|
106
|
+
Enabled: false
|
107
|
+
|
92
108
|
# Needed for $verbose
|
93
109
|
Style/GlobalVars:
|
94
110
|
Enabled: false
|
@@ -195,6 +211,18 @@ AllCops:
|
|
195
211
|
- '**/lib/assets/custom_action_template.rb'
|
196
212
|
- './vendor/**/*'
|
197
213
|
|
214
|
+
# They have not to be snake_case
|
215
|
+
Style/FileName:
|
216
|
+
Exclude:
|
217
|
+
- '**/Dangerfile'
|
218
|
+
- '**/Brewfile'
|
219
|
+
- '**/Gemfile'
|
220
|
+
- '**/Podfile'
|
221
|
+
- '**/Rakefile'
|
222
|
+
- '**/Fastfile'
|
223
|
+
- '**/Deliverfile'
|
224
|
+
- '**/Snapfile'
|
225
|
+
|
198
226
|
# We're not there yet
|
199
227
|
Style/Documentation:
|
200
228
|
Enabled: false
|
data/scan/lib/scan/options.rb
CHANGED
@@ -48,7 +48,7 @@ module Screengrab
|
|
48
48
|
|
49
49
|
c.action do |args, options|
|
50
50
|
require 'screengrab/setup'
|
51
|
-
path =
|
51
|
+
path = Screengrab::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
52
52
|
Screengrab::Setup.create(path)
|
53
53
|
end
|
54
54
|
end
|
@@ -42,7 +42,7 @@ open class Snapshot: NSObject {
|
|
42
42
|
|
43
43
|
do {
|
44
44
|
let trimCharacterSet = CharacterSet.whitespacesAndNewlines
|
45
|
-
deviceLanguage = try
|
45
|
+
deviceLanguage = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet)
|
46
46
|
app.launchArguments += ["-AppleLanguages", "(\(deviceLanguage))"]
|
47
47
|
} catch {
|
48
48
|
print("Couldn't detect/set language...")
|
@@ -58,7 +58,7 @@ open class Snapshot: NSObject {
|
|
58
58
|
|
59
59
|
do {
|
60
60
|
let trimCharacterSet = CharacterSet.whitespacesAndNewlines
|
61
|
-
locale = try
|
61
|
+
locale = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet)
|
62
62
|
} catch {
|
63
63
|
print("Couldn't detect/set locale...")
|
64
64
|
}
|
@@ -77,7 +77,7 @@ open class Snapshot: NSObject {
|
|
77
77
|
app.launchArguments += ["-FASTLANE_SNAPSHOT", "YES", "-ui_testing"]
|
78
78
|
|
79
79
|
do {
|
80
|
-
let launchArguments = try
|
80
|
+
let launchArguments = try String(contentsOf: path, encoding: String.Encoding.utf8)
|
81
81
|
let regex = try NSRegularExpression(pattern: "(\\\".+?\\\"|\\S+)", options: [])
|
82
82
|
let matches = regex.matches(in: launchArguments, options: [], range: NSRange(location:0, length:launchArguments.characters.count))
|
83
83
|
let results = matches.map { result -> String in
|
@@ -100,6 +100,8 @@ open class Snapshot: NSObject {
|
|
100
100
|
|
101
101
|
#if os(tvOS)
|
102
102
|
XCUIApplication().childrenMatchingType(.Browser).count
|
103
|
+
#elseif os(OSX)
|
104
|
+
XCUIApplication().typeKey(XCUIKeyboardKeySecondaryFn, modifierFlags: [])
|
103
105
|
#else
|
104
106
|
XCUIDevice.shared().orientation = .unknown
|
105
107
|
#endif
|
@@ -118,12 +120,34 @@ open class Snapshot: NSObject {
|
|
118
120
|
}
|
119
121
|
}
|
120
122
|
|
121
|
-
class func pathPrefix() ->
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
class func pathPrefix() -> URL? {
|
124
|
+
let homeDir: URL
|
125
|
+
//on OSX config is stored in /Users/<username>/Library
|
126
|
+
//and on iOS/tvOS/WatchOS it's in simulator's home dir
|
127
|
+
#if os(OSX)
|
128
|
+
guard let user = ProcessInfo().environment["USER"] else {
|
129
|
+
print("Couldn't find Snapshot configuration files - can't detect current user ")
|
130
|
+
return nil
|
131
|
+
}
|
132
|
+
|
133
|
+
guard let usersDir = FileManager.default.urls(for: .userDirectory, in: .localDomainMask).first else {
|
134
|
+
print("Couldn't find Snapshot configuration files - can't detect `Users` dir")
|
135
|
+
return nil
|
136
|
+
}
|
137
|
+
|
138
|
+
homeDir = usersDir.appendingPathComponent(user)
|
139
|
+
#else
|
140
|
+
guard let simulatorHostHome = ProcessInfo().environment["SIMULATOR_HOST_HOME"] else {
|
141
|
+
print("Couldn't find simulator home location. Please, check SIMULATOR_HOST_HOME env variable.")
|
142
|
+
return nil
|
143
|
+
}
|
144
|
+
guard let homeDirUrl = URL(string: simulatorHostHome) else {
|
145
|
+
print("Can't prepare environment. Simulator home location is inaccessible. Does \(simulatorHostHome) exist?")
|
146
|
+
return nil
|
147
|
+
}
|
148
|
+
homeDir = homeDirUrl
|
149
|
+
#endif
|
150
|
+
return homeDir.appendingPathComponent("Library/Caches/tools.fastlane")
|
127
151
|
}
|
128
152
|
}
|
129
153
|
|
@@ -139,4 +163,4 @@ extension XCUIElement {
|
|
139
163
|
|
140
164
|
// Please don't remove the lines below
|
141
165
|
// They are used to detect outdated configuration files
|
142
|
-
// SnapshotHelperVersion [1.
|
166
|
+
// SnapshotHelperVersion [1.3]
|
@@ -102,6 +102,8 @@ public class Snapshot: NSObject {
|
|
102
102
|
|
103
103
|
#if os(tvOS)
|
104
104
|
XCUIApplication().childrenMatchingType(.Browser).count
|
105
|
+
#elseif os(OSX)
|
106
|
+
XCUIApplication().typeKey(XCUIKeyboardKeySecondaryFn, modifierFlags: [])
|
105
107
|
#else
|
106
108
|
XCUIDevice.sharedDevice().orientation = .Unknown
|
107
109
|
#endif
|
@@ -121,11 +123,29 @@ public class Snapshot: NSObject {
|
|
121
123
|
}
|
122
124
|
|
123
125
|
class func pathPrefix() -> NSString? {
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
126
|
+
var homeDir: NSString
|
127
|
+
//on OSX config is stored in /Users/<username>/Library
|
128
|
+
//and on iOS/tvOS/WatchOS it's in simulator's home dir
|
129
|
+
#if os(OSX)
|
130
|
+
|
131
|
+
guard let user = ProcessInfo().environment["USER"] else {
|
132
|
+
print("Couldn't find Snapshot configuration files - can't detect current user ")
|
133
|
+
return nil
|
134
|
+
}
|
135
|
+
|
136
|
+
guard let usersDir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.NSUserDirectory, NSSearchPathDomainMask.NSLocalDomainMask, true)[0] as NSString? else {
|
137
|
+
print("Couldn't find Snapshot configuration files - can't detect `Users` dir")
|
138
|
+
return nil
|
139
|
+
}
|
140
|
+
|
141
|
+
homeDir = usersDir.stringByAppendingPathComponent(user) as NSString
|
142
|
+
#else
|
143
|
+
guard homeDir = ProcessInfo().environment["SIMULATOR_HOST_HOME"] as NSString else {
|
144
|
+
print("Couldn't find simulator home location. Please, check SIMULATOR_HOST_HOME env variable.")
|
145
|
+
return nil
|
146
|
+
}
|
147
|
+
#endif
|
148
|
+
return homeDir.stringByAppendingPathComponent("Library/Caches/tools.fastlane") as NSString
|
129
149
|
}
|
130
150
|
}
|
131
151
|
|
@@ -141,4 +161,4 @@ extension XCUIElement {
|
|
141
161
|
|
142
162
|
// Please don't remove the lines below
|
143
163
|
// They are used to detect outdated configuration files
|
144
|
-
// SnapshotHelperVersion [1.
|
164
|
+
// SnapshotHelperVersion [1.3]
|
@@ -75,18 +75,33 @@ module Snapshot
|
|
75
75
|
def self.check_activity(activity, to_store)
|
76
76
|
# On iOS, we look for the "Unknown" rotation gesture that signals a snapshot was taken here.
|
77
77
|
# On tvOS, we look for "Browser" count.
|
78
|
-
#
|
78
|
+
# On OSX we look for type `Fn` key on keyboard, it shouldn't change anything for app
|
79
|
+
# These are events that are not normally triggered by UI testing, making it easy for us to
|
79
80
|
# locate where snapshot() was invoked.
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
ios_detected = activity["Title"] == "Set device orientation to Unknown"
|
82
|
+
tvos_detected = activity["Title"] == "Get number of matches for: Children matching type Browser"
|
83
|
+
osx_detected = activity["Title"] == "Type 'Fn' key (XCUIKeyboardKeySecondaryFn) with no modifiers"
|
84
|
+
if ios_detected || tvos_detected || osx_detected
|
85
|
+
find_screenshot = find_screenshot(activity)
|
86
|
+
to_store << find_screenshot
|
86
87
|
end
|
88
|
+
|
87
89
|
(activity["SubActivities"] || []).each do |subactivity|
|
88
90
|
check_activity(subactivity, to_store)
|
89
91
|
end
|
90
92
|
end
|
93
|
+
|
94
|
+
def self.find_screenshot(activity)
|
95
|
+
(activity["SubActivities"] || []).each do |subactivity|
|
96
|
+
# we are interested in `Synthesize event` part of event in subactivities
|
97
|
+
return find_screenshot(subactivity) if subactivity["Title"] == "Synthesize event"
|
98
|
+
end
|
99
|
+
|
100
|
+
if activity["Attachments"]
|
101
|
+
return activity["Attachments"].last["FileName"]
|
102
|
+
else # Xcode 7.3 has stopped including 'Attachments', so we synthesize the filename manually
|
103
|
+
return "Screenshot_#{activity['UUID']}.png"
|
104
|
+
end
|
105
|
+
end
|
91
106
|
end
|
92
107
|
end
|
@@ -44,7 +44,7 @@ module Snapshot
|
|
44
44
|
|
45
45
|
c.action do |args, options|
|
46
46
|
require 'snapshot/setup'
|
47
|
-
path =
|
47
|
+
path = Snapshot::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
48
48
|
Snapshot::Setup.create(path)
|
49
49
|
end
|
50
50
|
end
|
@@ -22,7 +22,7 @@ module Snapshot
|
|
22
22
|
Snapshot.project.select_scheme(preferred_to_include: "UITests")
|
23
23
|
|
24
24
|
# Devices
|
25
|
-
|
25
|
+
if config[:devices].nil? && !Snapshot.project.mac?
|
26
26
|
config[:devices] = []
|
27
27
|
|
28
28
|
# We only care about a subset of the simulators
|
@@ -50,6 +50,8 @@ module Snapshot
|
|
50
50
|
|
51
51
|
config[:devices] << sim.name
|
52
52
|
end
|
53
|
+
elsif Snapshot.project.mac?
|
54
|
+
config[:devices] << "Mac"
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
@@ -43,8 +43,9 @@ module Snapshot
|
|
43
43
|
verify_block: proc do |value|
|
44
44
|
available = FastlaneCore::DeviceManager.simulators
|
45
45
|
value.each do |current|
|
46
|
-
|
47
|
-
|
46
|
+
device = current.strip
|
47
|
+
unless available.any? { |d| d.name.strip == device } || device == "Mac"
|
48
|
+
UI.user_error!("Device '#{device}' not in list of available simulators '#{available.join(', ')}'")
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end),
|
@@ -146,22 +146,24 @@ module Snapshot
|
|
146
146
|
File.write(File.join(prefix, "locale.txt"), locale || "")
|
147
147
|
File.write(File.join(prefix, "snapshot-launch_arguments.txt"), launch_arguments.last)
|
148
148
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
erase_simulator
|
159
|
-
|
160
|
-
localize_simulator
|
149
|
+
unless device_type == "Mac"
|
150
|
+
# Kill and shutdown all currently running simulators so that the following settings
|
151
|
+
# changes will be picked up when they are started again.
|
152
|
+
Snapshot.kill_simulator # because of https://github.com/fastlane/snapshot/issues/337
|
153
|
+
`xcrun simctl shutdown booted &> /dev/null`
|
154
|
+
|
155
|
+
Fixes::SimulatorZoomFix.patch
|
156
|
+
Fixes::HardwareKeyboardFix.patch
|
157
|
+
|
158
|
+
if Snapshot.config[:erase_simulator] || Snapshot.config[:localize_simulator]
|
159
|
+
erase_simulator(device_type)
|
160
|
+
if Snapshot.config[:localize_simulator]
|
161
|
+
localize_simulator(device_type, language, locale)
|
162
|
+
end
|
163
|
+
elsif Snapshot.config[:reinstall_app]
|
164
|
+
# no need to reinstall if device has been erased
|
165
|
+
uninstall_app(device_type)
|
161
166
|
end
|
162
|
-
elsif Snapshot.config[:reinstall_app]
|
163
|
-
# no need to reinstall if device has been erased
|
164
|
-
uninstall_app(device_type)
|
165
167
|
end
|
166
168
|
|
167
169
|
add_media(device_type, :photo, Snapshot.config[:add_photos]) if Snapshot.config[:add_photos]
|
@@ -90,6 +90,9 @@ module Snapshot
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def destination(device_name)
|
93
|
+
# on Mac we will always run on host machine, so should specify only platform
|
94
|
+
return ["-destination 'platform=macOS'"] if device_name =~ /^Mac/
|
95
|
+
|
93
96
|
os = device_name =~ /^Apple TV/ ? "tvOS" : "iOS"
|
94
97
|
os_version = Snapshot.config[:ios_version] || Snapshot::LatestOsVersion.version(os)
|
95
98
|
|
@@ -91,7 +91,7 @@ module Spaceship
|
|
91
91
|
|
92
92
|
# @return (Array) Returns all devices that can be used for iOS profiles (all devices except TVs)
|
93
93
|
def all_ios_profile_devices
|
94
|
-
all.
|
94
|
+
all.reject { |device| device.device_type == "tvOS" }
|
95
95
|
end
|
96
96
|
|
97
97
|
# @return (Array) Returns all devices matching the provided profile_type
|
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.24.0.beta.
|
4
|
+
version: 2.24.0.beta.20170328010037
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2017-03-
|
17
|
+
date: 2017-03-28 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: slack-notifier
|
@@ -658,14 +658,14 @@ dependencies:
|
|
658
658
|
requirements:
|
659
659
|
- - "~>"
|
660
660
|
- !ruby/object:Gem::Version
|
661
|
-
version: 0.
|
661
|
+
version: '0.48'
|
662
662
|
type: :development
|
663
663
|
prerelease: false
|
664
664
|
version_requirements: !ruby/object:Gem::Requirement
|
665
665
|
requirements:
|
666
666
|
- - "~>"
|
667
667
|
- !ruby/object:Gem::Version
|
668
|
-
version: 0.
|
668
|
+
version: '0.48'
|
669
669
|
- !ruby/object:Gem::Dependency
|
670
670
|
name: rb-readline
|
671
671
|
requirement: !ruby/object:Gem::Requirement
|
@@ -759,6 +759,7 @@ files:
|
|
759
759
|
- fastlane/lib/assets/DefaultFastfileTemplate
|
760
760
|
- fastlane/lib/assets/FastfileTemplateAndroid
|
761
761
|
- fastlane/lib/assets/completions/completion.bash
|
762
|
+
- fastlane/lib/assets/completions/completion.fish
|
762
763
|
- fastlane/lib/assets/completions/completion.sh
|
763
764
|
- fastlane/lib/assets/completions/completion.zsh
|
764
765
|
- fastlane/lib/assets/custom_action_template.rb
|
@@ -1296,23 +1297,23 @@ metadata:
|
|
1296
1297
|
post_install_message:
|
1297
1298
|
rdoc_options: []
|
1298
1299
|
require_paths:
|
1299
|
-
-
|
1300
|
-
-
|
1301
|
-
-
|
1302
|
-
- screengrab/lib
|
1303
|
-
- deliver/lib
|
1304
|
-
- sigh/lib
|
1300
|
+
- pilot/lib
|
1301
|
+
- snapshot/lib
|
1302
|
+
- match/lib
|
1305
1303
|
- fastlane_core/lib
|
1304
|
+
- gym/lib
|
1305
|
+
- deliver/lib
|
1306
|
+
- spaceship/lib
|
1306
1307
|
- cert/lib
|
1307
|
-
- supply/lib
|
1308
|
-
- pem/lib
|
1309
|
-
- produce/lib
|
1310
1308
|
- scan/lib
|
1309
|
+
- screengrab/lib
|
1310
|
+
- pem/lib
|
1311
|
+
- supply/lib
|
1312
|
+
- sigh/lib
|
1311
1313
|
- frameit/lib
|
1312
|
-
-
|
1313
|
-
-
|
1314
|
-
-
|
1315
|
-
- snapshot/lib
|
1314
|
+
- produce/lib
|
1315
|
+
- fastlane/lib
|
1316
|
+
- credentials_manager/lib
|
1316
1317
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1317
1318
|
requirements:
|
1318
1319
|
- - ">="
|