Попередження: Фаза збірки ресурсів копіювання пакета містить файл Info.plist цієї цілі


270

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

Попередження: Фаза збірки ресурсів копіювання пакета містить файл Info.plist цієї цілі "MyApp-Info.plist"

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

Що означає це попередження? Чи є якийсь спосіб змусити його піти?


Не потрібно додавати Info.plist до кожної цілі. Натомість у кожному встановленні цільової збірки -> Упаковка -> Файл Info.plist -> місцеположення до цільового Info.plist
onmyway133

Відповіді:


595

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

Витяг:

Ви отримуєте це попередження, оскільки ви, ймовірно, додали файл Info.plist до фази збірки ресурсів для копіювання, як показано на малюнку

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

Параметр збірки INFOPLIST_FILE визначає назву Info.plist, пов’язаного з вашою ціллю. Під час створення цілі Xcode зчитує цей параметр збірки та копіює згаданий Info.plist у пакет додатків. Оскільки Xcode автоматично обробляє Info.plist, не слід додавати його до фази збирання ресурсів Copy Bundle Resources або робити його цільовим членом.

Щоб вирішити це попередження, виберіть свій Info.plist на етапі збірки ресурсу пакету, як показано на малюнку 1, а потім натисніть кнопку Видалити (-), щоб видалити його з фази.


Яка проблема буде викликана, якщо цього не вирішити?
хасан

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 ще раз, але не вибирайте призначення та зніміть прапорець "Додати до цілей".


2
Зараз я бачу, що НЕ зніміть прапорець "додати до цілей" під час копіювання файлу plist у мій проект, і це стало причиною цієї проблеми. Щоб вирішити проблему, я дотримувався кроків у "правильній відповіді", хоча видалення та повторне додавання без додавання до цілей також би спрацювало. =)
RanLearns

1
Це працювало для мене в Xcode 6.4. Обрана відповідь не відповіла.
kraftydevil

2

У випадку, якщо хтось зіткнеться з цим за допомогою Xcode 3, для його виправлення натисніть на файл .plist у лівій колонці в розділі "Групи та файли", а у верхньому правому куті зніміть прапорець біля імені файлу .plist у стовпці. під значком бичачого. Вам знадобиться зменшити масштаб редактора (Вид -> Збільшити редактор), щоб відобразити прапорці.


0

Ще одне рішення:

Можливо, ви випадково видалили файл проекту із основних даних "цільового членства".

  1. Виберіть свою головну історію з навігатора проектів зліва

  2. Перейдіть до "інспектора файлів" (перша вкладка) праворуч

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

  4. Увімкніть прапорець

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

  6. Примітка. У Info.plist не повинно бути включено цільове членство.

Сподіваюсь, це допомагає.


-2

Як зауваження ... Я спробую написати приємний радіолокатор про це, але це дійсно дивно, як Локалізація обробляється на Дошках розкад у Xcode. Якщо ви запитаєте "Показати у Finder", ви не побачите вибраний файл .storyboard, а замість нього папку, що містить його. Я думаю, що це пов’язано з локалізацією дошки розкадрувань. Як тільки я змінив цю мову з англійської на німецьку (і, таким чином, більше не маючи файлу ні в root, ні в en.lproj), у мене виникли проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.