主要包和应用程序目录中的文件
问题描述:
我正在制作一个iOS应用程序,该应用程序使用存储在应用程序主包中的.plist文件中的字符串填充UITableView(通常情况下,您将拥有.plist )。我注意到,这个.plist被构建阶段的Copy Bundle Resources
阶段复制到我的应用程序的应用程序目录中。我开始想知道它是否真的需要在那里,因为我从我的应用程序的主包,而不是应用程序目录访问它。因此,作为测试,我从Copy Bundle Resources
阶段删除.plist,运行该应用程序,发现我的UITableView仍然使用.plist中的字符串填充。我已经清理了构建并再次运行应用程序,它确实有效。两个问题:主要包和应用程序目录中的文件
- 如果安全和隐私感兴趣的是您的应用程序,你不应该总是从
Copy Bundle Resources
阶段删除安全/私营部门的资源,使他们无法访问? - 为什么像故事板资源得到默认复制时,他们实际上并没有从那里访问?”
在此先感谢这么多的帮助
答
你作出错误的假设。应用目录IS当你从复制阶段删除文件时,它们将不会被安装在你的应用程序中,并且应用程序将失败
SEEMS工作的原因是建筑物采用快捷方式。构建不会删除p的文件在之前的版本中捆绑在一起。
如果你做了一个干净的(从项目菜单),然后再次构建,Xcode将删除应用程序的前一个副本,并从头开始重新构建它。您还应该从目标设备/模拟器中删除它,因为它会在将新版本复制到设备上时从之前的版本中选取剩余资源。
辉煌,谢谢!现在我的问题是,如果我不希望我的.plist中的数据可以访问,以致有人无法向其中添加数据或更改其中的数据,从而更改我的应用正在处理的信息,该怎么办? – kylejm
除了越狱设备之外,您的应用程序捆绑包无法在您的程序之外读取或写入。 –
但有人说,在Mac上可以带上我的应用程序的.ipa文件,控制点击它,然后点击“显示软件包内容”选项,显示它们在应用程序中的所有资源,然后他们可以做一些简单的事情作为添加项目到.plist文件? – kylejm