ios - 主包和应用程序目录中的文件

标签 ios objective-c resources nsbundle

我正在制作一个 iOS 应用程序,该应用程序使用存储在应用程序主包中的 .plist 文件中的字符串填充 UITableView (通常你会有一个 .plist 的地方)。我注意到这个 .plist 被 Copy Bundle Resources 复制到我的应用程序的应用程序目录中。构建阶段的阶段。我开始怀疑它是否真的需要在那里,因为我是从我的应用程序的主包访问它,而不是应用程序目录。因此,作为测试,我从 Copy Bundle Resources 中删除了 .plist阶段,运行应用程序,发现我的 UITableView 仍然填充了 .plist 中的字符串。我已经清理了构建并再次运行了应用程序,它确实有效。两个问题:

  • 如果您的应用程序对安全和隐私感兴趣,您不应该总是从 Copy Bundle Resources 中删除安全/私有(private)资源吗?阶段,以便他们无法访问?
  • 为什么像 Storyboard这样的资源在实际上并没有从那里访问时会被默认复制?”

  • 非常感谢您的帮助

    最佳答案

    你在做出错误的假设。申请目录主要捆绑。当您从复制阶段删除文件时,它们将不会安装在您的应用程序中,并且应用程序将失败。

    它似乎起作用的原因是建筑走捷径。正常构建不会删除先前构建放入捆绑包中的文件。

    如果你做了一个清理(从项目菜单)然后再次构建,Xcode 将删除应用程序的先前副本并从头开始重新构建它。您还应该从目标设备/模拟器中删除它,因为当它将新构建复制到设备上时,它还会从先前构建中获取剩余资源。

    关于ios - 主包和应用程序目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816304/

    相关文章:

    ios - Multipeer Connectivity 框架中使用的加密?

    ios - 如何在 Swift 中设置返回按钮文本

    ios - 苹果使用哪种字体/字体大小作为 iOS 中的占位符

    ios - objective-c 中的合并和预测触摸

    java - Android 中无需本地化的多语言功能,但可通过按钮实现

    ios - UnityEditor.BuildPlayerWindow+BuildMethodException : when building Unity project for iOS

    objective-c - 如何检查 id 是实例还是类?

    ios - AFNetworking 2.0 是否支持后台任务? - IOS 7

    android - 添加资源 “processDebugResources failed”之后

    java - 从java项目中的资源文件夹中获取所有文件名