Два проекта в рабочих пространствах xcode4 (ошибка #import)
Я действительно пытаюсь заставить это работать в xcode 4.
У меня есть один проект, который я буду использовать повторно во многих приложениях (сети), поэтому создаю рабочее пространство и добавлю два моих проекта. Все идет нормально....
Здесь он терпит неудачу.
#import "JSONRequest.h"
Без видимой причины. Он автоматически завершает имя файла заголовка. Я думал, что это имеет какое-то отношение к "схеме" (также новой в xcode 4), поэтому я попытался добавить свою сетевую цель на этапе сборки. Изменение порядка их... установите "Общий" в разделе "Схемы управления". Я пробовал так много разных комбинаций настроек без каких-либо успехов. И сообщение об ошибке получается:
JSONRequest.h: No such file or directory
Если у вас есть ключ, пожалуйста, дайте мне знать.
Ответы
Ответ 1
Вы можете добавить заголовок или исходную папку вашего проекта, на который вы ссылаетесь на пути поиска заголовков.
- Нажмите на цель, импортирующую JSONRequest.h.
- Нажмите "Настройки сборки".
- Введите "Пути поиска заголовков" в поле поиска.
- Дважды щелкните ячейку значения.
- Щелкните знак +.
- Задайте путь к проекту, к которому вы обращаетесь. Скажем, это называется JSONlib. Путь относится к корню ссылающегося проекта (проект, который использует JSONlib). Например:../JSONlib/src/headers/или везде, где находится файл .h.
- Нажмите.
- Очистите и затем создайте.
Более подробную информацию об этой проблеме вы найдете на форумах разработчиков Apple. Удачи.
Ответ 2
Что вы действительно пытаетесь сделать?
Если у вас есть весь проект Xcode, вы намерены делиться между различными продуктами, которые обычно предполагают, что ваш проект создает одну или несколько целей (например, фреймворк и т.д.). Следовательно, ваш "общий" проект должен иметь возможность самостоятельно строить структуру независимо от рабочей области, в которой она содержится, правильно?
Предположим, что это каркас. В большинстве случаев Xcode может определить зависимость, просто добавив продукт framework к фазе сборки Link (предполагаемого) приложения, используя фреймворк. Готово. Xcode должен знать, чтобы сначала создать цель проекта каркаса, поскольку он связан с созданием целевой задачи проекта.
Итак, ваша проблема, скорее всего, связана с пониманием того, где Xcode ищет файлы. Поскольку проекты в рабочих пространствах совместно используют эту папку для создания рабочей области, они могут "видеть" друг друга. Но в случае с каркасом простой импорт по имени файла не будет сокращать его. Вам понадобится:
#import <MyNetworkingFramework/MyNetworkingFramework.h>
Поскольку вы включаете в себя определенный заголовок (JSONRequest.h) (который должен быть одним из публичных заголовков в фазе построения заголовков целевой целевой среды), вам потребуется:
#import <MyNetworkingFramework/JSONRequest.h>
Если ваш "общий" проект не является основой, вам нужно будет изменить свой вопрос, чтобы включить более подробное описание ваших двух проектов и их целей.
Ответ 3
Это сработало для меня,
В строках → Путь поиска заголовков → Добавить запись ниже
$(SRCROOT) and mark it as recursive.
Если выше не работает, вы также можете попробовать следующий путь,
<path-of-other-project> and mark it as recursive.
Надеюсь, это поможет вам! (может потребоваться очистка или перезапуск рабочей области)