是否有比删除其目录更快/更好的方法来清除 iPhone 模拟器缓存?

Posted

技术标签:

【中文标题】是否有比删除其目录更快/更好的方法来清除 iPhone 模拟器缓存?【英文标题】:Is there a quicker / better way to clear the iPhone Simulator cache than deleting its directory? 【发布时间】:2012-01-09 13:31:25 【问题描述】:

所以我对 ios 开发还是相当陌生,我发现自己经常需要删除 DerivedData 或 iPhone Simulator 目录的内容,才能从我的代码中实际执行。 Xcode 中的 Clean 与清空这些目录不同,对吧?如果没有,有没有比拖着 Finder 找到它们并清除它们更简单的方法?

【问题讨论】:

3 年前也许这不是一个选择,但请检查我的答案,它对我有用! 【参考方案1】:

66:99 和攀登:

是的,有比进入镇上的每一个模拟器并一次重置内容和设置更好的方法。而且比查看模拟器的目录并从其脚下拉出缓存要好得多

退出 iPhone 模拟器,然后在终端中运行 xcrun

xcrun simctl erase all

安全有效。

单个设备见https://***.com/a/26394597/218152

xcrun simctl erase [设备 ID]

【讨论】:

这会擦除模拟器本身吗?所以之后我需要在 Xcode 的设备屏幕中重新添加它们? 只是内容。在文档 (xcrun simctl help) 中,erase擦除设备的内容和设置。,不要与 delete 混淆:删除一个设备或所有不可用的设备。 太棒了。鉴于此,我很想改变我的正确答案:) @lukech:非常感谢。我在尝试节省 HD 上的内存时偶然发现了这个解决方案,并正在寻找 clean build folder 方法。并支持你保持这个问题活跃。 这个命令需要永远运行,如何使用 uuid 选择目标 sim?【参考方案2】:

iOS Simulator菜单中,有一个名为Reset Content and Settings...

的选项

这应该可以解决问题。

编辑:

为了让这个过程更快更简单,我添加了一个这样的快捷键...

在系统偏好设置中,选择键盘

然后选择快捷方式标签。 然后点击应用快捷方式

单击加号按钮添加另一个快捷方式。

最后:

    Application: 下拉菜单中单击选择 Simulator。如果它不存在,请滚动到应用程序列表的底部并选择“其他...”。然后在搜索中输入“模拟器”并从那里添加模拟器。 在 菜单标题: 文本框中键入 Erase All Content and Settings...。 在Keyboard Shortcut:中输入您喜欢的快捷键。 (我使用命令周期) 点击添加按钮。

现在,在您的 iOS 模拟器中,您只需使用新的快捷键即可重置。


如果模拟器没有出现在下拉列表中:

    在 Finder 窗口中,转到您的应用程序文件夹。 右键单击 Xcode 并选择“显示包内容”。 导航到 Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ 您将看到 iPhone Simulator.app。 现在,在“设置”应用中,选择“其他”而不是“缺少的 iOS 模拟器”,而是选择“其他...”。 这将导致出现一个包含应用程序列表的窗口。 现在,将 iPhone Simulator.app 从 Finder 窗口拖到单击“其他...”时出现的窗口。

【讨论】:

iOS 模拟器不再出现在应用程序下拉菜单中。我应该只选择“xCode.app”吗?我在 OS 10.8.3 和 iOS Simulator 6.0 上。 在查找器窗口中,转到您的应用程序文件夹。按住 Option 键单击 Xcode 并选择“显示包内容”。导航到Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ 文件夹。你会看到iPhone Simulator.app。现在,在“设置”应用程序中,不要选择缺少的 iOS Simulator,而是选择 Other...。这将导致出现一个包含应用程序列表的窗口。现在,将 iPhone Simulator.app 从 Finder 窗口拖到单击 Other... 时出现的窗口。 我来这里是为了寻找其他东西,但只是因为您的回答太好了,所以才完成了您的步骤。谢谢! Reset Content and Settings 不会清除 *** 上的客户端资产。我为此苦苦挣扎了一段时间,想知道为什么我的 CSS 动画除了模拟器之外的任何地方都可以工作,结果发现它正在缓存旧文件,即使我删除了内容和设置。唯一对我有用的是断开我的 *** 并重新启动我的虚拟机然后重新连接(我使用的框架为我的所有资产版本)——如果只是测试东西,你也可以手动对其进行版本控制,但这很烦人。这是苹果应该解决的问题;只有在为我测试 iOS 时才会发生这种情况。 如果@JeffWolski指出的路径Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/找不到模拟器,可以通过搜索词simulator.app搜索【参考方案3】:

对于 iOS 模拟器 (Safari) 上的 web 开发和测试:

    在 iOS 模拟器和 Safari 都打开的情况下,转到 Safari > 开发 > iOS 模拟器,然后选择您的页面,您可以访问 Web Inspector 工具。

    转到 Safari > Develop > Empty Caches 以清除 iOS Safari 上的缓存。

【讨论】:

@AdrianFlorescu 这是在 iOS Safari 上调试 Web 开发的解决方案,但我认为问题与 iOS 应用程序开发有关。 不适用于带有远程调试器的 Safari 9.0.3。 “禁用缓存”也无效。 这个设置对我没有任何作用(实际上并没有清除移动 safari 上的缓存) 是的。看起来它不再清理iOS缓存了。我猜它过去是这样的...... 这是唯一可行的解​​决方案***.com/a/51421939/1055015【参考方案4】:

Web inspector new 具有禁用缓存 2020 解决方案的选项

【讨论】:

谢谢!完美运行。

以上是关于是否有比删除其目录更快/更好的方法来清除 iPhone 模拟器缓存?的主要内容,如果未能解决你的问题,请参考以下文章

在这种情况下,是不是有比 if-else 更快的替代方法?

Java 中是不是有比 Xalan/Xerces 更快的 XML 解析器 [关闭]

是否有比 O(N²) 更好的算法来确定矩阵是否对称?

在 SQL Server 数据库之间移动数据行是不是有比使用 CTE 更快的方法?

SQL CE中如何删除表中的所有数据?

是否有更快/更好的方法来获取在 C# 中应用了属性的方法