fastlane 2.24.0.beta.20170327010009 → 2.24.0.beta.20170328010037
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
- - ">="
|