すべてのシミュレータの内容と設定をリセットするオプションはありますか?コマンドラインを介した単一のイベントまたは単一のコマンドで?
14 に答える
Jeremy Huddleston Sequoia からの回答に基づいて、すべてのシミュレーターをリセットするシェル スクリプトを作成しました。
Xcode 7の場合、以下を使用できます。
#!/bin/sh
instruments -s devices \
| grep "(\d[.0-9]\+) \[[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}\]" \
| grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \
| while read -r line ; do
echo "Reseting Simulator with UDID: $line"
xcrun simctl erase $line
done
以前のバージョンの場合:
#!/bin/sh
instruments -s devices \
| grep Simulator \
| grep -o "[0-9A-F]\{8\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}" \
| while read -r line ; do
echo "Reseting Simulator with UDID: $line"
xcrun simctl erase $line
done
Xcode 6 では、simctl コマンド ライン ユーティリティを使用できます。
xcrun simctl erase <device UDID>
Xcode 7 では、次の方法で一度にすべてを消去できます。
xcrun simctl erase all
私が提示する、
決定的な iOS シミュレータ リセット スクリプト (リンク)
このSOの質問からのOded Regevのコードに基づいています( Jacob Rusの細かい「menu_click」コードに基づいていました)
Xcodeコマンドラインツールの最新バージョンを使用すると、呼び出すことができますxcrun simctl erase all
この関数を呼び出すたびにシムを終了するようにしてください。そうしないと、次のエラーが表示されます。An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
Unable to erase contents and settings in current state: Booted
ダニエル・ウッドからの回答に触発されて、私はこれを思いつきました.
走行中のシミュレーターをどうするかという問題を解決します。私たちの CI 環境では、テストの実行後もシミュレーターを実行したままにしておきますが、これは時間の経過とともにますます汚染されています。
GUID の検出はそれほど正確ではありませんが、可読性のトレードオフは価値があると思います。
#!/bin/bash
xcrun simctl list | grep Booted | grep -e "[0-9A-F\-]\{36\}" -o | xargs xcrun simctl shutdown
xcrun simctl erase all
XCode 7 でテスト済み。
1) すべてのシミュレーターを終了する
2) ターミナルで以下のコマンドを実行します
xcrun simctl erase all
このコマンドを呼び出すことができます:
rm -rf ~/Library/Application Support/iPhone Simulator
シミュレーターのユーザー コンテンツと設定を工場出荷時の状態に設定し、インストールしたアプリケーションを削除するには、[iPhone シミュレーター] > [コンテンツと設定をリセット] を選択します。