清理 iPhone 模拟器

114

在为iPhone模拟器构建应用程序时,有没有简单的方法清理Xcode部署应用程序的目录?如果需要,在启动时会将sqlite数据库复制到文档文件夹中。问题是,如果我更改了架构,则不会复制新的数据库,因为已经存在一个。

理想情况下,每次构建时都会删除先前的内容。这是可能的吗,还是我必须手动执行此操作?


模拟器是否支持AppleScript? - Rog
是的,我已经编写了一个AppleScript来迭代每个设备和操作系统版本的所有iOS模拟器,并重置它们的内容和设置:https://github.com/michaelpatzer/ResetAllSimulators - M-P
18个回答

5
这适用于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 -I{} xcrun simctl erase {}

对于 .bash_profile

alias cleansim="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 -I{} xcrun simctl erase {}"

4

Xcode 6及以上版本:

xcrun simctl erase <sim udid> <- 重置模拟器。


1

清除 Xcode 缓存;

Command+Option+Shift+K

Command+Shift+K

(同时使用它们,因为它们具有不同的功能)

清除 Derived Data 内容;

菜单栏 -> 窗口 -> 组织器 -> 项目 -> 选择您的项目

右侧窗格显示文件夹名称,右侧的删除按钮允许您删除所有派生数据内容。

清除模拟器缓存;

菜单栏 -> iOS 模拟器 -> 重置内容和设置


1

正如我在验证答案的评论中解释的那样:

我正在测试添加和删除日历订阅。在真实设备上,您可以在设置帐户中删除日历订阅,但是在iOS模拟器中不存在此菜单,我也不想重置整个模拟器。

所以我最终使用git本地版本控制我的设备文件夹,并执行以下命令来删除添加的日历订阅:

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

所需步骤如下:
  1. 在iOS模拟器上安装应用程序并进行必要操作
  2. ~/Library/Developer/CoreSimulator/Devices/中识别您的设备,进入该目录,然后使用git init创建一个git存储库
  3. 一旦想要保存状态,请执行git commit -a "Message"
  4. 更改设置(例如添加日历订阅)并进行测试
  5. 关闭模拟器
  6. 执行git reset --hard HEAD
  7. 启动模拟器,所有在git commit之后进行的更改都将消失。

1

在XCode中,转到“窗口”菜单选项,选择“设备”,然后您可以删除不再需要的设备。


0

使用Xcode 14.1和iPhone14模拟器,我像在iPhone上一样删除了应用程序。这将删除应用程序中的所有数据。当我重新构建时,Documents文件夹中的所有数据都被删除了。


0

针对Mac OS Ventura 13中的Xcode 14的答案

打开模拟器。您可以在终端中执行以下操作:open -a simulator

然后只需选择设备 -> 抹掉所有内容和设置...

enter image description here


0

针对 Xcode <= 5

我在我的 ~/.bash_profile 中添加了以下内容

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

它只是在模拟器上销毁所有应用程序。


1
这已经不适用于Xcode 6及以上版本。 - Jeremy Huddleston Sequoia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接