fastlane 2.124.0.beta.20190528200017 → 2.124.0.beta.20190529200025

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