Xcode无法打开Info.plist - 错误说“没有这样的文件”

时间:2011-05-26 22:36:58

标签: xcode xcode4 info.plist

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

  

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

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

13 个答案:

答案 0 :(得分:139)

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

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

答案 1 :(得分:15)

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

答案 2 :(得分:10)

对我来说,问题是一些.storyboard文件在合并后有不同的部署目标。通过将所有故事板文件设置为使用“项目部署目标”来修复它。 enter image description here

答案 3 :(得分:9)

Xcode 8

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

enter image description here

答案 4 :(得分:8)

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

目标>构建设置>打包> info.plist文件 键中,我更改了 AppName / AppName-info.plist AppName / Base.lproj / AppName-info.plist ,一切都按预期工作。

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

希望这有帮助。

答案 5 :(得分:1)

在Xcode 4.6下如果appname-Info.plist在项目下不可见 - >目标/信息,转到摘要选项卡,它将要求appname-Info.plist文件。从建议中选择正确的文件。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

我知道已经有一段时间了,但是我遇到了同样的问题,而且我发现的答案对我来说也不是很清楚,因此我决定使用大量屏幕截图进行说明。

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

enter image description here

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

enter image description here

3)第三,转到主项目设置,选择目标,然后单击“构建设置”选项卡:

enter image description here

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

enter image description here

最后,清理项目Shift + Cmd + K,然后重新运行。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

也许这将有助于将来。

答案 10 :(得分: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验证器确实说过XML是正确的(但事实并非如此),我使用了

plutil filename.plist

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

答案 11 :(得分:0)

这个问题对我来说也是一样,当我合并其他项目的项目时也发生了,上面两个项目的设置有所不同,请在Text Edite中打开info.plist文件,解决问题然后保存,一切好!

答案 12 :(得分:0)

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