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 device = await resolveSimulatorDevice();
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);
}