settings clear-app-state fails with ENOENT … scandir '(null)' for iOS system apps such as Settings

Geschlossen Anfängerfreundlich
#3,305 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@thymikee arbeitet bereits daran.

Seit 08.10.2026.

  • #3332 von @thymikee — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
80/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
typescript
Bereich
mobile

Rechercherichtung

Beginne mit clearIosSimulatorAppState in packages/platform-apple/src/core/app-settings.ts und untersuche, wie die Ausgabe von simctl get_app_container verarbeitet wird, bevor readHostDirectory aufgerufen wird. Prüfe, ob es Tests zum Löschen des App-Zustands im iOS-Simulator gibt; im Issue wird keine Testdatei genannt. Fertig ist die Arbeit, wenn (null) mit einer app-spezifischen Meldung zu einer nicht unterstützten Operation abgelehnt wird, statt einen ENOENT-Fehler zu verursachen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

What happens

On an iOS simulator, clearing the state of a system app fails with an internal error instead of a clear refusal:

agent-device settings clear-app-state clear --app com.apple.Preferences --platform ios --udid <udid>
ENOENT: no such file or directory, scandir '(null)'

Reproduced with agent-device 0.21.22 on an iOS 26.5 simulator (Xcode 27.0). 0.21.23 has the same code.

Cause

clearIosSimulatorAppState in packages/platform-apple/src/core/app-settings.ts rejects only an empty container path:

const containerPath = result.stdout.trim();
if (!containerPath) { throw new AppError('COMMAND_FAILED', …); }
const entries = await readHostDirectory(containerPath);

For an app without a data container, simctl exits 0 and prints the literal text (null):

$ xcrun simctl get_app_container <udid> com.apple.Preferences data
(null)
$ echo $?
0

The check passes, and readHostDirectory('(null)') throws ENOENT.

Suggested fix

Treat (null) like an empty path, and refuse with a message that names the app, for example UNSUPPORTED_OPERATION: com.apple.Preferences has no data container to clear (system apps have none).

Vorherrschende Sprache
TypeScript
Sterne
5.3k
Forks
377
Ø Merge
13 Std. 58 Min.
Gemergte PRs (30 T.)
654

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus callstack/agent-device

Alle Issues in callstack/agent-device

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.