67

我切换到 Xcode 4 并加载了我的项目,该项目在 Xcode 3 中完美运行。当我运行它时,我收到一条错误消息:

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

我查看了 Xcode 中的文件,它就在那里。那为什么打不开呢?

4

13 回答 13

150

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

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

于 2011-05-28T15:50:06.487 回答
14

去目标。右键单击测试目标。yourProjectTests 并删除它

于 2015-01-13T12:16:56.730 回答
11

Xcode 8

在左窗格中选择项目文件。然后打开常规选项卡,他们添加了一个不错的按钮,可让您选择文件。(您可能还必须将其添加到您的项目结构中)

在此处输入图像描述

于 2016-11-15T15:00:51.817 回答
10

对我来说,问题是一些 .storyboard 文件在合并后有不同的部署目标。通过将所有情节提要文件设置为使用“项目部署目标”来修复它。 在此处输入图像描述

于 2015-08-31T20:17:09.107 回答
10

我知道已经有一段时间了,但是我遇到了同样的问题,而且我找到的答案对我来说不是很清楚,所以我决定用一堆截图做一个说明。

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

在此处输入图像描述

2)其次,Relative to project在右侧面板上选择位置并复制其正下方的链接:

在此处输入图像描述

3)第三,进入主项目设置,选择你的目标并点击构建设置选项卡:

在此处输入图像描述

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

在此处输入图像描述

最后,清理项目Shift++CmdK重新运行。

于 2018-10-05T18:32:47.193 回答
8

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

目标>构建设置>包装>info.plist文件密钥中,我将路径从AppName/AppName-info.plist更改为AppName/Base.lproj/AppName-info.plist,一切都按预期工作。

请记住,它的 lproj 是小 L 而不是大写 I。

希望这可以帮助。

于 2015-11-18T13:53:35.267 回答
1

在 Xcode 4.6 下,如果 appname-Info.plist 在 project -> target/info 下不可见,请转到摘要选项卡,它将询问 appname-Info.plist 文件。从建议中选择正确的文件。

于 2013-06-29T07:39:07.423 回答
1

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

于 2013-10-17T04:51:29.137 回答
0

就我而言,该文件在那里,但格式错误。如果您最近在文本编辑器中编辑了 Info.plist,请撤消该更改,然后重试,而不会破坏标记的有效性。

于 2015-09-16T12:19:04.053 回答
0

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

也许这将有助于将来的某人。

于 2016-01-24T12:28:00.743 回答
0

在我的情况下,添加 ATS 合规标志时遗漏了其中一个键

<key>NSAppTransportSecurity</key>

而不是正确的如下

<true/>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>some-service1.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
        <key>some-service2.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
    </dict>
</dict>

我有这个

<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>some-service1.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
        <key>some-service2.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
    </dict>
</dict>

尽管一些在线 XML Validators 确实说 XML 是正确的,(事实并非如此),但我使用

plutil filename.plist

转到存在 plist 文件的目录(从终端)并了解有问题的确切行号参考:(https://stackoverflow.com/a/32494850/5438240

于 2017-05-31T11:55:53.937 回答
0

这个问题我也遇到过,是从其他项目合并项目时出现的,上面两个项目设置有些不同,在Text Edite中打开info.plist文件,解决后保存,一切顺利!

于 2018-12-28T04:05:20.757 回答
0

对于本机反应,转到 ios/{project name}/Info.plist 在 vs code 或任何其他中打开它,并检查所有键和字符串在大多数情况下是否必须在里面!您必须更改它以安装 lib 并在其中犯了一些错误。

于 2021-03-25T18:02:41.957 回答