读取数据:文件“Info.plist”无法打开,因为没有这样的文件

Posted

技术标签:

【中文标题】读取数据:文件“Info.plist”无法打开,因为没有这样的文件【英文标题】:Reading data: The file "Info.plist" couldn't be opened because there is no such file 【发布时间】:2019-11-14 02:08:28 【问题描述】:

克隆我的 Github 存储库后,一切运行正常,但构建失败,因为此错误“。”

我已经尝试了我能找到的所有可能的解决方案,包括删除文件并创建一个新文件、从复制捆绑资源中删除它、将其添加到构建设置等。解决方案,但没有任何效果。 Error: The file “Info.plist” couldn’t be opened because there is no such file, Info.plist Utility Error: "Info.plist couldn't be opened because there is no such file"

非常感谢有人帮助我找到解决此问题的方法,如果您需要更多信息,请告诉我。

编辑:由于某种原因,当我查看项目时,它不是我提交给 Github 的最新版本。我想知道如何克隆一个精确的提交?我试图查看这个post,但我不确定在哪里可以找到远程地址?

【问题讨论】:

HERE 知道远程地址。获取最新的提交,再次清理并构建项目。先试试这个,如果还有错误请告诉我 @TraiNguyen 例如在提交中输入会怎样? 不确定您的问题,但据我所知,应该访问包含您的源代码的网络,例如 github、bitbucket、...,检查您有多少分支,并查看最新提交的内容是什么每个分支,比在终端更容易查找 - 我认为 :) 尝试从捆绑设置中删除$(SRCROOT)/ (INFOPLIST_FILE) 出于好奇,当您说这不起作用时,您是在谈论从不同目录中的克隆运行它时吗?或者换句话说,如果你将你的项目复制到另一个目录,它会工作还是失败? 【参考方案1】:

如果不查看您的项目就很难进行调试,如果一切都失败了,您可能会考虑制作一个副本,删除所有源文件并在公共 repo 上共享该浅拷贝。

否则,除了@Asperi 已经说过的话,请务必:

    在每次尝试修复此问题之前清理构建文件夹(Command+Option+Shift+K),以防万一 打开构建日志(见下文)并使用搜索 (Command+F) 查找以 ProcessInfoPlistFile 开头的条目。检查那里的路径是否有连接,检查该路径指向的文件是否丢失,是否具有正确的项目名称等 如果您要构建多个目标,请务必检查每个是否有一个有效的.plist,而不仅仅是主要的。 在纯文本编辑器中打开yourprojectname.xcodeproj/project.pbxproj(例如在终端中写入open yourprojectname.xcodeproj/project.pbxproj)并搜索Info.plist,确保每个条目都有有效路径(此处指定的路径实际存在)

【讨论】:

【参考方案2】:

更新:尽管 info plist 文件在项目中的物理命名方式并不重要,因为 Xcode 在产品包创建阶段总是将其重命名为 Info.plist ,但为了避免在社区中造成混淆,我们假设您的信息 plist 名为 Info.plist。

检查以下内容:

1) 克隆后Info.plist是否存在于文件系统中? 2)项目构建设置(INFOPLIST_FILE标签)中的Info.plist是否设置了正确的相关路径? 3) Info.plist 文件是否未损坏 - 由 Xcode 作为文档打开(项目设置中的信息选项卡也应显示)?

注意:Info.plist 不应该添加到目标的资源中,它是由 Xcode 从上面提到的INFOPLIST_FILE 复制的(如果需要重命名为 Info.plist!)

【讨论】:

没错。它没有损坏,一切都按原样显示。该文件显示在文件系统中(在项目中就像 Finder 中的文件和所有其他文件一样),构建设置中的路径是正确的,它不在资源中(是资源标签吗?) 是公开回购吗?能给个链接吗? 不幸的是我不能。它是私人的。我很乐意为您提供所需的任何信息。我以前没有这个问题,但我必须删除 Xcode 才能将存储更新到 Catalina,之后当我尝试克隆项目时,我没有得到最新的提交(大约 6 个月),我得到了这个问题。 应该是Info.plist 而不是info.plist【参考方案3】:

以下内容适用于此处的问题cmets答案

Info.plist should be capitalized — 如果不是,它可以很容易地解释您的问题。

注意:一些 cmets 和答案使用小写 info.plist, 这只会火上浇油。 最好具体(尤其是当 谈到这一点),因为这个小细节可以产生巨大的影响 区别。

获得赏金的答案绝对是虚假信息。以下摘录直接来自之前链接的文档:

重要提示:在接下来的部分中,请注意捆绑包中文件和目录的大小写。 NSBundle 类和核心基础包函数在搜索包目录中的资源时会考虑大小写。大小写不匹配可能会阻止您在运行时找到资源。

来源:https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW1

【讨论】:

如果你使用INFOPLIST_FILE而不是手动复制它,项目info.plist文件的命名方式并不重要。 Xcode 会在构建过程中自动将其重命名为 Info.plist。 @Asperi:这确实很重要,因为它直接在文档中说明了案例很重要。如果您仅仅依靠工具来纠正错误,那是不好的做法。

以上是关于读取数据:文件“Info.plist”无法打开,因为没有这样的文件的主要内容,如果未能解决你的问题,请参考以下文章

无法编译 xcode 项目,因为缺少 info.plist

Info.plist:由于格式不正确,无法读取数据

Xcode找不到本地化的info.plist

“帮助修复”错误:无法从文件中读取属性列表:info.plist

Xcode 7 错误:无法从 Info.plist 中读取 CFBundleIdentifier(空)

升级到 Xcode 6 Beta 7 现在得到:文件 info.plist 无法打开,因为没有这样的文件