simctl 1.6.1 → 1.6.2

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: 852a8c3916e8ecb03f54d6c79ea9b3bbd7aaab2f
4
- data.tar.gz: 4de85baf3b388ca02860fd05065b49be819cfdc7
3
+ metadata.gz: 9e021076adeb770892257609a7765b4f229dffca
4
+ data.tar.gz: 0771cf5154fa415e0f4d052ba40fc1a523ced3f9
5
5
  SHA512:
6
- metadata.gz: 809ce6cf61c49de8e673e18482ba1cb05ef0c9137da126c09905defa694539b67a4f1c1f4949f9ca4a704f23a7db36db7bba266410f18b8e737f62521cbf50e6
7
- data.tar.gz: e52114bf31605dcc5dcbd334a4e843ccbea9f1a50992ddc087f52a09e783428d4a5456ae25c3bda69cc0540cc5823eb7e1925c4c1efe45638d416f1f4b57a8a1
6
+ metadata.gz: 8da5ae54554eb7f8dd540f451f02d9e1c3f602545370be3af600f5153a1652679a792997aab0c4d9b6e3cb2a1f61a5904f5af6a4144e4a06365e1ec627bad608
7
+ data.tar.gz: e1a48ff4ef1a9aea9b9878d5104e4d2f7642e5ba7a094e0f5c09a93a732ccf02f4521ae2b5cc5f72ae84cda36400e0cf15b03d9a8e9ca5775c13f6917edeb7e6
@@ -1,36 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simctl (1.6.1)
4
+ simctl (1.6.2)
5
5
  CFPropertyList
6
6
  naturally
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- CFPropertyList (2.3.4)
12
- coveralls (0.8.10)
13
- json (~> 1.8)
14
- rest-client (>= 1.6.8, < 2)
15
- simplecov (~> 0.11.0)
11
+ CFPropertyList (2.3.5)
12
+ coveralls (0.8.17)
13
+ json (>= 1.8, < 3)
14
+ simplecov (~> 0.12.0)
16
15
  term-ansicolor (~> 1.3)
17
16
  thor (~> 0.19.1)
18
- tins (~> 1.6.0)
17
+ tins (~> 1.6)
19
18
  diff-lcs (1.2.5)
20
19
  docile (1.1.5)
21
- domain_name (0.5.25)
22
- unf (>= 0.0.5, < 1.0.0)
23
- http-cookie (1.0.2)
24
- domain_name (~> 0.5)
25
- json (1.8.3)
26
- mime-types (2.99)
20
+ json (2.0.2)
27
21
  naturally (2.1.0)
28
- netrc (0.11.0)
29
- rake (10.4.2)
30
- rest-client (1.8.0)
31
- http-cookie (>= 1.0.2, < 2.0)
32
- mime-types (>= 1.16, < 3.0)
33
- netrc (~> 0.7)
22
+ rake (12.0.0)
34
23
  rspec (3.5.0)
35
24
  rspec-core (~> 3.5.0)
36
25
  rspec-expectations (~> 3.5.0)
@@ -44,18 +33,15 @@ GEM
44
33
  diff-lcs (>= 1.2.0, < 2.0)
45
34
  rspec-support (~> 3.5.0)
46
35
  rspec-support (3.5.0)
47
- simplecov (0.11.1)
36
+ simplecov (0.12.0)
48
37
  docile (~> 1.1.0)
49
- json (~> 1.8)
38
+ json (>= 1.8, < 3)
50
39
  simplecov-html (~> 0.10.0)
51
40
  simplecov-html (0.10.0)
52
- term-ansicolor (1.3.2)
41
+ term-ansicolor (1.4.0)
53
42
  tins (~> 1.0)
54
- thor (0.19.1)
55
- tins (1.6.0)
56
- unf (0.1.4)
57
- unf_ext
58
- unf_ext (0.0.7.1)
43
+ thor (0.19.4)
44
+ tins (1.13.0)
59
45
 
60
46
  PLATFORMS
61
47
  ruby
@@ -67,4 +53,4 @@ DEPENDENCIES
67
53
  simctl!
68
54
 
69
55
  BUNDLED WITH
70
- 1.13.6
56
+ 1.15.1
@@ -6,6 +6,7 @@ require 'simctl/command/install'
6
6
  require 'simctl/command/io'
7
7
  require 'simctl/command/kill'
8
8
  require 'simctl/command/launch'
9
+ require 'simctl/command/terminate'
9
10
  require 'simctl/command/list'
10
11
  require 'simctl/command/openurl'
11
12
  require 'simctl/command/rename'
@@ -29,6 +30,7 @@ module SimCtl
29
30
  include SimCtl::Command::Install
30
31
  include SimCtl::Command::Kill
31
32
  include SimCtl::Command::Launch
33
+ include SimCtl::Command::Terminate
32
34
  include SimCtl::Command::List
33
35
  include SimCtl::Command::OpenUrl
34
36
  include SimCtl::Command::Rename
@@ -0,0 +1,21 @@
1
+ require 'shellwords'
2
+
3
+ module SimCtl
4
+ class Command
5
+ module Terminate
6
+ # Terminates an app on the given device
7
+ #
8
+ # @param device [SimCtl::Device] the device with the app to terminate
9
+ # @param identifier [String] the app identifier
10
+ # @param args [Array] optional terminate arguments
11
+ # @return [void]
12
+ def terminate_app(device, identifier, args=[])
13
+ unless Xcode::Version.gte? '8.2'
14
+ raise UnsupportedCommandError.new('Needs at least Xcode 8.2')
15
+ end
16
+ terminate_args = args.map {|arg| Shellwords.shellescape arg}
17
+ Executor.execute(command_for('terminate', terminate_args, device.udid, identifier))
18
+ end
19
+ end
20
+ end
21
+ end
@@ -92,6 +92,15 @@ module SimCtl
92
92
  SimCtl.launch_app(self, identifier, args, opts)
93
93
  end
94
94
 
95
+ # Terminates an app on the given device
96
+ #
97
+ # @param identifier [String] the app identifier
98
+ # @param args [Array] optional terminate arguments
99
+ # @return [void]
100
+ def terminate_app(identifier, args=[])
101
+ SimCtl.terminate_app(self, identifier, args)
102
+ end
103
+
95
104
  # Opens the url on the device
96
105
  #
97
106
  # @param url [String] The url to be opened on the device
@@ -104,15 +113,14 @@ module SimCtl
104
113
  @path ||= DevicePath.new(self)
105
114
  end
106
115
 
107
- # Returns true/false if the device is ready
116
+ # Returns true/false if the device is ready
108
117
  # Uses [SimCtl::DeviceLaunchctl] to look for certain services being running.
109
118
  #
110
119
  # Unfortunately the 'booted' state does not mean the Simulator is ready for
111
120
  # installing or launching applications.
112
- #
121
+ #
113
122
  # @return [Bool]
114
123
  def ready?
115
- # TODO: Should look for different services depending on device type (iphone/ipad, tv, watch)
116
124
  running_services = launchctl.list.reject {|service| service.pid.to_i == 0 }.map {|service| service.name}
117
125
  (required_services_for_ready - running_services).empty?
118
126
  end
@@ -240,12 +248,18 @@ module SimCtl
240
248
  ]
241
249
  end
242
250
  when :ios
243
- if Xcode::Version.gte? '8.0'
251
+ if Xcode::Version.gte? '9.0'
252
+ [
253
+ 'com.apple.backboardd',
254
+ 'com.apple.mobile.installd',
255
+ 'com.apple.CoreSimulator.bridge',
256
+ 'com.apple.SpringBoard',
257
+ ]
258
+ elsif Xcode::Version.gte? '8.0'
244
259
  [
245
260
  'com.apple.SimulatorBridge',
246
261
  'com.apple.SpringBoard',
247
262
  'com.apple.backboardd',
248
- 'com.apple.medialibraryd',
249
263
  'com.apple.mobile.installd',
250
264
  ]
251
265
  else
@@ -17,7 +17,11 @@ module SimCtl
17
17
  end
18
18
 
19
19
  def launchctl
20
- @launchctl ||= File.join(runtime_root, 'bin/launchctl')
20
+ @launchctl ||= if Xcode::Version.gte? '9.0'
21
+ "#{Xcode::Path.home}//Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/bin/launchctl"
22
+ else
23
+ File.join(runtime_root, 'bin/launchctl')
24
+ end
21
25
  end
22
26
 
23
27
  def preferences_plist
@@ -1,3 +1,3 @@
1
1
  module SimCtl
2
- VERSION = '1.6.1'
2
+ VERSION = '1.6.2'
3
3
  end
@@ -192,6 +192,18 @@ RSpec.describe SimCtl, order: :defined do
192
192
  end
193
193
  end
194
194
 
195
+ describe 'terminating an app' do
196
+ if SimCtl::Xcode::Version.gte? '8.2'
197
+ it 'terminates SampleApp' do
198
+ @device.terminate_app('com.github.plu.simctl.SampleApp')
199
+ end
200
+ else
201
+ it 'raises exception' do
202
+ expect { @device.terminate_app('com.github.plu.simctl.SampleApp') }.to raise_error SimCtl::UnsupportedCommandError
203
+ end
204
+ end
205
+ end
206
+
195
207
  describe 'uninstall an app' do
196
208
  it 'uninstalls SampleApp' do
197
209
  @device.uninstall('com.github.plu.simctl.SampleApp')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simctl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Plunien
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-29 00:00:00.000000000 Z
11
+ date: 2017-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls
@@ -112,6 +112,7 @@ files:
112
112
  - lib/simctl/command/reset.rb
113
113
  - lib/simctl/command/shutdown.rb
114
114
  - lib/simctl/command/spawn.rb
115
+ - lib/simctl/command/terminate.rb
115
116
  - lib/simctl/command/uninstall.rb
116
117
  - lib/simctl/command/warmup.rb
117
118
  - lib/simctl/device.rb
@@ -160,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
161
  version: '0'
161
162
  requirements: []
162
163
  rubyforge_project:
163
- rubygems_version: 2.5.2
164
+ rubygems_version: 2.6.11
164
165
  signing_key:
165
166
  specification_version: 4
166
167
  summary: Ruby interface to xcrun simctl