在为iPhone模拟器构建时,有没有一种简单的方法可以清理xcode在其中部署应用程序的目录?我有一个sqlite数据库,如果需要,可以在启动时将其复制到Documents文件夹中。问题是我可能会更改架构,但是不会复制新数据库,因为已经存在一个数据库。
理想情况下,每次构建时,它都会核对以前的内容。这可能吗,还是我必须手动进行?
在为iPhone模拟器构建时,有没有一种简单的方法可以清理xcode在其中部署应用程序的目录?我有一个sqlite数据库,如果需要,可以在启动时将其复制到Documents文件夹中。问题是我可能会更改架构,但是不会复制新数据库,因为已经存在一个数据库。
理想情况下,每次构建时,它都会核对以前的内容。这可能吗,还是我必须手动进行?
Answers:
模拟器会将应用程序安装到:
"$HOME/Library/Application Support/iPhone Simulator/User/Applications"
还要检查:
"$HOME/Library/Developer/CoreSimulator/Devices"
GUID文件和目录与模拟器的已安装应用程序匹配。
手动删除所有这些文件/目录,以从模拟器中删除所有应用程序。
我知道有一些方法可以在XCode的构建过程中添加脚本。
同样,看起来XCode似乎更改了它使用的每个版本的GUID(我的应用所在的目录在XCode中的版本之间都发生了变化),因此尝试一直删除同一目录将不起作用。如果您一次只使用一个应用程序,则可以清除整个目录。
git reset HEAD --hard && git clean -f
在添加日历后执行删除日历订阅。
Hardware > Reset Content and Settings
我这样做的方法是简单地单击并按住模拟器中我的应用程序的图标,然后在它开始摆动时单击黑白(x)。将会弹出一条消息,询问您是否真的要删除,只需单击“是”即可。下次构建和部署应用程序时,它将使用新的sqlite数据库,而不会造成麻烦,并且您不必在文件系统中乱搞。
在Mac OS X Lion上运行iOS 5之后,您可以尝试:
RemoveSimulatorApps.command
包含以下内容的脚本:rm -rf“ $ HOME /库/应用程序支持/ iPhone Simulator / 5.0 / Applications / *”
PATH
。chmod + x RemoveSimulatorApps.command
如果更改了架构,您真正要做的是清除数据库。一种方法是,从长远来看,当您开始发布应用程序的2.0、3.0等版本时,它会使您更快乐,这是检查sqlite表的版本,如果它已更改,则丢弃旧文件,然后使用您捆绑包中的文件。
找到一种清理模拟器的方法并不能解决现实世界中当您使用新架构发布新版本时如何清理客户的iPhone的问题。
值得一提的是,在确定遇到了旧模式之后,您可能想要复制新数据库而不破坏旧数据库,然后将任何有趣的数据从旧数据库中加载到新数据库中。然后吹走旧数据库。这样,您可以保留用户对数据库的添加。
从Xcode 6开始,您可以使用以下命令从命令行执行此操作:xcrun simctl
另外,iOS Simulator应用程序(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 {}"
从Xcode 6开始:
xcrun simctl erase <sim udid>
<-重置模拟器。
正如我在经过验证的答案的评论中所解释的:
我正在测试添加和删除日历订阅。在实际设备上,您可以在“设置”,“ 帐户”中删除日历订阅但是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 <= 5
我将以下内容添加到我的 ~/.bash_profile
alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'
它只是破坏了SIM卡上的所有应用程序。