@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 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;KACxD;CACF;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8C/F"}
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":"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"}
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
- * Constructing a NativeSimctl must never throw — the platform check and the native
55
- * sharedServiceContext call both happen lazily in the `_serviceContext` getter below, so only a
56
- * method that actually needs the simulator (getDevices(), createDevice(), ...) can raise.
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,OAA4B,uBAAuB,CAAC;AACpD,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;IASX,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAR1C,OAAO,CAAC,oBAAoB,CAAkD;IAE9E;;;;;OAKG;gBAC0B,YAAY,CAAC,EAAE,MAAM,YAAA;IAElD,4FAA4F;WAC/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CA6CjD"}
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"}
@@ -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
- * Constructing a NativeSimctl must never throw — the platform check and the native
65
- * sharedServiceContext call both happen lazily in the `_serviceContext` getter below, so only a
66
- * method that actually needs the simulator (getDevices(), createDevice(), ...) can raise.
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
- return runCatchingAsync(() => context.defaultDeviceSet());
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":"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"}
1
+ {"version":3,"file":"native-simctl.js","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"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"}
@@ -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
  }
@@ -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.0.0",
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",
@@ -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, object.Get(key));
64
+ result[nsKey] = JsValueToNSObject(env, propertyValue);
55
65
  }
56
66
  return result;
57
67
  }
@@ -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
- * Constructing a NativeSimctl must never throw — the platform check and the native
107
- * sharedServiceContext call both happen lazily in the `_serviceContext` getter below, so only a
108
- * method that actually needs the simulator (getDevices(), createDevice(), ...) can raise.
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(private readonly developerDir?: string) {}
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
- return runCatchingAsync(() => context.defaultDeviceSet());
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
  }