@appium/coresim 1.0.0 → 1.1.0
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.
- package/CHANGELOG.md +24 -0
- package/lib/src/commands/process.d.ts +11 -0
- package/lib/src/commands/process.d.ts.map +1 -1
- package/lib/src/commands/process.js +12 -0
- package/lib/src/commands/process.js.map +1 -1
- package/lib/src/native-simctl.d.ts +7 -4
- package/lib/src/native-simctl.d.ts.map +1 -1
- package/lib/src/native-simctl.js +12 -6
- package/lib/src/native-simctl.js.map +1 -1
- package/lib/src/types.d.ts +2 -0
- package/lib/src/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/@appium+coresim.node +0 -0
- package/src/commands/process.ts +14 -0
- package/src/coresim.mm +17 -1
- package/src/native/sim_service_context.h +4 -0
- package/src/native/sim_service_context.mm +10 -0
- package/src/native/value_bridge.mm +11 -1
- package/src/native-simctl.ts +15 -6
- package/src/types.ts +1 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
## [1.1.0](https://github.com/appium/coresim/compare/v1.0.1...v1.1.0) (2026-09-16)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Expose getRuntimeRootPath publicly ([#10](https://github.com/appium/coresim/issues/10)) ([00725ee](https://github.com/appium/coresim/commit/00725eec8cbe46be020eda18a11d30125552b11a))
|
|
6
|
+
|
|
7
|
+
## [1.0.1](https://github.com/appium/coresim/compare/v1.0.0...v1.0.1) (2026-09-16)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* Fix repository url ([e579041](https://github.com/appium/coresim/commit/e579041fb922428e126f9031c9fc542b64c53c12))
|
|
12
|
+
|
|
13
|
+
## 1.0.0 (2026-09-16)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Add biometric enrollment/matching and shake gesture ([#6](https://github.com/appium/coresim/issues/6)) ([c465311](https://github.com/appium/coresim/commit/c465311a0eaf2dbe807140a554457f09d5cbf8bb))
|
|
18
|
+
* Add clearLocation and getAppContainer ([#7](https://github.com/appium/coresim/issues/7)) ([75a1c69](https://github.com/appium/coresim/commit/75a1c69f521a2a70e709618657671ff7972bd2b5))
|
|
19
|
+
* Add custom device set support ([#9](https://github.com/appium/coresim/issues/9)) ([39a3e9d](https://github.com/appium/coresim/commit/39a3e9d215711b886c39c1592b5476b9286d7d5e))
|
|
20
|
+
* Add getWebInspectorSocket and listProcesses ([#8](https://github.com/appium/coresim/issues/8)) ([6337a8f](https://github.com/appium/coresim/commit/6337a8f1ec082b79098278c35551bd3318984bca))
|
|
21
|
+
* Add native addon foundation and core device/app lifecycle ([#1](https://github.com/appium/coresim/issues/1)) ([85957c9](https://github.com/appium/coresim/commit/85957c9b7420a37048bf39a47ea12b1e6a03db67))
|
|
22
|
+
* Add pasteboard sync (getPasteboard/setPasteboard) ([#3](https://github.com/appium/coresim/issues/3)) ([55bcb5b](https://github.com/appium/coresim/commit/55bcb5bec80d958e9d42e19adae8a050554cd472))
|
|
23
|
+
* Add screenshot capture (getScreenshot) ([#4](https://github.com/appium/coresim/issues/4)) ([f347d04](https://github.com/appium/coresim/commit/f347d04e88269ff6e56dd7d922b11f3bba458440))
|
|
24
|
+
* Add TCC permission reads, bulk shutdown-all, and media library injection ([#2](https://github.com/appium/coresim/issues/2)) ([3556dbd](https://github.com/appium/coresim/commit/3556dbd946121d5685d5cd5ee8a106a20a1dd402))
|
|
@@ -3,8 +3,19 @@ import type { SimProcessInfo } from '../types.js';
|
|
|
3
3
|
declare module '../native-simctl.js' {
|
|
4
4
|
interface NativeSimctl {
|
|
5
5
|
listProcesses(udid: string): Promise<SimProcessInfo[]>;
|
|
6
|
+
getRuntimeRootPath(udid: string): Promise<string>;
|
|
6
7
|
}
|
|
7
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the given (booted) device's own runtime bundle root — e.g.
|
|
11
|
+
* `.../iOS.simruntime/Contents/Resources/RuntimeRoot` — the same directory {@link listProcesses}
|
|
12
|
+
* resolves `launchctl` against. Needed by callers of {@link spawnProcess} that want to run a
|
|
13
|
+
* binary the guest runtime ships its own copy of (distinct from the host's own copy at the same
|
|
14
|
+
* name — see CLAUDE.md), since `spawnProcess` takes a literal path with no `$PATH` search.
|
|
15
|
+
*
|
|
16
|
+
* @param udid — UDID of the device to inspect; must be booted
|
|
17
|
+
*/
|
|
18
|
+
export declare function getRuntimeRootPath(this: NativeSimctl, udid: string): Promise<string>;
|
|
8
19
|
/**
|
|
9
20
|
* Lists currently-running processes/launchd jobs on the given (booted) device, by spawning
|
|
10
21
|
* `launchctl list` inside it and parsing its `PID / Status / Label` output. A `-` PID column
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/commands/process.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAGhD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/commands/process.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAGhD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACnD;CACF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1F;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8C/F"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { once } from 'node:events';
|
|
2
2
|
import { runCatchingAsync } from '../utils/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the given (booted) device's own runtime bundle root — e.g.
|
|
5
|
+
* `.../iOS.simruntime/Contents/Resources/RuntimeRoot` — the same directory {@link listProcesses}
|
|
6
|
+
* resolves `launchctl` against. Needed by callers of {@link spawnProcess} that want to run a
|
|
7
|
+
* binary the guest runtime ships its own copy of (distinct from the host's own copy at the same
|
|
8
|
+
* name — see CLAUDE.md), since `spawnProcess` takes a literal path with no `$PATH` search.
|
|
9
|
+
*
|
|
10
|
+
* @param udid — UDID of the device to inspect; must be booted
|
|
11
|
+
*/
|
|
12
|
+
export async function getRuntimeRootPath(udid) {
|
|
13
|
+
return runCatchingAsync(async () => (await this._findDevice(udid)).runtimeRootPath());
|
|
14
|
+
}
|
|
3
15
|
/**
|
|
4
16
|
* Lists currently-running processes/launchd jobs on the given (booted) device, by spawning
|
|
5
17
|
* `launchctl list` inside it and parsing its `PID / Status / Label` output. A `-` PID column
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/commands/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AAIjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/commands/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,14 +48,17 @@ import './commands/webinspector.js';
|
|
|
48
48
|
*/
|
|
49
49
|
export declare class NativeSimctl {
|
|
50
50
|
private readonly developerDir?;
|
|
51
|
+
private readonly deviceSetPath?;
|
|
51
52
|
private cachedServiceContext;
|
|
52
53
|
/**
|
|
53
54
|
* @param developerDir — defaults to `xcode-select -p` (the active Xcode's Developer dir).
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
55
|
+
* @param deviceSetPath — defaults to the default device set
|
|
56
|
+
* (`~/Library/Developer/CoreSimulator/Devices`), same as `simctl --set <path>`. Constructing a
|
|
57
|
+
* NativeSimctl must never throw — the platform check and the native sharedServiceContext call
|
|
58
|
+
* both happen lazily in the `_serviceContext` getter below, so only a method that actually needs
|
|
59
|
+
* the simulator (getDevices(), createDevice(), ...) can raise.
|
|
57
60
|
*/
|
|
58
|
-
constructor(developerDir?: string | undefined);
|
|
61
|
+
constructor(developerDir?: string | undefined, deviceSetPath?: string | undefined);
|
|
59
62
|
/** @returns `CFBundleVersion` of the loaded `CoreSimulator.framework` (e.g. `"1171.6"`). */
|
|
60
63
|
static frameworkVersion(): Promise<string>;
|
|
61
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-simctl.d.ts","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"AAKA,OASO,mBAAmB,CAAC;AAC3B,OAAuE,yBAAyB,CAAC;AACjG,OAIO,mCAAmC,CAAC;AAC3C,OAA4E,2BAA2B,CAAC;AACxG,OAAgE,wBAAwB,CAAC;AACzF,OAYO,yBAAyB,CAAC;AACjC,OAA2C,qBAAqB,CAAC;AACjE,OAAoB,oBAAoB,CAAC;AACzC,OAA2C,0BAA0B,CAAC;AACtE,OAAgF,2BAA2B,CAAC;AAC5G,
|
|
1
|
+
{"version":3,"file":"native-simctl.d.ts","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"AAKA,OASO,mBAAmB,CAAC;AAC3B,OAAuE,yBAAyB,CAAC;AACjG,OAIO,mCAAmC,CAAC;AAC3C,OAA4E,2BAA2B,CAAC;AACxG,OAAgE,wBAAwB,CAAC;AACzF,OAYO,yBAAyB,CAAC;AACjC,OAA2C,qBAAqB,CAAC;AACjE,OAAoB,oBAAoB,CAAC;AACzC,OAA2C,0BAA0B,CAAC;AACtE,OAAgF,2BAA2B,CAAC;AAC5G,OAAgD,uBAAuB,CAAC;AACxE,OAAyC,0BAA0B,CAAC;AACpE,OAA2B,qBAAqB,CAAC;AACjD,OAOO,kBAAkB,CAAC;AAC1B,OAAoC,4BAA4B,CAAC;AAKjE,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,4BAA4B,CAAC;AAYpC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IAYrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAZjC,OAAO,CAAC,oBAAoB,CAAkD;IAE9E;;;;;;;OAOG;gBAEgB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,aAAa,CAAC,EAAE,MAAM,YAAA;IAGzC,4FAA4F;WAC/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAgDjD"}
|
package/lib/src/native-simctl.js
CHANGED
|
@@ -11,7 +11,7 @@ import { addMedia, addPhoto, addVideo } from './commands/media.js';
|
|
|
11
11
|
import { shake } from './commands/misc.js';
|
|
12
12
|
import { getPasteboard, setPasteboard } from './commands/pasteboard.js';
|
|
13
13
|
import { getPermission, grantPermission, resetPermission, revokePermission } from './commands/permissions.js';
|
|
14
|
-
import { listProcesses } from './commands/process.js';
|
|
14
|
+
import { getRuntimeRootPath, listProcesses } from './commands/process.js';
|
|
15
15
|
import { getDisplays, getScreenshot } from './commands/screenshot.js';
|
|
16
16
|
import { spawnProcess } from './commands/spawn.js';
|
|
17
17
|
import { getAppearance, getContentSize, getIncreaseContrast, setAppearance, setContentSize, setIncreaseContrast, } from './commands/ui.js';
|
|
@@ -58,15 +58,19 @@ const require = createRequire(import.meta.url);
|
|
|
58
58
|
*/
|
|
59
59
|
export class NativeSimctl {
|
|
60
60
|
developerDir;
|
|
61
|
+
deviceSetPath;
|
|
61
62
|
cachedServiceContext;
|
|
62
63
|
/**
|
|
63
64
|
* @param developerDir — defaults to `xcode-select -p` (the active Xcode's Developer dir).
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
65
|
+
* @param deviceSetPath — defaults to the default device set
|
|
66
|
+
* (`~/Library/Developer/CoreSimulator/Devices`), same as `simctl --set <path>`. Constructing a
|
|
67
|
+
* NativeSimctl must never throw — the platform check and the native sharedServiceContext call
|
|
68
|
+
* both happen lazily in the `_serviceContext` getter below, so only a method that actually needs
|
|
69
|
+
* the simulator (getDevices(), createDevice(), ...) can raise.
|
|
67
70
|
*/
|
|
68
|
-
constructor(developerDir) {
|
|
71
|
+
constructor(developerDir, deviceSetPath) {
|
|
69
72
|
this.developerDir = developerDir;
|
|
73
|
+
this.deviceSetPath = deviceSetPath;
|
|
70
74
|
}
|
|
71
75
|
/** @returns `CFBundleVersion` of the loaded `CoreSimulator.framework` (e.g. `"1171.6"`). */
|
|
72
76
|
static async frameworkVersion() {
|
|
@@ -96,7 +100,8 @@ export class NativeSimctl {
|
|
|
96
100
|
/** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
|
|
97
101
|
async _deviceSet() {
|
|
98
102
|
const context = await this._serviceContext();
|
|
99
|
-
|
|
103
|
+
const deviceSetPath = this.deviceSetPath;
|
|
104
|
+
return runCatchingAsync(() => deviceSetPath ? context.deviceSetWithPath(deviceSetPath) : context.defaultDeviceSet());
|
|
100
105
|
}
|
|
101
106
|
/** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
|
|
102
107
|
async _findDevice(udid) {
|
|
@@ -166,6 +171,7 @@ Object.assign(NativeSimctl.prototype, {
|
|
|
166
171
|
getPermission,
|
|
167
172
|
// process
|
|
168
173
|
listProcesses,
|
|
174
|
+
getRuntimeRootPath,
|
|
169
175
|
// darwin notification
|
|
170
176
|
getDarwinNotificationState,
|
|
171
177
|
setDarwinNotificationState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-simctl.js","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAErC,OAAO,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACjG,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACzF,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAC,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-simctl.js","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"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"}
|
package/lib/src/types.d.ts
CHANGED
|
@@ -203,6 +203,7 @@ export interface NativeDeviceHandle {
|
|
|
203
203
|
state(): number;
|
|
204
204
|
deviceTypeIdentifier(): string;
|
|
205
205
|
runtimeIdentifier(): string;
|
|
206
|
+
runtimeRootPath(): string;
|
|
206
207
|
boot(options?: Record<string, unknown>): Promise<void>;
|
|
207
208
|
getBootStatus(): Promise<SimBootInfo | null>;
|
|
208
209
|
shutdown(): Promise<void>;
|
|
@@ -256,6 +257,7 @@ export interface NativeDeviceSetHandle {
|
|
|
256
257
|
/** A `SimServiceContext`, wrapped by `coresim.mm`'s `NativeServiceContext`. */
|
|
257
258
|
export interface NativeServiceContextHandle {
|
|
258
259
|
defaultDeviceSet(): Promise<NativeDeviceSetHandle>;
|
|
260
|
+
deviceSetWithPath(path: string): Promise<NativeDeviceSetHandle>;
|
|
259
261
|
supportedDeviceTypes(): Promise<SimDeviceTypeInfo[]>;
|
|
260
262
|
supportedRuntimes(): Promise<SimRuntimeInfo[]>;
|
|
261
263
|
}
|
package/lib/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/coresim",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Native bindings to CoreSimulator.framework for Apple platform simulator control",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/appium/coresim/issues"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "https://github.com/appium/coresim.git"
|
|
15
|
+
"url": "git+https://github.com/appium/coresim.git"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"src",
|
|
Binary file
|
package/src/commands/process.ts
CHANGED
|
@@ -7,9 +7,23 @@ import {runCatchingAsync} from '../utils/index.js';
|
|
|
7
7
|
declare module '../native-simctl.js' {
|
|
8
8
|
interface NativeSimctl {
|
|
9
9
|
listProcesses(udid: string): Promise<SimProcessInfo[]>;
|
|
10
|
+
getRuntimeRootPath(udid: string): Promise<string>;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Resolves the given (booted) device's own runtime bundle root — e.g.
|
|
16
|
+
* `.../iOS.simruntime/Contents/Resources/RuntimeRoot` — the same directory {@link listProcesses}
|
|
17
|
+
* resolves `launchctl` against. Needed by callers of {@link spawnProcess} that want to run a
|
|
18
|
+
* binary the guest runtime ships its own copy of (distinct from the host's own copy at the same
|
|
19
|
+
* name — see CLAUDE.md), since `spawnProcess` takes a literal path with no `$PATH` search.
|
|
20
|
+
*
|
|
21
|
+
* @param udid — UDID of the device to inspect; must be booted
|
|
22
|
+
*/
|
|
23
|
+
export async function getRuntimeRootPath(this: NativeSimctl, udid: string): Promise<string> {
|
|
24
|
+
return runCatchingAsync(async () => (await this._findDevice(udid)).runtimeRootPath());
|
|
25
|
+
}
|
|
26
|
+
|
|
13
27
|
/**
|
|
14
28
|
* Lists currently-running processes/launchd jobs on the given (booted) device, by spawning
|
|
15
29
|
* `launchctl list` inside it and parsing its `PID / Status / Label` output. A `-` PID column
|
package/src/coresim.mm
CHANGED
|
@@ -185,7 +185,6 @@ class NativeDevice : public Napi::ObjectWrap<NativeDevice> {
|
|
|
185
185
|
return Napi::String::New(info.Env(), coresim::RuntimeIdentifier(runtime).UTF8String);
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
|
-
// @internal — not part of the public NativeSimctl API (see types.ts's NativeDeviceHandle).
|
|
189
188
|
Napi::Value RuntimeRootPath(const Napi::CallbackInfo& info) {
|
|
190
189
|
return CatchToJs(info.Env(), [&]() -> Napi::Value {
|
|
191
190
|
id runtime = DeviceRuntime(device_);
|
|
@@ -952,6 +951,22 @@ class NativeServiceContext : public Napi::ObjectWrap<NativeServiceContext> {
|
|
|
952
951
|
});
|
|
953
952
|
}
|
|
954
953
|
|
|
954
|
+
Napi::Value DeviceSetWithPathMethod(const Napi::CallbackInfo& info) {
|
|
955
|
+
id serviceContext = serviceContext_;
|
|
956
|
+
NSString* path = @(info[0].As<Napi::String>().Utf8Value().c_str());
|
|
957
|
+
return RunAsync<id>(
|
|
958
|
+
info.Env(),
|
|
959
|
+
[serviceContext, path]() -> id {
|
|
960
|
+
NSError* error = nil;
|
|
961
|
+
id deviceSet = DeviceSetWithPath(serviceContext, path, &error);
|
|
962
|
+
ThrowIfFailed(deviceSet != nil, error);
|
|
963
|
+
return deviceSet;
|
|
964
|
+
},
|
|
965
|
+
[serviceContext](Napi::Env env, id deviceSet) -> Napi::Value {
|
|
966
|
+
return NativeDeviceSet::NewInstance(env, deviceSet, serviceContext);
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
|
|
955
970
|
Napi::Value SupportedDeviceTypesMethod(const Napi::CallbackInfo& info) {
|
|
956
971
|
id serviceContext = serviceContext_;
|
|
957
972
|
return RunAsync<std::vector<DeviceTypeEntry>>(
|
|
@@ -1015,6 +1030,7 @@ void NativeServiceContext::Init(Napi::Env env) {
|
|
|
1015
1030
|
DefineClass(env, "NativeServiceContext",
|
|
1016
1031
|
{
|
|
1017
1032
|
InstanceMethod<&NativeServiceContext::DefaultDeviceSetMethod>("defaultDeviceSet"),
|
|
1033
|
+
InstanceMethod<&NativeServiceContext::DeviceSetWithPathMethod>("deviceSetWithPath"),
|
|
1018
1034
|
InstanceMethod<&NativeServiceContext::SupportedDeviceTypesMethod>("supportedDeviceTypes"),
|
|
1019
1035
|
InstanceMethod<&NativeServiceContext::SupportedRuntimesMethod>("supportedRuntimes"),
|
|
1020
1036
|
});
|
|
@@ -13,6 +13,10 @@ id SharedServiceContext(NSString* developerDir, NSError** error);
|
|
|
13
13
|
// -[SimServiceContext defaultDeviceSetWithError:]
|
|
14
14
|
id DefaultDeviceSet(id serviceContext, NSError** error);
|
|
15
15
|
|
|
16
|
+
// -[SimServiceContext deviceSetWithPath:error:] — the same selector `simctl --set <path>` uses to
|
|
17
|
+
// address a non-default device set.
|
|
18
|
+
id DeviceSetWithPath(id serviceContext, NSString* path, NSError** error);
|
|
19
|
+
|
|
16
20
|
// -[SimServiceContext supportedDeviceTypes] -> NSArray<SimDeviceType*>
|
|
17
21
|
NSArray* SupportedDeviceTypes(id serviceContext);
|
|
18
22
|
|
|
@@ -28,6 +28,16 @@ id DefaultDeviceSet(id serviceContext, NSError** error) {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
id DeviceSetWithPath(id serviceContext, NSString* path, NSError** error) {
|
|
32
|
+
static const std::string kSelectorName = "deviceSetWithPath:error:";
|
|
33
|
+
RequireSelector(serviceContext, kSelectorName);
|
|
34
|
+
SEL selector = SelectorNamed(kSelectorName);
|
|
35
|
+
return SafeInvoke([&] {
|
|
36
|
+
using Fn = id (*)(id, SEL, NSString*, NSError**);
|
|
37
|
+
return ((Fn)objc_msgSend)(serviceContext, selector, path, error);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
31
41
|
NSArray* SupportedDeviceTypes(id serviceContext) {
|
|
32
42
|
static const std::string kSelectorName = "supportedDeviceTypes";
|
|
33
43
|
RequireSelector(serviceContext, kSelectorName);
|
|
@@ -50,8 +50,18 @@ NSObject* JsValueToNSObject(Napi::Env env, Napi::Value value) {
|
|
|
50
50
|
NSMutableDictionary* result = [NSMutableDictionary dictionaryWithCapacity:keys.Length()];
|
|
51
51
|
for (uint32_t i = 0; i < keys.Length(); i++) {
|
|
52
52
|
Napi::Value key = keys.Get(i);
|
|
53
|
+
Napi::Value propertyValue = object.Get(key);
|
|
54
|
+
// Matches JSON.stringify's own undefined-property handling: an object option consumers built
|
|
55
|
+
// conditionally (`{...(x && {x})}`-style) can easily end up with an explicit `undefined`
|
|
56
|
+
// value instead of the key being absent — converting that to NSNull rather than dropping it
|
|
57
|
+
// has crashed the whole process before (some CoreSimulator option dictionaries, e.g.
|
|
58
|
+
// spawnWithPath:'s "environment", assume a present key is a real NSDictionary and don't
|
|
59
|
+
// tolerate NSNull; see CLAUDE.md's note on exceptions raised outside SafeInvoke's guard).
|
|
60
|
+
if (propertyValue.IsUndefined()) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
53
63
|
NSString* nsKey = ToNSString(key.As<Napi::String>().Utf8Value());
|
|
54
|
-
result[nsKey] = JsValueToNSObject(env,
|
|
64
|
+
result[nsKey] = JsValueToNSObject(env, propertyValue);
|
|
55
65
|
}
|
|
56
66
|
return result;
|
|
57
67
|
}
|
package/src/native-simctl.ts
CHANGED
|
@@ -38,7 +38,7 @@ import {addMedia, addPhoto, addVideo} from './commands/media.js';
|
|
|
38
38
|
import {shake} from './commands/misc.js';
|
|
39
39
|
import {getPasteboard, setPasteboard} from './commands/pasteboard.js';
|
|
40
40
|
import {getPermission, grantPermission, resetPermission, revokePermission} from './commands/permissions.js';
|
|
41
|
-
import {listProcesses} from './commands/process.js';
|
|
41
|
+
import {getRuntimeRootPath, listProcesses} from './commands/process.js';
|
|
42
42
|
import {getDisplays, getScreenshot} from './commands/screenshot.js';
|
|
43
43
|
import {spawnProcess} from './commands/spawn.js';
|
|
44
44
|
import {
|
|
@@ -103,11 +103,16 @@ export class NativeSimctl {
|
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
105
|
* @param developerDir — defaults to `xcode-select -p` (the active Xcode's Developer dir).
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
106
|
+
* @param deviceSetPath — defaults to the default device set
|
|
107
|
+
* (`~/Library/Developer/CoreSimulator/Devices`), same as `simctl --set <path>`. Constructing a
|
|
108
|
+
* NativeSimctl must never throw — the platform check and the native sharedServiceContext call
|
|
109
|
+
* both happen lazily in the `_serviceContext` getter below, so only a method that actually needs
|
|
110
|
+
* the simulator (getDevices(), createDevice(), ...) can raise.
|
|
109
111
|
*/
|
|
110
|
-
constructor(
|
|
112
|
+
constructor(
|
|
113
|
+
private readonly developerDir?: string,
|
|
114
|
+
private readonly deviceSetPath?: string,
|
|
115
|
+
) {}
|
|
111
116
|
|
|
112
117
|
/** @returns `CFBundleVersion` of the loaded `CoreSimulator.framework` (e.g. `"1171.6"`). */
|
|
113
118
|
static async frameworkVersion(): Promise<string> {
|
|
@@ -141,7 +146,10 @@ export class NativeSimctl {
|
|
|
141
146
|
/** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
|
|
142
147
|
async _deviceSet(): Promise<NativeDeviceSetHandle> {
|
|
143
148
|
const context = await this._serviceContext();
|
|
144
|
-
|
|
149
|
+
const deviceSetPath = this.deviceSetPath;
|
|
150
|
+
return runCatchingAsync(() =>
|
|
151
|
+
deviceSetPath ? context.deviceSetWithPath(deviceSetPath) : context.defaultDeviceSet(),
|
|
152
|
+
);
|
|
145
153
|
}
|
|
146
154
|
|
|
147
155
|
/** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
|
|
@@ -222,6 +230,7 @@ Object.assign(NativeSimctl.prototype, {
|
|
|
222
230
|
|
|
223
231
|
// process
|
|
224
232
|
listProcesses,
|
|
233
|
+
getRuntimeRootPath,
|
|
225
234
|
|
|
226
235
|
// darwin notification
|
|
227
236
|
getDarwinNotificationState,
|
package/src/types.ts
CHANGED
|
@@ -238,7 +238,6 @@ export interface NativeDeviceHandle {
|
|
|
238
238
|
state(): number;
|
|
239
239
|
deviceTypeIdentifier(): string;
|
|
240
240
|
runtimeIdentifier(): string;
|
|
241
|
-
/** @internal Not part of the public API — see coresim.mm's RuntimeRootPath. */
|
|
242
241
|
runtimeRootPath(): string;
|
|
243
242
|
boot(options?: Record<string, unknown>): Promise<void>;
|
|
244
243
|
getBootStatus(): Promise<SimBootInfo | null>;
|
|
@@ -291,6 +290,7 @@ export interface NativeDeviceSetHandle {
|
|
|
291
290
|
/** A `SimServiceContext`, wrapped by `coresim.mm`'s `NativeServiceContext`. */
|
|
292
291
|
export interface NativeServiceContextHandle {
|
|
293
292
|
defaultDeviceSet(): Promise<NativeDeviceSetHandle>;
|
|
293
|
+
deviceSetWithPath(path: string): Promise<NativeDeviceSetHandle>;
|
|
294
294
|
supportedDeviceTypes(): Promise<SimDeviceTypeInfo[]>;
|
|
295
295
|
supportedRuntimes(): Promise<SimRuntimeInfo[]>;
|
|
296
296
|
}
|