110

iPhoneシミュレーター用にビルドするときにxcodeがアプリをデプロイするディレクトリをクリーンアップする簡単な方法はありますか? 必要に応じて、起動時に Documents フォルダーにコピーされる sqlite データベースがあります。問題は、スキーマを変更する可能性がありますが、新しいデータベースが既に存在するため、コピーされないことです。

理想的には、ビルドするたびに、以前のコンテンツを破壊します。これは可能ですか、それとも手動で行う必要がありますか?

4

16 に答える 16

133

Apples Dev Resources から:

シミュレーターのユーザー コンテンツと設定を工場出荷時の状態に設定し、インストールしたアプリケーションを削除するには、 [デバイス] > [すべてのコンテンツと設定を消去]を選択します。

(古いバージョンの場合: iPhone シミュレーター > コンテンツと設定をリセットします。)

于 2010-08-09T16:59:40.663 に答える
91

シミュレーターはアプリを次の場所にインストールします。

"$HOME/Library/Application Support/iPhone Simulator/User/Applications"

また、チェックしてください:

"$HOME/Library/Developer/CoreSimulator/Devices"

GUID ファイルとディレクトリは、シミュレーターにインストールされているアプリと一致します。

これらのファイル/ディレクトリをすべて手動で削除して、シミュレーターからすべてのアプリケーションを削除します。

XCode のビルド プロセスにスクリプトを追加する方法があることは知っています。

また、XCode が各ビルドを使用する GUID を変更するように見えるため (私のアプリが配置されているディレクトリは XCode のビルド間で変更されます)、常に同じディレクトリを削除しようとしても機能しません。一度に 1 つのアプリのみで作業している場合は、ディレクトリ全体をクリアすることもできます。

于 2009-03-28T02:59:15.083 に答える
12

Mac OS X Lion の iOS 5 以降では、次のことを試すことができます。

  1. RemoveSimulatorApps.command以下を含むスクリプトを作成します。
    rm -rf "$HOME/Library/Application Support/iPhone Simulator/5.0/Applications/*"
    
  2. このスクリプトを のディレクトリに保存しますPATH
  3. 次のように、ファイルを実行可能にします。
    chmod +x RemoveSimulatorApps.command

仮定

  • プログラム可能なキーを備えた Logitech や Microsoft のキーボードなど、キーボードのお気に入りボタンからこれを呼び出すことができます (したがって、.sh の代わりに .command ファイルとして保存します)。
  • iOS シミュレーターのすべてを吹き飛ばしても問題ありません (1 つのアプリでアクティブに作業している場合に最適です)。
  • 他の人からのすべてのメモは、アップグレード可能な優れたアプリなどについて適用されます(個人的にはこれが役立つと思いましたが、一貫した堅牢性/エラー処理を実行しようとしていた特定の状態でデータベースをリロードする開発モード スイッチがあります)
于 2012-01-24T03:04:29.887 に答える
8

やり過ぎかもしれませんが..

メニューと「コンテンツと設定をリセット...」を使用することもできます

于 2009-09-10T14:24:19.050 に答える
7

Xcode >= 6 の場合

xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -n1 xcrun simctl erase
于 2015-07-24T07:09:05.233 に答える
4

Xcode 6以降:

xcrun simctl erase <sim udid><- シミュレータをリセットします。

于 2014-10-15T18:13:03.370 に答える
1

検証済みの回答の下のコメントで説明していたように:

カレンダーのサブスクリプションの追加と削除をテストしていました。実際のデバイスでは、 [設定]の [アカウント]でカレンダーのサブスクリプションを削除できますが、このメニューは iOS シミュレーターには存在せず、シミュレーター全体をリセットしたくありませんでした。

そのため、git を使用してDeviceフォルダーをローカルでバージョン管理し、次のコマンドを実行して、追加したカレンダー サブスクリプションを削除しました。

$ git reset HEAD --hard
$ git clean -f

したがって、手順は次のとおりです。

  1. アプリケーションを iOS シミュレーターにインストールし、必要な作業を行います
  2. デバイスを特定~/Library/Developer/CoreSimulator/Devices/cdてそれを実行git initし、git リポジトリを作成します
  3. 状態を保存したい場合は、実行しますgit commit -a "Message"
  4. 設定の変更 (例: カレンダー購読の追加) を実行し、テストを実行します。
  5. シミュレーターをシャットダウンします
  6. 行うgit reset --hard HEAD
  7. シミュレーターを起動すると、その後に行われたすべての変更git commitがなくなります。
于 2016-08-05T13:34:07.197 に答える
1

XCode で、[ウィンドウ] メニュー オプションに移動し、[デバイス] を選択すると、不要になったデバイスを削除できます。

于 2016-09-15T10:39:53.047 に答える
0

Xcode <= 5 の場合

私は私の~/.bash_profile

alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'

SIM上のすべてのアプリを破壊するだけです。

于 2012-09-16T14:59:27.957 に答える