我正在制作一个iOS应用程序,该应用程序用存储在应用程序主捆绑包中的.plist文件中的字符串填充UITableView(通常有.plist)。我注意到这个.plist正被构建阶段的Copy Bundle Resources
阶段复制到我的应用程序目录中。我开始怀疑它是否真的需要在那里,因为我是从应用程序的主捆绑包而不是应用程序目录访问它的。因此,作为一项测试,我从Copy Bundle Resources
阶段删除了.plist,运行了应用程序,发现我的UITableView中仍然填充着.plist中的字符串。我已经清理了构建并再次运行了该应用程序,它确实有效。两个问题:
- 如果你的应用程序对安全和隐私感兴趣,你不应该总是从
Copy Bundle Resources
阶段删除安全/私有资源,这样它们就无法访问吗 - 为什么像情节提要这样的资源在默认情况下会被复制,而实际上并没有从那里访问?">
非常感谢的帮助
您做出了错误的假设。应用程序目录是主捆绑包。当您从复制阶段删除文件时,它们将不会安装在您的应用程序中,并且应用程序将失败。
它之所以看起来有效,是因为建筑走捷径。正常的生成不会删除上一个生成放在捆绑包中的文件。
如果你(从项目菜单)进行清理,然后重新构建,Xcode将删除应用程序的前一个副本,并从头开始重新构建。您还应该将其从目标设备/模拟器中删除,因为当它将新版本复制到设备上时,它还会从以前的版本中提取剩余资源。