fastlane 2.124.0.beta.20190528200017 → 2.124.0.beta.20190529200025
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/assets/ActionDetails.md.erb +17 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +6 -3
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/frameit/lib/frameit/screenshot.rb +0 -2
- data/scan/lib/scan/options.rb +14 -5
- data/scan/lib/scan/runner.rb +22 -21
- data/snapshot/lib/assets/SnapshotHelper.swift +22 -22
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51cc5113a4d8c05768be5d9d6529cc861c976300
|
4
|
+
data.tar.gz: 4dd1ca2a45d918838d0af6b0a12ea693770c2cf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a01cddf0659828992918d36535325bab274f987770e59fe2a6226329dfa64006da208652e1bdaf896d0d4fc8d05dc81bec23c58993933a03e12b4d95c13e0133
|
7
|
+
data.tar.gz: 53f4a0b83daaa54d8a0162132dab478ae38d680b0ba225cec662bff7e85388125a337f9c10593bf8f440beeff9153f5f56009f4047678bbe22ce28786b87bfec
|
@@ -51,6 +51,23 @@ Key | Description | Default
|
|
51
51
|
|
52
52
|
<hr />
|
53
53
|
|
54
|
+
<% if action.output && action.output.kind_of?(Array) && action.output.length > 0 %>
|
55
|
+
|
56
|
+
## Lane Variables
|
57
|
+
|
58
|
+
Actions can communicate with each other using a shared hash `lane_context`, that can be accessed in other actions, plugins or your lanes: `lane_context[SharedValues:XYZ]`. The `<%= @action.action_name %>` action generates the following Lane Variables:
|
59
|
+
|
60
|
+
SharedValue | Description
|
61
|
+
------------|-------------
|
62
|
+
<%- (action.output || []).each do |array_item| -%>
|
63
|
+
<%- next unless array_item.kind_of?(Array) -%>
|
64
|
+
<%- next if array_item.length != 2 -%>
|
65
|
+
`SharedValues::<%= array_item[0] %>` | <%= array_item[1] %>
|
66
|
+
<%- end %>
|
67
|
+
To get more information check the [Lanes documentation](https://docs.fastlane.tools/advanced/lanes/#lane-context).
|
68
|
+
<hr />
|
69
|
+
<% end %><%# End of action.output... %>
|
70
|
+
|
54
71
|
## Documentation
|
55
72
|
|
56
73
|
To show the documentation in your terminal, run
|
@@ -53,7 +53,7 @@ module Fastlane
|
|
53
53
|
|
54
54
|
# Write a nice message
|
55
55
|
message = []
|
56
|
-
message << "Looking for dSYM files for #{params[:app_identifier]}"
|
56
|
+
message << "Looking for dSYM files for '#{params[:app_identifier]}' on platform #{platform}"
|
57
57
|
message << "v#{version}" if version
|
58
58
|
message << "(#{build_number})" if build_number
|
59
59
|
UI.message(message.join(" "))
|
@@ -7,8 +7,8 @@ module Fastlane
|
|
7
7
|
require 'tmpdir'
|
8
8
|
|
9
9
|
find_binary_path(params)
|
10
|
-
find_api_token(params)
|
11
10
|
find_gsp_path(params)
|
11
|
+
find_api_token(params)
|
12
12
|
|
13
13
|
if !params[:api_token] && !params[:gsp_path]
|
14
14
|
UI.user_error!('Either Fabric API key or path to Firebase Crashlytics GoogleService-Info.plist must be given.')
|
@@ -87,8 +87,11 @@ module Fastlane
|
|
87
87
|
UI.message("Uploading '#{path}'...")
|
88
88
|
command = []
|
89
89
|
command << File.expand_path(params[:binary_path]).shellescape
|
90
|
-
|
91
|
-
|
90
|
+
if params[:gsp_path]
|
91
|
+
command << "-gsp #{params[:gsp_path].shellescape}"
|
92
|
+
elsif params[:api_token]
|
93
|
+
command << "-a #{params[:api_token]}"
|
94
|
+
end
|
92
95
|
command << "-p #{params[:platform] == 'appletvos' ? 'tvos' : params[:platform]}"
|
93
96
|
command << File.expand_path(path).shellescape
|
94
97
|
begin
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.124.0.beta.
|
2
|
+
VERSION = '2.124.0.beta.20190529200025'.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
|
@@ -61,8 +61,6 @@ module Frameit
|
|
61
61
|
if !Frameit.config[:use_legacy_iphone6s] && @color == Frameit::Color::BLACK
|
62
62
|
if @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_55 || @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_47
|
63
63
|
return "Matte Black" # RIP space gray
|
64
|
-
elsif @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_61
|
65
|
-
return "Black"
|
66
64
|
end
|
67
65
|
end
|
68
66
|
return @color
|
data/scan/lib/scan/options.rb
CHANGED
@@ -2,8 +2,8 @@ require 'fastlane_core/configuration/config_item'
|
|
2
2
|
require 'credentials_manager/appfile_config'
|
3
3
|
require_relative 'module'
|
4
4
|
|
5
|
+
# rubocop:disable Metrics/ClassLength
|
5
6
|
module Scan
|
6
|
-
# rubocop:disable Metrics/ClassLength
|
7
7
|
class Options
|
8
8
|
def self.verify_type(item_name, acceptable_types, value)
|
9
9
|
type_ok = [Array, String].any? { |type| value.kind_of?(type) }
|
@@ -70,19 +70,28 @@ module Scan
|
|
70
70
|
type: Boolean,
|
71
71
|
optional: true),
|
72
72
|
|
73
|
-
#
|
73
|
+
# simulator management
|
74
|
+
FastlaneCore::ConfigItem.new(key: :force_quit_simulator,
|
75
|
+
env_name: 'SCAN_FORCE_QUIT_SIMULATOR',
|
76
|
+
description: "Enabling this option will automatically killall Simulator processes before the run",
|
77
|
+
default_value: false,
|
78
|
+
type: Boolean),
|
74
79
|
FastlaneCore::ConfigItem.new(key: :reset_simulator,
|
75
80
|
env_name: 'SCAN_RESET_SIMULATOR',
|
76
81
|
description: "Enabling this option will automatically erase the simulator before running the application",
|
77
82
|
default_value: false,
|
78
83
|
type: Boolean),
|
79
|
-
|
80
|
-
|
84
|
+
FastlaneCore::ConfigItem.new(key: :prelaunch_simulator,
|
85
|
+
env_name: 'SCAN_PRELAUNCH_SIMULATOR',
|
86
|
+
description: "Enabling this option will launch the first simulator prior to calling any xcodebuild command",
|
87
|
+
default_value: ENV['FASTLANE_EXPLICIT_OPEN_SIMULATOR'],
|
88
|
+
optional: true,
|
89
|
+
type: Boolean),
|
81
90
|
FastlaneCore::ConfigItem.new(key: :reinstall_app,
|
82
91
|
env_name: 'SCAN_REINSTALL_APP',
|
83
92
|
description: "Enabling this option will automatically uninstall the application before running it",
|
84
93
|
default_value: false,
|
85
|
-
|
94
|
+
type: Boolean),
|
86
95
|
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
87
96
|
env_name: 'SCAN_APP_IDENTIFIER',
|
88
97
|
optional: true,
|
data/scan/lib/scan/runner.rb
CHANGED
@@ -23,12 +23,30 @@ module Scan
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_app
|
26
|
+
force_quit_simulator_processes if Scan.config[:force_quit_simulator]
|
27
|
+
|
28
|
+
if Scan.config[:reset_simulator]
|
29
|
+
Scan.devices.each do |device|
|
30
|
+
FastlaneCore::Simulator.reset(udid: device.udid)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
26
34
|
# We call this method, to be sure that all other simulators are killed
|
27
35
|
# And a correct one is freshly launched. Switching between multiple simulator
|
28
36
|
# in case the user specified multiple targets works with no issues
|
29
37
|
# This way it's okay to just call it for the first simulator we're using for
|
30
38
|
# the first test run
|
31
|
-
|
39
|
+
FastlaneCore::Simulator.launch(Scan.devices.first) if Scan.devices && Scan.config[:prelaunch_simulator]
|
40
|
+
|
41
|
+
if Scan.config[:reinstall_app]
|
42
|
+
app_identifier = Scan.config[:app_identifier]
|
43
|
+
app_identifier ||= UI.input("App Identifier: ")
|
44
|
+
|
45
|
+
Scan.devices.each do |device|
|
46
|
+
FastlaneCore::Simulator.uninstall_app(app_identifier, device.name, device.udid)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
32
50
|
command = @test_command_generator.generate
|
33
51
|
prefix_hash = [
|
34
52
|
{
|
@@ -40,19 +58,6 @@ module Scan
|
|
40
58
|
]
|
41
59
|
exit_status = 0
|
42
60
|
|
43
|
-
if Scan.config[:reset_simulator]
|
44
|
-
Scan.devices.each do |device|
|
45
|
-
FastlaneCore::Simulator.reset(udid: device.udid)
|
46
|
-
end
|
47
|
-
elsif Scan.config[:reinstall_app]
|
48
|
-
app_identifier = Scan.config[:app_identifier]
|
49
|
-
app_identifier ||= UI.input("App Identifier: ")
|
50
|
-
|
51
|
-
Scan.devices.each do |device|
|
52
|
-
FastlaneCore::Simulator.uninstall_app(app_identifier, device.name, device.udid)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
61
|
FastlaneCore::CommandExecutor.execute(command: command,
|
57
62
|
print_all: true,
|
58
63
|
print_command: true,
|
@@ -160,13 +165,9 @@ module Scan
|
|
160
165
|
end
|
161
166
|
end
|
162
167
|
|
163
|
-
def
|
164
|
-
|
165
|
-
|
166
|
-
UI.message("Killing all running simulators")
|
167
|
-
`killall Simulator &> /dev/null`
|
168
|
-
|
169
|
-
FastlaneCore::Simulator.launch(device)
|
168
|
+
def force_quit_simulator_processes
|
169
|
+
# Silently execute and kill, verbose flags will show this command occurring
|
170
|
+
Fastlane::Actions.sh("killall Simulator &> /dev/null || true", log: false)
|
170
171
|
end
|
171
172
|
end
|
172
173
|
end
|
@@ -70,7 +70,7 @@ open class Snapshot: NSObject {
|
|
70
70
|
}
|
71
71
|
|
72
72
|
open class func setupSnapshot(_ app: XCUIApplication, waitForAnimations: Bool = true) {
|
73
|
-
|
73
|
+
|
74
74
|
Snapshot.app = app
|
75
75
|
Snapshot.waitForAnimations = waitForAnimations
|
76
76
|
|
@@ -81,16 +81,16 @@ open class Snapshot: NSObject {
|
|
81
81
|
setLocale(app)
|
82
82
|
setLaunchArguments(app)
|
83
83
|
} catch let error {
|
84
|
-
|
84
|
+
NSLog(error.localizedDescription)
|
85
85
|
}
|
86
86
|
}
|
87
87
|
|
88
88
|
class func setLanguage(_ app: XCUIApplication) {
|
89
89
|
guard let cacheDirectory = self.cacheDirectory else {
|
90
|
-
|
90
|
+
NSLog("CacheDirectory is not set - probably running on a physical device?")
|
91
91
|
return
|
92
92
|
}
|
93
|
-
|
93
|
+
|
94
94
|
let path = cacheDirectory.appendingPathComponent("language.txt")
|
95
95
|
|
96
96
|
do {
|
@@ -98,29 +98,29 @@ open class Snapshot: NSObject {
|
|
98
98
|
deviceLanguage = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet)
|
99
99
|
app.launchArguments += ["-AppleLanguages", "(\(deviceLanguage))"]
|
100
100
|
} catch {
|
101
|
-
|
101
|
+
NSLog("Couldn't detect/set language...")
|
102
102
|
}
|
103
103
|
}
|
104
104
|
|
105
105
|
class func setLocale(_ app: XCUIApplication) {
|
106
106
|
guard let cacheDirectory = self.cacheDirectory else {
|
107
|
-
|
107
|
+
NSLog("CacheDirectory is not set - probably running on a physical device?")
|
108
108
|
return
|
109
109
|
}
|
110
|
-
|
110
|
+
|
111
111
|
let path = cacheDirectory.appendingPathComponent("locale.txt")
|
112
112
|
|
113
113
|
do {
|
114
114
|
let trimCharacterSet = CharacterSet.whitespacesAndNewlines
|
115
115
|
locale = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet)
|
116
116
|
} catch {
|
117
|
-
|
117
|
+
NSLog("Couldn't detect/set locale...")
|
118
118
|
}
|
119
|
-
|
119
|
+
|
120
120
|
if locale.isEmpty && !deviceLanguage.isEmpty {
|
121
121
|
locale = Locale(identifier: deviceLanguage).identifier
|
122
122
|
}
|
123
|
-
|
123
|
+
|
124
124
|
if !locale.isEmpty {
|
125
125
|
app.launchArguments += ["-AppleLocale", "\"\(locale)\""]
|
126
126
|
}
|
@@ -128,10 +128,10 @@ open class Snapshot: NSObject {
|
|
128
128
|
|
129
129
|
class func setLaunchArguments(_ app: XCUIApplication) {
|
130
130
|
guard let cacheDirectory = self.cacheDirectory else {
|
131
|
-
|
131
|
+
NSLog("CacheDirectory is not set - probably running on a physical device?")
|
132
132
|
return
|
133
133
|
}
|
134
|
-
|
134
|
+
|
135
135
|
let path = cacheDirectory.appendingPathComponent("snapshot-launch_arguments.txt")
|
136
136
|
app.launchArguments += ["-FASTLANE_SNAPSHOT", "YES", "-ui_testing"]
|
137
137
|
|
@@ -144,7 +144,7 @@ open class Snapshot: NSObject {
|
|
144
144
|
}
|
145
145
|
app.launchArguments += results
|
146
146
|
} catch {
|
147
|
-
|
147
|
+
NSLog("Couldn't detect/set launch_arguments...")
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
@@ -153,7 +153,7 @@ open class Snapshot: NSObject {
|
|
153
153
|
waitForLoadingIndicatorToDisappear(within: timeout)
|
154
154
|
}
|
155
155
|
|
156
|
-
|
156
|
+
NSLog("snapshot: \(name)") // more information about this, check out https://docs.fastlane.tools/actions/snapshot/#how-does-it-work
|
157
157
|
|
158
158
|
if Snapshot.waitForAnimations {
|
159
159
|
sleep(1) // Waiting for the animation to be finished (kind of)
|
@@ -161,18 +161,18 @@ open class Snapshot: NSObject {
|
|
161
161
|
|
162
162
|
#if os(OSX)
|
163
163
|
guard let app = self.app else {
|
164
|
-
|
164
|
+
NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
|
165
165
|
return
|
166
166
|
}
|
167
167
|
|
168
168
|
app.typeKey(XCUIKeyboardKeySecondaryFn, modifierFlags: [])
|
169
169
|
#else
|
170
|
-
|
170
|
+
|
171
171
|
guard let app = self.app else {
|
172
|
-
|
172
|
+
NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
|
173
173
|
return
|
174
174
|
}
|
175
|
-
|
175
|
+
|
176
176
|
let window = app.windows.firstMatch
|
177
177
|
let screenshot = window.screenshot()
|
178
178
|
guard let simulator = ProcessInfo().environment["SIMULATOR_DEVICE_NAME"], let screenshotsDir = screenshotsDirectory else { return }
|
@@ -180,8 +180,8 @@ open class Snapshot: NSObject {
|
|
180
180
|
do {
|
181
181
|
try screenshot.pngRepresentation.write(to: path)
|
182
182
|
} catch let error {
|
183
|
-
|
184
|
-
|
183
|
+
NSLog("Problem writing screenshot: \(name) to \(path)")
|
184
|
+
NSLog(error.localizedDescription)
|
185
185
|
}
|
186
186
|
#endif
|
187
187
|
}
|
@@ -192,7 +192,7 @@ open class Snapshot: NSObject {
|
|
192
192
|
#endif
|
193
193
|
|
194
194
|
guard let app = self.app else {
|
195
|
-
|
195
|
+
NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
|
196
196
|
return
|
197
197
|
}
|
198
198
|
|
@@ -295,4 +295,4 @@ private extension CGFloat {
|
|
295
295
|
|
296
296
|
// Please don't remove the lines below
|
297
297
|
// They are used to detect outdated configuration files
|
298
|
-
// SnapshotHelperVersion [1.
|
298
|
+
// SnapshotHelperVersion [1.16]
|
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.124.0.beta.
|
4
|
+
version: 2.124.0.beta.20190529200025
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Helmut Januschka
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-05-
|
30
|
+
date: 2019-05-29 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1693,24 +1693,24 @@ metadata:
|
|
1693
1693
|
post_install_message:
|
1694
1694
|
rdoc_options: []
|
1695
1695
|
require_paths:
|
1696
|
-
- deliver/lib
|
1697
|
-
- scan/lib
|
1698
|
-
- snapshot/lib
|
1699
1696
|
- supply/lib
|
1700
|
-
-
|
1697
|
+
- snapshot/lib
|
1701
1698
|
- pem/lib
|
1702
|
-
- precheck/lib
|
1703
|
-
- spaceship/lib
|
1704
1699
|
- produce/lib
|
1705
|
-
- cert/lib
|
1706
|
-
- pilot/lib
|
1707
|
-
- credentials_manager/lib
|
1708
1700
|
- fastlane/lib
|
1701
|
+
- match/lib
|
1702
|
+
- spaceship/lib
|
1703
|
+
- credentials_manager/lib
|
1704
|
+
- deliver/lib
|
1709
1705
|
- gym/lib
|
1710
|
-
-
|
1706
|
+
- pilot/lib
|
1711
1707
|
- screengrab/lib
|
1712
|
-
-
|
1708
|
+
- fastlane_core/lib
|
1709
|
+
- cert/lib
|
1713
1710
|
- frameit/lib
|
1711
|
+
- scan/lib
|
1712
|
+
- precheck/lib
|
1713
|
+
- sigh/lib
|
1714
1714
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1715
1715
|
requirements:
|
1716
1716
|
- - ">="
|