web-dev-qa-db-ja.com

コマンドラインからiOS 8シミュレーターからアプリを削除するにはどうすればよいですか?

IOSシミュレーターで自動化を実行していますが、次の実行前に削除する必要があります。コマンドラインからiOSシミュレーターからアプリを削除するにはどうすればよいですか?

シミュレータデバイスディレクトリ(~/Library/Developer/CoreSimulator/Devices/*にある)ごとに、./data/Containers/Bundle/Application/./data/Containers/Data/Application/を削除しようとしました。

シミュレーターでアプリを長押しして(アプリが不安定になり)Xアプリをクリックしてアプリを削除しようとしても、ユーザーのデフォルトがクリアされていませんでした。アプリの状態を100%クリーンにしたい。

この問題を解決する良い解決策を見つけました。

21
Frank

ユーザーのデフォルトを削除するために見つけたアプローチの1つは、アプリケーションおよびデータディレクトリの削除に加えて、./data/Library/Preferences/*内のすべてのファイルを削除することです。

ただし、Xcode 6では、コマンドxcrunsimctlという新しいサブコマンドがあり、シミュレーターのリセットやアプリケーションのインストールなど、iOSシミュレーターを管理できます。

私が思いついた解決策は、コマンドを使用することです

xcrun simctl erase [device ID]

xcrun simctl list)が返された場合

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)

次に、これらの2つのコマンドを実行します

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

デバイスIDは実行中に取得できます

xcrun simctl list

これにより、シミュレーターがリセットされます(iOS Simulator > Reset Contents and Settings...メニュー項目に相当)。

Xcode 6.0.1(ビルド6A317)では、アプリケーションをアンインストールしたときにユーザーデフォルトが削除されないというバグまたは動作の変更があります。

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

Xcode 6.1でアプリをアンインストールするには、次のコマンドを使用します。

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

どこ com.example.Apple-samplecode.UICatalogは、アンインストールするアプリケーションのバンドルIDです。

30
Archana

1つのコマンドですべてのコンテンツと設定をリセットする

  1. IPhoneシミュレーターを終了する
  2. ターミナルで次を実行:

    xcrun simctl erase all
    

これにより、Xcodeのアクティブなバージョン(xcode-select -pによって参照されるバージョン)のすべてのシミュレーターの内容と設定がリセットされます。

8
SwiftArchitect
xcrun simctl uninstall simulatorIdentifier appBundleId
3
Loveleen Saini