web-dev-qa-db-fra.com

Comment supprimer l'application de iOS 8 Simulator de la ligne de commande?

J'ai une automatisation en cours d'exécution dans le simulateur iOS que je dois supprimer avant une autre exécution. Comment supprimer l'application du simulateur iOS de la ligne de commande?

Pour chaque répertoire de périphérique de simulateur (situé à ~/Library/Developer/CoreSimulator/Devices/*), J'ai essayé de supprimer ./data/Containers/Bundle/Application/ et ./data/Containers/Data/Application/.

Même lorsque j'ai essayé de supprimer l'application en appuyant longuement sur l'application dans le simulateur (l'application devient instable) et en cliquant sur le bouton X, les valeurs par défaut de l'utilisateur n'étaient pas effacées. Je veux que l'état de l'application soit 100% propre.

J'ai trouvé une bonne solution pour résoudre ce problème.

21
Frank

Une approche que nous avons trouvée pour supprimer les valeurs par défaut des utilisateurs consiste à supprimer tous les fichiers dans le ./data/Library/Preferences/* en plus de supprimer les répertoires d'application et de données.

Cependant, dans Xcode 6, la commande xcrun a une nouvelle sous-commande appelée simctl qui me permet de gérer iOS Simulator, y compris la réinitialisation du simulateur et l'installation de l'application.

La solution que j'ai trouvée est d'utiliser la commande

xcrun simctl erase [device ID]

Exemple

Si xcrun simctl list () renvoie

9DDA0CFE-7CEC-40B6-A343-1EC01F282B22 (active, disconnected)
    Watch: Apple Watch Series 2 - 42mm (88474523-163E-4021-B591-2AECBFA26997) (Shutdown)
    Phone: iPhone 7 Plus (5785E680-15CD-42D3-82AB-597286A270C5) (Shutdown)

puis exécutez ces 2 commandes

xcrun simctl erase 88474523-163E-4021-B591-2AECBFA26997
xcrun simctl erase 5785E680-15CD-42D3-82AB-597286A270C5

() L'ID de l'appareil peut être obtenu en exécutant

xcrun simctl list

Cela réinitialisera le simulateur (équivalent à iOS Simulator > Reset Contents and Settings... élément du menu).

Avec Xcode 6.0.1 (Build 6A317), il y a un bogue ou un changement de comportement où lorsque vous désinstallez une application, les valeurs par défaut de l'utilisateur ne sont pas supprimées.

Usage: simctl [--noxpc] [--set <set path>] <subcommand> ... | help [subcommand]
Command line utility to control the iOS Simulator

For subcommands that require a <device> argument, you may specify a device UDID
or the special "booted" string which will cause simctl to pick a booted device.
If multiple devices are booted when the "booted" device is selected, simctl
will choose one of them.

Subcommands:
    create        Create a new device.
    delete        Delete a device.
    erase         Erase a device's contents and settings.
    boot          Boot a device.
    shutdown      Shutdown a device.
    rename        Rename a device.
    getenv        Print an environment variable from a running device.
    openurl       Open a URL in a device.
    addphoto      Add a photo to the photo library of a device.
    install       Install an app on a device.
    uninstall     Uninstall an app from a device.
    launch        Launch an application by identifier on a device.
    spawn         Spawn a process on a device.
    list          List available devices, device types, or runtimes.
    notify_post   Post a darwin notification on a device.
    icloud_sync   Trigger iCloud sync on a device.
    help          Prints the usage for a given subcommand.
16
Frank

Avec Xcode 6.1, pour désinstaller une application, utilisez la commande suivante:

xcrun simctl uninstall booted com.example.Apple-samplecode.UICatalog

com.example.Apple-samplecode.UICatalog est l'identifiant du bundle de l'application que vous souhaitez désinstaller.

30
Archana

Réinitialiser tout le contenu et les paramètres en une seule commande

  1. Quittez iPhone Simulator
  2. Dans Terminal, exécutez:

    xcrun simctl erase all
    

Cela réinitialisera le contenu et les paramètres de tous les simulateurs de la version active de Xcode (celle référencée par xcode-select -p).

8
SwiftArchitect
xcrun simctl uninstall simulatorIdentifier appBundleId
3
Loveleen Saini