Xcode - дублирующая цель - новая цель не может быть создана - PullRequest
5 голосов
/ 28 декабря 2010

с использованием Xcode 3.2.5 на 10.6.6 (10J521) и теперь 10J537.

У меня есть проект Xcode, содержащий 1 Target: «MyApp».Он успешно собирается и запускается.

Помимо исходных файлов и файлов ресурсов, объект Target содержит этап сборки «Copy Files», в который копируется файл «Sparkle.framework». Каркас находится в том же каталоге, что и проект.

Я хочу продублировать эту цель.Предпринятые шаги:

  • Сделал «Очистить все цели».

  • Щелкните правой кнопкой мыши на цели «MyApp» в XCode, а затем выберите «Дублировать ".

  • Переименована дублируемая цель в" MyAppTarget2 ".

  • Выберите" MyAppTarget2 "в качестве активной цели из всплывающего меню вверхний левый.

  • Сделал "Build".

Проблема:

error: Sparkle/Sparkle.h: No such file or directory

На линии:

#import <Sparkle/Sparkle.h>  // In MyAppDelegate.mm

Это озадачивает!Дополнительная информация:

  • Кажется, что каждый шаг сборки был воспроизведен в дублированной цели, включая фазу "Копирование файлов".

  • SparkleСам файл .framework находится в папке проекта.

  • На этапе «Связать двоичные файлы с библиотекой» в «MyApp» и «MyAppTarget2» я связываюсь с Sparkle.framework ввыше места.«Получить информацию» о связанных двоичных отчетах о том, что она является членом обеих целей.

  • Если я щелкну правой кнопкой мыши файл Sparkle.framework на этапе сборки «Копирование файлов»дублируемой цели и выберите «Показать в Finder», после чего отобразится правильный файл Sparkle.framework.Требуемый файл существует в Sparkle.framework / Headers / Sparkle.h

  • Если я вернусь к исходной цели «MyApp», он будет успешно скомпилирован и запущен.

Я что-то здесь не так делаю?Спасибо.

[РЕДАКТИРОВАТЬ - РЕШЕНО]

Ответы [ 2 ]

14 голосов
/ 28 декабря 2010

Я посмотрел настройки Build для каждой предположительно идентичной цели.

Под «Каркасными поисковыми путями» первая цель имела следующее:

$ (унаследовано) "$ (SRCROOT)"

Но у дублированной цели был следующий путь:

$ (унаследовано) \ "$ (SRCROOT) \"

Похоже, что Xcode неправильно экранировал путь во время процесса дублирования. Уч.

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

Я знаю, что вы уже решили эту проблему самостоятельно, но я подумал, что поделюсь своим исправлением для этой проблемы (как это случилось со мной несколько раз). Мне всегда удавалось избавиться от этой ошибки, удалив рассматриваемый файл и просто воссоздав его. Я понятия не имею, почему это работает ... но, как это часто бывает с XCode, кажется, что работает какой-то Voodoo.

...