Xcode 4.2, як включити один проект до іншого?


75

Я продовжую шукати, але не можу знайти чіткого і простого пояснення того, як включити один проект XCode разом з усіма його підкласами до іншого проекту. Я регулярно бачу подібні речі у зразках проектів, які завантажую з Інтернету, але сам не знаю, як це зробити.

У XCode, поряд із .h та .m файлами та папками, є цілий новий проект, починаючи з синьої піктограми проекту xcode, який можна розширити, щоб містити все в проекті.

Будь ласка, може хтось поетапно пояснить мені, що мені потрібно зробити, щоб додати один проект XCode в інший? Я бачив купу тонких лайнерів, таких як "шляхи пошуку заголовків", але це не говорить мені багато про що.

ОНОВЛЕННЯ: Перечитавши документацію, я зрозумів, що проект, який потрібно включити, потрібно перетягнути НА СИНІЙ значок проекту батьківського проекту. Регулярні джерела можна перетягувати куди завгодно, але проект потрібно перетягувати на проект.

Дякую!

Відповіді:


140

Це має великий сенс, коли ви намагаєтесь додати статичну бібліотеку до своїх проектів xcode. Для цього потрібно виконати кілька кроків. Спочатку переконайтеся, що проект статичної бібліотеки не відкритий у XCode.

Потім спершу перетягніть файл статичної бібліотеки xcodeproj (із Finder) на проект xcode вашого додатка. StaticLib

Після цього вам потрібно додати цю бібліотеку до етапів побудови вашого додатка. Клацніть на основний проект і виберіть вкладку BuildPhases цілі.

Фази побудови

Ви захочете додати інший проект до цільових залежностей та до розділу «Бінарні посилання з бібліотеками».

Нарешті, програма повинна знати ваші заголовки. Отже, вам потрібно додати шлях до класів статичних бібліотек до ваших шляхів пошуку в заголовку користувача. Перейдіть до налаштувань побудови основної цілі та знайдіть шлях пошуку заголовка.

Шлях пошуку заголовка

Це змусить вашу програму дізнатися про нову статичну бібліотеку.

Іноді вам потрібно додати кілька інших прапорів Linker. У Налаштуваннях побудови знайдіть інші прапори Linker та додайте -all_loadта-ObjC

Інші прапори Linker

Сподіваюся, це допомагає, я знаю, що коли я вперше намагався це зробити, я деякий час бився головою об стіну.


Якщо ця публікація була корисною, позначте як відповідь. :) дайте мені знати, якщо у вас є запитання.
MobileOverlord

23
Важлива деталь, хлопці: Проект, який ви перетягуєте, не повинен бути відкритим у Xcode. На випадок, якщо хтось зіткнеться з такою ж проблемою, як і я. :)
inket

1
@MobileOverlord чи зможете ви оновити цю публікацію? Ваші вказівки дуже корисні, але, здається, не точні для XCode 6. Коли я шукаю шляхи пошуку заголовка користувача в налаштуваннях збірки, я можу знайти лише "Завжди шукати шляхи користувачів"
сонячне

@sunny Вам потрібно переконатися, що у налаштуваннях збірки відображаються параметри "Усі", а не просто "Основні". Можливо, ви встановите базове значення. Я розгляну і оновлю знімки екрана.
MobileOverlord

1
@MobileOverlord Як би ви зберегли відносні шляхи заголовків, якби поділилися цим у репо з іншими розробниками?
NYC Tech Engineer

5

Переконайтесь, що проект, який ви хочете додати як підпроект, він не відкритий, перш ніж додавати його або скидати.


1
Дякую! Для мене це було порятунком життя.
Vibhor Goyal

@VibhorGoyal Ласкаво просимо, я теж боровся з цим деякий час тому :).
JP Illanes

4

Ви можете просто перетягнути будь-який файл проекту xcode (* .xcodeproj) у навігаційну область проекту потрібного батьківського проекту.

Потім вам може знадобитися додати цільові залежності, залежно від ваших потреб.

Це ти маєш на увазі?


Частиною причини, чому я запитую, є те, що я спробував перетягнути .xcodeproj, і він не скопіював усі підпапки. Гірше того, коли я спробував видалити .xcodeproj, щоб спробувати перетягнути його знову, я випадково видалив .xcodeproj з диска! Це був веселий день .... ні
Алекс Стоун

Це тому, що проект XCode зберігає посилання на файли, а не фактичні копії. Ось чому видалення вашого файлу фактично видалило оригінальний файл з диска. А оскільки зберігаються лише посилання, підпапки не обов'язково копіюються (лише якщо на них посилаються в проекті).
JiaYow

Алекс, почніть користуватися github або якоюсь службою svn. Таким чином ви не програєте і можете пограти.
Метью Фергюсон

4

Обов’язково виберіть « створити групи » замість «створити посилання на папки». Якщо ваша папка синя замість жовтої, то у вас є посилання на папку. Папка повинна бути жовтою.


1

перетягніть файл xcode до іншого файлу xcode із пошуку. Він попросить вас скопіювати файл, а потім встановіть прапорець, і він скопіюється у ваш проект.


0

У вас є два варіанти додавання вихідного коду у ваш проект:

  1. Explicit dependency[Про] через створенняtarget dependencyза допомогоюcross-project reference [Про]
  2. Implicit dependency[Про], якщо вихідний код є частиною того жWorkspace [Про]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.