Xcode无法打开Info.plist -- 错误显示“没有这个文件”

69

我从Xcode 3换到了Xcode 4,并加载了我的项目,该项目在Xcode 3中完美运行。但是当我运行它时,出现以下错误:

文件“Info.plist”无法打开,因为没有这样的文件。

我已经在Xcode中查看了该文件,它确实存在。那么为什么无法打开呢?


3
如果有疑问,就进行清理(Build/Clean All Targets),关闭,重新打开并构建。 - PengOne
2
下一步,删除对Info.plist的引用(不是文件!),然后再将其添加回来。 - PengOne
除非文件名有错别字,否则我没有其他信息。抱歉,祝你好运! - PengOne
你有检查文件名是否与构建设置选项卡中的“Info.plist文件”属性匹配吗? - Deepak Danduprolu
13个回答

153

仅在Xcode项目文件夹中存在文件是不够的。您是否已验证该文件在应用程序目标的构建设置中正确引用,以便将其正确复制到应用程序捆绑包中?这不完全与标准资源相同(即,它没有成为目标中一组目标成员复选框中的成员),而是因为它在正确格式化的捆绑包中的重要性而成为构建设置。

导航到项目(在“项目导航器”中选择它),选择目标列表中的应用程序目标,然后单击“构建设置”选项卡。在“打包”部分下,确保“Info.plist文件”已正确设置为位置/文件名。


3
在我从“项目浏览器”重命名项目之后,开始出现了构建错误。这个解决方案有助于解决问题。谢谢。 - Vishal Chaudhry
2
再次感谢(这是我第二次这样做),每当我本地化文件并将其移动到en.lproj中时,它总是发生,因此以前的引用无法找到它 - 在路径目录中插入解决了这个问题。 - Rambatino
我们必须确保在提及 plist 文件的正确路径时,同时提及其正确名称。太好了,它可以工作了。 - Pradeep Reddy Kypa
我知道这是一个老问题,但我遇到了这个问题,并且我的info.plist路径(appname-info.plist)在项目打包设置下是绝对正确的。我已经三次和四次检查过了。还有其他想法吗? - mreynol
@mreynol 没有更多的信息是不行的。例如,精确的错误消息,您使用的精确设置(尝试截取所有级别的构建设置的屏幕截图,而不仅仅是“组合”),等等。帮助我们帮助你。 - Joshua Nozzi
@JoshuaNozzi,请查看以下屏幕截图。目前不确定还需要提供什么其他信息,也许您能发现我没有注意到的问题。 - mreynol

15

我知道已经有一段时间了,但我也遇到了同样的问题,而我找到的答案对我来说并不清楚,所以我决定制作一份带有许多截图的说明。

1)首先,在Xcode中打开右侧面板,然后单击您的.plist文件:

这是图片描述

2)其次,在右侧面板上选择“相对于项目”位置,并复制其下方的链接:

这是图片描述

3)第三步,进入主项目设置,选择您的目标,然后单击“构建设置”选项卡:

这是图片描述

4)最后,在搜索字段中键入Info.plist,双击现有路径并粘贴您之前复制的链接:

这是图片描述

最后,清除项目Shift+Cmd+K并重新运行。


只是想添加一条评论,您的解决方案仍然适用于最新的Xcode。 :) - Adrian P
这就是我的问题所在。构建设置中的目标引用了一个旧位置。 - Joshua Olson
谢谢,我终于解决了这个问题。在我看来,这是最好的答案。 - Alice Rocheman

13

前往targets。右键单击测试目标。yourProjectTests并将其删除。


12
删除目标有什么帮助吗?这就像告诉一个遇到构建错误的用户删除他们的项目,好像这本身就是解决方案。希望你永远不要从事医学... - Joshua Nozzi
和Joshua一样,这个建议就像是在感冒时杀死病人一样。我不明白为什么这个答案有这么多赞。 - Alice Rocheman

11

Xcode 8

在左侧面板中选择项目文件,然后打开“general”选项卡,他们添加了一个很好的按钮,让您可以选择文件。(您可能还需要将其添加到项目结构中)

输入图像描述


10

我遇到的问题是,在合并之后,一些.storyboard文件的部署目标不同。通过将所有故事板文件设置为使用“项目部署目标”来解决此问题。 输入图像描述


1
这对我在XCode7中的问题进行了修复。 - Trianna Brannon

9
对我来说,这是因为启用了plist文件的本地化(在springboard上提供应用程序的语言特定标识符)的结果。

目标>构建设置>打包>info.plist文件键中,我将路径从AppName/AppName-info.plist更改为AppName/Base.lproj/AppName-info.plist,一切都正常工作。

请记住,它是小写字母L而不是大写字母I。

希望这可以帮助您。


1
这可能允许您编译和运行,但它似乎并没有实际使用本地化的 info.plist... - royherma
我暂时放弃了使用本地化应用程序名称的想法。 - AceN
我认为你们把info.plist和infoPlist.strings搞混了。我之前也遇到过同样的问题,后来发现了自己的错误并尝试使用infoPlist.strings文件。结果没有出现任何意外,它可以正常工作。 - Michael Shang

1
在Targets>Packaging>Info.plist文件中,确保文件路径正确。

1

如果在Xcode 4.6中,项目->目标/信息下看不到appname-Info.plist文件,请转到摘要选项卡,它会提示你选择正确的文件。


0

对我来说,问题在于错误是指向我正在使用的库的Info.plist,而不是项目中实际的.plist文件。

也许这会帮助未来的某个人。


你是如何发现问题的,最终采取了什么措施来解决它?我的错误信息太笼统了,我无法确定它指的是哪个“Info.plist”文件。右键单击错误信息并在Finder中打开,会将我带到之前在Finder中打开的任何文件,因为该文件不存在。 - RebelFist
@RebelFist:我在使用红色时,将Info.plist文件放在了我的项目库中。因此,我的建议是在您的项目中查找红色文件。 - Adrian
谢谢您的回复!最终发现问题是一个文件夹指向了错误的位置,尽管其中的所有项目都指向正确的位置。因此,一切看起来都很好,但在构建时我们收到了一个错误> <。 - RebelFist

0
在我的情况下,文件是存在的,但是格式不正确。如果您最近在文本编辑器中编辑了Info.plist,请撤销该更改,并在不破坏标记有效性的情况下重试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接