Xcode не может открыть Info.plist - ошибка говорит "нет такого файла" - PullRequest
59 голосов
/ 27 мая 2011

Я переключился на Xcode 4 и загрузил свой проект, который отлично работал в Xcode 3. Когда я запускаю его, я получаю сообщение об ошибке:

Файл «Info.plist» не может быть открыт, поскольку такого файла нет.

Я посмотрел на файл в Xcode, и он там. Так почему же его нельзя открыть?

Ответы [ 12 ]

139 голосов
/ 28 мая 2011

Недостаточно того, что файл существует в папке проекта Xcode.Вы убедились, что файл правильно указан в настройках сборки целевого приложения, поэтому он правильно скопирован в комплект приложения?Это не совсем то же самое, что стандартный ресурс (т. Е. Он не стал членом цели в наборе флажков целевого членства), а скорее параметр сборки из-за его важности в правильно отформатированном комплекте.* Перейдите к проекту (выберите его в навигаторе проекта), выберите цель приложения в списке целей, затем перейдите на вкладку «Настройки сборки».В разделе «Упаковка» убедитесь, что в «файле Info.plist» правильно указано местоположение / имя файла.

15 голосов
/ 13 января 2015

перейти к целям. щелкните правой кнопкой мыши на цели теста. yourProjectTests и удалите его

10 голосов
/ 31 августа 2015

Для меня проблема заключалась в том, что некоторые файлы .storyboard имели различные цели развертывания после слияния. Исправлено это путем установки всех файлов раскадровки для использования «Project Deployment Target». enter image description here

9 голосов
/ 15 ноября 2016

Xcode 8

Выберите файл проекта на левой панели. Затем откройте вкладку «Общие», и они добавили приятную кнопку, которая позволяет вам выбрать файл. (Возможно, вам придется добавить его и в структуру вашего проекта)

enter image description here

8 голосов
/ 18 ноября 2015

Для меня это произошло в результате включения локализации файла plist (чтобы дать языковой идентификатор приложения на трамплине).

В target> настройки сборки> упаковка>файл info.plist ключ я изменил путь с AppName / AppName-info.plist на AppName / Base.lproj / AppName-info.plist и все работает, как и ожидалось.

Помните, что его lproj как маленький L, а не заглавная I.

Надеюсь, это поможет.

1 голос
/ 05 октября 2018

Я знаю, что это было давно, но я столкнулся с той же проблемой, и ответы, которые я нашел, были не очень ясны для меня, поэтому я решил сделать инструкцию с кучей скриншотов.

1) Сначала откройте правую панель в xcode и нажмите на свой файл .plist:

enter image description here

2) Secondвыберите Relative to project местоположение на правой панели и скопируйте ссылку под ней:

enter image description here

3) В-третьих, перейдите к основному проектунастройки, выберите вашу цель и нажмите на вкладку Настройки сборки:

enter image description here

4) И, наконец, введите Info.plist в поле поиска, дваждынажмите на существующий путь и вставьте ссылку, которую вы скопировали ранее:

enter image description here

В конце очистите проект Shift + Cmd +K и запустите заново.

1 голос
/ 17 октября 2013

В разделе Targets> Packaging> Info.plist убедитесь, что путь к файлу указан правильно.

1 голос
/ 29 июня 2013

под Xcode 4.6, если appname-Info.plist не виден в проекте -> target / info, перейдите на вкладку сводки, и он запросит файл appname-Info.plist.Выберите правильный файл из предложений.

0 голосов
/ 28 декабря 2018

Эта проблема произошла со мной так же, это произошло, когда я слил проект из другого проекта, некоторые настройки проекта отличались выше двух, откройте файл info.plist в Text Edite , решите конфликтующее, затем сохраните его , все идетЧто ж!

0 голосов
/ 31 мая 2017

В моем случае один из ключей был пропущен при добавлении флага соответствия 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)

...