有没有一种直接的方法来清理xcode在为iPhone模拟器构建时部署应用程序的目录?我有一个sqlite数据库,如有必要,会在启动时复制到Documents文件夹中。问题是我可能会更改我的架构,但新数据库不会被复制,因为已经存在。
理想情况下,每次构建时,它都会破坏以前的内容。这可能,还是我必须手动完成?
模拟器将应用程序安装到:
"$HOME/Library/Application Support/iPhone Simulator/User/Applications"
还检查:
"$HOME/Library/Developer/CoreSimulator/Devices"
GUID文件和目录与模拟器的已安装应用程序相匹配。
手动删除所有这些文件/目录以从模拟器中删除所有应用程序。
我知道有一些方法可以在XCode中为构建过程添加脚本。
此外,它看起来好像XCode更改了它使用每个构建的GUID(我的应用程序所在的目录在XCode中的构建之间发生了变化),因此尝试一直删除同一目录将不起作用。如果您一次只处理一个应用程序,那么清除整个目录将是一个选项。
从Xcode 6开始:
xcrun simctl erase <sim udid>
清除Xcode缓存;
命令+ Option + Shift键+ K
命令+ Shift + K
(使用它们因为它们具有不同的功能)
清除派生数据内容;
菜单栏 - >窗口 - >管理器 - >项目 - >选择项目
右窗格显示文件夹的名称,右侧的删除按钮允许您删除所有派生的数据内容。
清除模拟器缓存;
菜单栏 - > iOS模拟器 - >重置内容和设置
正如我在validated answer的评论中解释的那样:
我正在测试添加和删除日历订阅。在真实设备上,您可以在“设置”,“帐户”中删除日历订阅,但iOS模拟器中不存在此菜单,我不想重置整个模拟器。
所以我最后用git在本地版本化我的Device文件夹,并在添加之后执行以下命令删除日历订阅:
$ git reset HEAD --hard
$ git clean -f
所以步骤是:
~/Library/Developer/CoreSimulator/Devices/
中识别您的设备并对其执行cd
,然后使用git init
创建一个git存储库git commit -a "Message"
git reset --hard HEAD
git commit
消失后完成所有更改。在XCode中,转到“窗口”菜单选项,选择“设备”,然后您可以删除不再需要的设备。
对于Xcode <= 5
我在~/.bash_profile
上添加了以下内容
alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'
它只是核实了SIM卡上的所有应用程序。
我这样做的方法是在模拟器中单击并按住我的应用程序的图标 - 然后当它开始摆动时单击黑白(x)。将弹出一条消息,询问您是否确实要删除,只需单击“是”。下次构建和部署应用程序时,它将毫不费力地使用新的sqlite数据库,您不必在文件系统中进行乱码。
在Mac OS X Lion上运行iOS 5后,您可以尝试:
RemoveSimulatorApps.command
的脚本,其中包含:
rm -rf“$ HOME / Library / Application Support / iPhone Simulator / 5.0 / Applications / *”PATH
中的目录中。它可能有点矫枉过正但是......
您还可以使用菜单和“重置内容和设置...”
如果您更改了架构,那么您真正要做的就是清除数据库。一种方法,从长远来看,当你开始发布你的应用程序的版本2.0,3.0等时,它会让你更快乐,检查你的sqlite表的版本,如果它已经改变,然后丢弃旧文件并使用捆绑中的文件。
找到一种清理模拟器的方法无法帮助解决当您使用新架构发布新版本时如何清理客户iPhone的现实问题。
对于额外的点,在确定您遇到旧架构之后,您可能希望复制新数据库而不破坏旧数据库,并将旧数据库中的任何有趣数据加载到新数据库中。然后吹走旧的数据库。这样,您可以保留用户对数据库的添加内容。
对于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
从Xcode 6开始,您可以使用以下命令行执行此操作:xcrun simctl erase
此外,iOS模拟器应用程序(Xcode 6版本和旧版本)都有一个名为“重置内容和设置”的菜单项,可用于擦除当前启动的设备。
这适用于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 {}"