首页 > 解决方案 > Xcode 将旧数据文件打包,而不是它的新版本

问题描述

尽管我尽最大努力将其替换为文件的更新版本,Xcode 仍会不断恢复旧版本的捆绑数据文件。

我将一个数据文件放入我的基于 iOS 文档的应用程序项目中,进行了构建,然后在运行时应用程序按预期在其主包中找到了该文件。然后我决定通过用新的替换它来更改数据文件。我从项目中删除了旧文件(删除了引用并删除了文件)。我像以前一样将新文件拖到 Xcode 项目导航器中。我清理了构建。当我重建时,旧文件仍被放入构建输出文件夹(Build/Products/Debug-iphonesimulator/myproduct.app包)中。文件的原始版本在系统上的任何地方都不存在。我什至清空了垃圾箱。

有谁知道发生了什么?是否有一些缓存 Xcode 保留在构建文件夹结构之外并且没有被清理?

这甚至与模拟器或测试设备无关。构建输出在 Mac 上是完全错误的。(该应用程序当然失败了:它打开了数据文件,但里面有错误的旧数据。)我尝试过产品清理,从项目和磁盘上删除文件,将主文件放入 Xcode 下的新名称,甚至删除~/Library/Developer/Xcode/DerivedData/(my project)-(alpha junk).

我在 macOS Mojave 10.14.6 上使用 Xcode 10.3。

标签: iosxcodebundle

解决方案


答案是在 Xcode 的 File Inspector 中更改文件类型。它是“默认 - 数据”,应该是“数据”。我的文件是来自NSKeyedArchiver. 显然 Xcode 通过尝试将内容包装在 XML 中来破坏这一点。


推荐阅读