是否有任何选项可以重置所有模拟器的内容和设置?在单个事件或命令行中的单个命令中?
答案 0 :(得分:40)
根据Jeremy Huddleston Sequoia的回答,我写了一个shell脚本,它将重置所有模拟器。
对于 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
答案 1 :(得分:15)
使用Xcode 6,您可以使用simctl命令行实用程序:
xcrun simctl erase <device UDID>
使用Xcode 7,您可以一次删除所有内容:
xcrun simctl erase all
答案 2 :(得分:9)
我出席,
基于Oded Regev's code的this SO question(基于Jacob Rus's fine "menu_click" code)
答案 3 :(得分:5)
使用最新版本的Xcode命令行工具,您可以调用xcrun simctl erase all
确保每次调用此功能时退出SIM卡,否则您将收到错误消息An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
Unable to erase contents and settings in current state: Booted
答案 4 :(得分:5)
您可以运行此命令
xcrun simctl erase all
答案 5 :(得分:4)
只需转到~/Library/Application Support/iPhone Simulator
并删除其中的所有内容。上述方法在iOS 7上不起作用,所以这似乎对我有用。
答案 6 :(得分:4)
受丹尼尔伍德的回答启发,我想出了这个。
它解决了如何处理正在运行的模拟器的问题。测试运行后,我们的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进行测试。
答案 7 :(得分:2)
使用Xcode 10:
#!/usr/bin/env sh
xcrun simctl shutdown all
xcrun simctl erase all
答案 8 :(得分:1)
我写了一个会重置内容的脚本。 iOS模拟器的所有版本和设备的设置。它从菜单中获取设备名称和版本号,因此它将包括Apple发布模拟器的任何新设备或iOS版本。
手动运行或在构建脚本中使用很容易。我建议在构建之前将其添加为预操作运行脚本。
它主要基于上面的Stian脚本,但不会因新的iOS版本而变得陈旧,并且取消了对话框(更适合自动构建脚本)。
答案 9 :(得分:0)
您可以调用此命令:
rm -rf ~/Library/Application Support/iPhone Simulator
答案 10 :(得分:0)
有一个工具xctool - https://github.com/facebook/xctool,它取代了xcodebuild。它允许从命令行构建应用程序以及为其运行测试。除了运行测试之外,还允许提供诸如-freshSimulator和-freshInstall之类的参数,这些参数在执行测试之前重置目标模拟器的内容。这简化了模拟器的大量重置,因为您可以避免使用bash脚本等各种魔法来封装工具。
答案 11 :(得分:0)
xcrun simctl erase all
xcrun simctl delete unavailable
答案 12 :(得分:0)
1)从所有模拟器中退出
2)在终端中运行以下命令
xcrun simctl erase all
答案 13 :(得分:-1)
要将模拟器的用户内容和设置设置为出厂状态并删除已安装的应用程序,请选择iPhone模拟器&gt;重置内容和设置。