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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 507168c73d67229c834abe5dbba55e21ed348318
4
- data.tar.gz: 732115915fa5d5003bdef05aa1dfd7c279eb6d2f
3
+ metadata.gz: 51cc5113a4d8c05768be5d9d6529cc861c976300
4
+ data.tar.gz: 4dd1ca2a45d918838d0af6b0a12ea693770c2cf5
5
5
  SHA512:
6
- metadata.gz: '076847467b5855a6e559c4d53af709d51c361720d1adff5e8f2b0be978e86adcc85dd62c94d70ad235c79ba785b40f5fa027dd7f020f59e5b3c21383ee3469ec'
7
- data.tar.gz: 71a5670d7ffb26a6132e259498fbb7d7703ae7de6ee6d974c7264e4c9007244ff73de378b8fa3e738a1ed7c8aca7eb0ef167685b529c47637ad7a6017144b403
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
- command << "-a #{params[:api_token]}" if params[:api_token]
91
- command << "-gsp #{params[:gsp_path].shellescape}" if params[:gsp_path]
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.20190528200017'.freeze
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
@@ -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
- # reset simulator
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
- # reinstall app
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
- is_string: false),
94
+ type: Boolean),
86
95
  FastlaneCore::ConfigItem.new(key: :app_identifier,
87
96
  env_name: 'SCAN_APP_IDENTIFIER',
88
97
  optional: true,
@@ -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
- open_simulator_for_device(Scan.devices.first) if Scan.devices
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 open_simulator_for_device(device)
164
- return unless FastlaneCore::Env.truthy?('FASTLANE_EXPLICIT_OPEN_SIMULATOR')
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
- print(error)
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
- print("CacheDirectory is not set - probably running on a physical device?")
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
- print("Couldn't detect/set language...")
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
- print("CacheDirectory is not set - probably running on a physical device?")
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
- print("Couldn't detect/set locale...")
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
- print("CacheDirectory is not set - probably running on a physical device?")
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
- print("Couldn't detect/set launch_arguments...")
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
- print("snapshot: \(name)") // more information about this, check out https://docs.fastlane.tools/actions/snapshot/#how-does-it-work
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
- print("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
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
- print("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
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
- print("Problem writing screenshot: \(name) to \(path)")
184
- print(error)
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
- print("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().")
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.15]
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.20190528200017
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-28 00:00:00.000000000 Z
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
- - match/lib
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
- - fastlane_core/lib
1706
+ - pilot/lib
1711
1707
  - screengrab/lib
1712
- - sigh/lib
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
  - - ">="