ios - 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。
解决方案
答案是在 Xcode 的 File Inspector 中更改文件类型。它是“默认 - 数据”,应该是“数据”。我的文件是来自NSKeyedArchiver
. 显然 Xcode 通过尝试将内容包装在 XML 中来破坏这一点。
推荐阅读
- flutter - Flutter中DropdownButton的列表理解(Dart)
- python - 我很难从以下网站获得分数
- reactjs - 修复 react-table useTable 行的高度
- c# - 为什么 spawn 对象不在平面上工作?对象从平面区域生成。在地形上它正在工作
- node.js - 如何从node.js(电子)将大文件上传到firebase存储?
- c# - AzureKeyVault 在本地 ASP.NET 4.7.1 WebForms 应用程序中不起作用
- html - 带有修改后 alpha 的渐变不会填满整个页面
- angular - 数字通过从 Angular 客户端到 NestJS 服务器的 Http 请求转换为字符串
- java-8 - 使用流有选择地修改列表项
- swift - FSCalendar:从头开始查看标题?