Предупреждение. Фаза сборки Copy Bundle Resources содержит файл Info.plist этой цели.

270

Я разделил проект на две сборки и дал каждой из них plistфайл. Все работает нормально, но я продолжаю получать это предупреждение о сборке:

Предупреждение. Фаза сборки Copy Bundle Resources содержит файл Info.plist этого целевого объекта «MyApp-Info.plist».

Я получаю это, когда пытаюсь построить MyApp. Построение для второй цели дает ту же ошибку (с SecondTarget-Info.plistпредупреждением). Я не уверен, почему это предупреждение, так как я хочу, чтобы сборка содержала этот .plistфайл. Каждый из .plistфайлов имеет одно целевое членство (для своей сборки).

Что означает это предупреждение? Есть ли способ заставить его уйти?

Неван Кинг
источник
Вам не нужно добавлять Info.plist для каждой цели. Вместо этого в каждой целевой настройке сборки -> Упаковка -> Файл Info.plist -> местоположение целевого
файла

Ответы:

595

https://developer.apple.com/library/content/qa/qa1649/_index.html

Выдержка:

Вы получаете это предупреждение, потому что вы, вероятно, добавили свой файл Info.plist в фазу сборки Copy Bundle Resources, как показано на рисунке

введите описание изображения здесь

Параметр сборки INFOPLIST_FILE указывает имя Info.plist, связанного с вашей целью. При создании цели XCode читает этот параметр сборки и копирует ссылочный Info.plist в ваш пакет приложений. Поскольку XCode автоматически обрабатывает Info.plist, вы не должны добавлять его в фазу сборки Copy Bundle Resources или делать его целевым членом.

Чтобы устранить это предупреждение, выберите ваш Info.plist в фазе сборки Copy Bundle Resource, как показано на рисунке 1, затем нажмите кнопку «Удалить» (-), чтобы удалить его из фазы.

JWWalker
источник
Какая проблема будет вызвана, если это не будет решено?
Хасан
2
@ hasan83, вы получите предупреждение о сборке, и собранный продукт будет содержать дополнительную копию Info.plist, занимающую немного места.
JWWalker
1
@kraftydevil, есть ли в вашем проекте какие-либо подпроекты, так что предупреждение может относиться к цели, отличной от той, которую вы исследовали?
JWWalker
5
Все еще актуально, 7 лет спустя.
jungledev
1
Решение работало для меня на Xcode 9. @jungledev по-прежнему актуально, потому что Apple занята обновлением версий Swift, а не разработкой Xcode, чтобы постоянно показывать нам решение для странных ошибок странных чисел.
MBH
65

Чтобы исправить в xcode 4:

1) Удалите ссылку на ваш файл info.plist, выбрав ее и нажав «Удалить».

2) Снова добавьте файл info.plist, но не выбирайте пункт назначения и снимите флажок «Добавить к целям».

Buchannon
источник
2
Теперь я вижу, что снятие флажка «добавить к целям» при копировании файла plist в мой проект стало причиной возникновения этой проблемы. Чтобы устранить проблему, я следовал инструкциям в «правильном ответе» выше, хотя удаление и повторное добавление без добавления к целям также сработало бы. =)
RanLearns
1
Это работало для меня в Xcode 6.4. Выбранный ответ не сделал.
kraftydevil
2

В случае, если кто-то сталкивается с этим с Xcode 3, чтобы исправить это, нажмите на файл .plist в левом столбце в разделе «Группы и файлы», а в правой верхней части снимите флажок рядом с именем файла .plist в столбце. под значком яблочка. Вам понадобится уменьшить редактор (View -> Zoom Editor Out), чтобы показать флажки.

Марк
источник
0

Другое решение:

Возможно, вы случайно удалили файл проекта из основных данных «целевого членства».

  1. Выберите ваш Main.storyboard из навигатора проекта слева

  2. Перейдите в «инспектор файлов» (первая вкладка) справа

  3. Найдите список «Целевое членство»

  4. Включить флажок

  5. Дайте ему немного времени на обработку, но пока вы это делаете, проверьте также LaunchScreen.storyboard, .xcdatamodelid, Assets.xcassets и все файлы .swift в вашем проекте. Все они должны были быть включены для целевого членства.

  6. Примечание. В Info.plist не должна быть включена проверка целевого членства.

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

CrazyOne
источник
-2

Просто как примечание ... Я попытаюсь написать хороший Радар об этом, но это действительно странно, как локализация обрабатывается в Раскадровках в XCode. Если вы спросите «Показать в Finder», вы не увидите выбранный файл .storyboard, а вместо этого содержащую его папку. Я думаю, что это связано с локализацией раскадровки. Как только я изменил это с английского на немецкий (и, таким образом, у меня больше не было файла ни в root, ни в en.lproj), у меня начались проблемы.

StuFF mc
источник