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