writeSimDefaults function
Writes an NSUserDefaults value for a given bundle ID on the iOS simulator.
Uses xcrun simctl spawn <device> defaults write <bundleId> <key> -<type> <value>.
Never throws; all error conditions are represented as sealed result cases.
Implementation
Future<SimDefaultsResult> writeSimDefaults(SimDefaultsWriteInput input) async {
final resolved = await resolveSimulatorDevice(deviceOverride: input.deviceOverride);
if (resolved.error != null) {
return SimDefaultsFailed(resolved.error!);
}
final device = resolved.udid!;
final bundleId = input.bundleId;
final args = <String>[
'spawn',
device,
'defaults',
'write',
bundleId,
input.key,
'-${input.type}',
input.value,
];
final error = await runSimctl(args);
if (error != null) {
return SimDefaultsFailed(error);
}
return SimDefaultsWritten(key: input.key, value: input.value);
}