Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I remove app from iOS 8 Simulator from command line?

I have an automation running in the iOS Simulator that I have to remove before another run. How do I remove the app from the iOS Simulator from the command line?

For each simulator device directory (located at ~/Library/Developer/CoreSimulator/Devices/*), I tried to delete ./data/Containers/Bundle/Application/ and ./data/Containers/Data/Application/.

Even when I tried to delete the app by long pressing the app in the Simulator (the app becomes jiggly) and click on the X button, the user defaults were not being cleared. I want the app state to be 100% clean.

I found a good solution to solve this problem.

like image 275
Frank Avatar asked Oct 16 '14 01:10

Frank


People also ask

How do I delete an app from iOS simulator?

For iOS 11+ simulator you should long press the app icon :) Before iOS 11: hold alt, then press the touch pad. Save this answer.

How do I delete old iOS simulator?

It's very simple. Open this folder in Finder, either by pressing CMD + SHIFT + G and copy-pasting this path /Library/Developer/CoreSimulator/Profiles/Runtimes/ or manually navigating to the above path. Once opened, you will see all the runtimes downloaded. Just delete them and we are good to go.

How do I delete all iOS simulator?

Go to Window > Devices and simulators, then select the Simulators tab. You can right-click on any simulator and select 'delete' to get rid of it.


3 Answers

With Xcode 6.1, to uninstall an app, use the following command:

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

where com.example.apple-samplecode.UICatalog is the bundle identifier of the application you wish to uninstall.

like image 75
Archana Avatar answered Oct 24 '22 04:10

Archana


One approach that we found for deleting user defaults is to delete all files in the ./data/Library/Preferences/* in addition to deleting application and data directories.

However, in Xcode 6, the command xcrun has new subcommand called simctl that allows me to manage iOS Simulator including resetting the simulator, and installing the application.

The solution that I came up with is to use the command

xcrun simctl erase [device ID]

Example

If xcrun simctl list() returns

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)

then run these 2 commands

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

() The device ID can be obtained from running

xcrun simctl list

This will reset the simulator (equivalent to iOS Simulator > Reset Contents and Settings... menu item).

With Xcode 6.0.1 (Build 6A317), there is either a bug or a change in behavior where when you uninstall an application, user defaults are not removed.

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.
like image 24
Frank Avatar answered Oct 24 '22 04:10

Frank


Reset all Content & Settings in a single command

  1. Quit iPhone Simulator
  2. In Terminal, run:

    xcrun simctl erase all
    

This will reset content and settings of all the simulators for the active version of Xcode (the one referenced by xcode-select -p).

like image 39
SwiftArchitect Avatar answered Oct 24 '22 05:10

SwiftArchitect