我有一个Web服务来下载一些新闻并将它们写入NSLibraryDirectory
中的某个plist文件,没关系。但是,如果用户没有Internet连接或webservice离线或其他什么,我从AppBundle中加载一个Default-Newsfile。
目前我必须在每个AppStoreUpdate之前手动更换默认文件以使其保持最新。
我的问题:在通过模拟器进行调试时,是否有一种简单的方法可以写入App Bundle,因此默认文件每次都是最新的。
我做了类似的事情:
#ifdef SIMULATOR
//Write to AppBundle
#endif
注意: 这是关于我使用Mac和模拟器的时间,我不想在已发布的应用程序中这样做! 是的,我已经在我的Bundle中替换了Ressource,但是我想让它自动实现。 在为任何设备或AppStore编译之前,我想让我的Projectfolder保持最新。
答案 0 :(得分:6)
AppBundle
Read-only
您无法以编程方式向其编写任何内容,但是如果您更新Project
到Xcode
中的资源,则会自动获取更新的文件。 AppBundle
..
答案 1 :(得分:1)
不,您可能会让模拟器向您写入App Bundle,但这并不意味着您的项目(在为应用程序商店构建时编译的文件)将更新。
为什么不将新文件保存到文档目录,然后始终加载此文件。应用程序启动后,启动后台线程并尝试更新plist文件。您通过在文档目录中写入plist文件来成功检索新闻。 这样,用户将拥有上次设备能够获取文件时检索到的文件。
您可以在应用包中添加一个文件,在首次启动应用时将其复制到文档目录,只是为了确保用户在应用中有数据。
答案 2 :(得分:1)
好的,根据你的评论,这就是你需要的东西(我想 - 在这个问题上仍然不完全清楚,但请告诉我这是否适合你)。
Copy Bundle Resources
步骤Build Phases
要在代码中使SRCROOT可用,请将SRCROOT=\"${SRCROOT}\"
添加到GCC_PREPROCESSOR_DEFINITIONS。
除了最后一步之外,其他开发人员不需要做任何事情 - 每次更改时都要检查更新后的文件。
这有帮助吗?