Xcode: добавление проекта в качестве зависимости сборки

Я играю с soundcloud api, в инструкциях говорится:

  • перетащите SoundCloudAPI.xcodeproj в свой проект
  • добавить его как зависимость сборки

Я могу довольно легко перетащить проект, но как выполнить следующий шаг?


person Aran Mulholland    schedule 18.11.2010    source источник
comment
Работает ли это с последней версией xCode? У меня проблемы, которых у меня никогда раньше не было, он просто добавляет файл, а не проект.   -  person Richard J. Ross III    schedule 20.10.2011
comment
Вы должны задать это как отдельный вопрос. Я давно не смотрел на это, однако в последней версии xCode у вас есть концепция рабочего пространства, которое может состоять из нескольких проектов, посмотрите на это.   -  person Aran Mulholland    schedule 21.10.2011
comment
Здесь представляют собой отличные пошаговые инструкции о том, как добавить зависимости статической библиотеки в более поздние версии Xcode.   -  person filitchp    schedule 19.10.2012
comment
@ RichardJ.RossIII Я столкнулся с той же проблемой. Затем я обнаружил, что причина моей проблемы в том, что проект lib уже добавлен в какое-то другое рабочее пространство. Поэтому я скопировал папку проекта lib и добавил скопированный проект в рабочую область, над которой хочу работать. Надеюсь, это кому-то поможет.   -  person Xiaoqi    schedule 05.06.2017
comment
@ RichardJ.RossIII убедитесь, что проект, который вы пытаетесь добавить, не открыт в XCode. Если он открыт в XCode, он добавит только файл .xcodeproj, а не весь проект.   -  person Dog    schedule 11.09.2017
comment
@Wonder Dog: Верно !, это решило мою проблему   -  person user18853    schedule 26.07.2018


Ответы (7)


Чтобы добавить его как зависимость, сделайте следующее:

  • Выделите добавленный проект в проводнике файлов в xcode. В окне обозревателя каталогов справа должен отображаться файл с расширением .a. Под столбцом цели (значок цели) есть флажок, отметьте его.
  • Щелкните правой кнопкой мыши цель (под элементом целей в проводнике файлов) и выберите «Получить информацию».
  • На вкладке «Общие» находится раздел «Прямые зависимости». Нажмите кнопку "плюс"
  • Выберите проект и нажмите Добавить цель.
person theChrisKent    schedule 18.11.2010
comment
Для чего нужен 1-й шаг? Поскольку я все еще могу сделать следующие три шага, не делая этого. - person Aran Mulholland; 22.11.2010
comment
есть идеи, что делает этот первый шаг? - person Aran Mulholland; 02.12.2010
comment
Это связывает проект (ы) с вашим. Это сообщает компоновщику, где существуют символы, которые определены только в этом проекте, и предотвращает получение неопределенных ошибок компоновщика символов. - person theChrisKent; 02.12.2010
comment
Это странно. Xcode не позволяет мне добавлять прямую зависимость. Что я должен делать? - person Herberth Amaral; 09.05.2011
comment
Я пробовал это, но это не работает. Нужные мне фреймворки все еще красные, как будто их нет. - person Eric Brotto; 30.05.2011
comment
Эти инструкции сбивают меня с толку, поскольку я почти уверен, что они предназначены для более старой версии Xcode. См. Ответ @ filitchp для ссылки на инструкции, которые работают с Xcode 5. - person Liron Yahdav; 08.04.2014
comment
Не забудьте закрыть .xcodeproj, который вы пытаетесь добавить, если он уже был открыт в Xcode. Вы не можете углубиться в файловую структуру или добавить .framework вложенного проекта, если тот же проект уже открыт на другом экране. Если вы закроете оба экземпляра Xcode и снова откроете только один проект, он будет работать. - person Lucas van Dongen; 22.11.2017
comment
Только что осознал ценность цитаты. Картинка стоит тысячи слов - после просмотра ответа и Xcode в течение 30 минут. :( - person Vigneshwaran.m; 20.11.2019

  1. Выберите свой проект в навигаторе слева.
  2. Откройте ящик на средней панели и выберите свою цель.
  3. Выберите этапы сборки
  4. Целевые зависимости - это вариант на этом этапе.
person theprojectabot    schedule 20.05.2016

Сложно для новичка вроде меня - вот снимок экрана с его описанием.
Xcode 10.2.1

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

person chenop    schedule 04.05.2019
comment
Хорошо, то же самое для Xcode 12 !! просто перетащите файл *.xcodeproj, отмените выбор параметра копирования и добавьте его как зависимость с помощью кнопки + (которую можно найти с помощью шагов, показанных на снимке экрана). - person Top-Master; 17.05.2021

В разделе TARGETS вашего проекта щелкните правой кнопкой мыши цель проекта (имя должно совпадать с именем вашего проекта) и выберите GET INFO, затем на вкладке GENERAL вы увидите DIRECT DEPENDENCIES, просто щелкните [+] и выберите SoundCloudAPI .

person WrightsCS    schedule 18.11.2010

Просто закройте проект, который хотите добавить, затем перетащите файл.

person Alok    schedule 09.08.2019

Xcode 10

  1. перетащите проект в другой - это называется cross-project references [О программе]
  2. добавить добавленный проект в качестве зависимости сборки - это называется Explicit dependency [About]
//Xcode 10
Build Phases -> Target Dependencies -> + Add items 

//Xcode 11
Build Phases -> Dependencies -> + Add items 

В диалоговом окне Choose items to add: вы увидите только цели из вашего проекта и подпроекта.

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

person yoAlex5    schedule 07.09.2019
comment
Не удается найти этапы сборки - ›Целевые зависимости, но вместо этого я вижу этапы сборки -› Зависимости в xcode 11.3 - person krithi k; 01.04.2020

Сегодня столкнулся с такой же проблемой. В результате первого запуска я получил следующую ошибку:

Лексическая проблема или проблема препроцессора: файл «SDKProjectName * / * SDKProjectName.h» не найден.

Но перед запуском я, очевидно, добавил свой SDK в демонстрационный проект, просто перетащив файл .xcodeproj в исходное дерево моего тестового проекта. После этого я перешел на вкладку Build Phases в настройках основного файла xcodeproj (демонстрации) и добавил свой SDK в качестве целевой зависимости и встроил платформу в соответствующие вкладки.

Но в результате я получил ошибку выше!

Итак, проблема заключалась в пустой строке в параметре Пути поиска заголовков. Я просто написал "../**" как значение для этого ключа, и проект успешно скомпилирован. Итак, после этого вы можете добавить #include <SDKName/SDKName.h> в любой проект, который включает этот SDK.

пс. Мое тестовое приложение было создано в корневой папке SDK.

person hamsternik    schedule 05.01.2017