Ошибка сборки с использованием проекта XCode с целью OS X Framework и статической библиотекой iOS - PullRequest
6 голосов
/ 28 января 2011

Я пишу библиотеку кода многократного использования, предназначенную как для OS X, так и для iOS.Я создал проект XCode с 2 целями.Одна цель - платформа для OS X. Другая - статическая библиотека для iOS.

Я обнаружил, что сборки целевой платформы OS X пытаются использовать заголовки iOS.Я знаю это, потому что определяется TARGET_OS_IPHONE, в результате чего сборка пытается найти UIKit.h и т. Д. Это, конечно, приводит к сбою сборок для целевого объекта платформы, поскольку целевой объект платформы OS X не связывается с платформами iOS.

Я проверил настройки сборки для цели платформы OS X на глупость, но ничего не нашел.Базовый SDK установлен как «Mac OS X 10.6».Обратите внимание, что когда я создавал проект Xcode, я использовал шаблон Cocoa Framework, а затем добавил цель статической библиотеки iOS.

Что еще может заставить целевой объект OS X Framework использовать неправильный SDK?

Спасибо, -KIRBY

Ответы [ 3 ]

1 голос
/ 28 января 2011

Ваша проблема в том, что Xcode запутался.Выберите опцию во всплывающем окне «Обзор» и сбросьте Active SDK в Base SDK.Вы, вероятно, обнаружите, что цель Mac установлена ​​на одну из целей iOS, что в итоге вызывает все виды веселья, как вы видели

0 голосов
/ 07 января 2016

Я делаю что-то очень похожее на то, что вы описываете.У меня есть несколько частных платформ, которые совместно используются нашим приложением для iOS и нашим приложением OS-X.Каждая такая структура находится в своем собственном проекте с двумя целями.Динамические фреймворки Mac-OS и специальный «статический фреймворк» iOS, использующий специальный шаблон, который мы добавили в XCode - это проект с открытым исходным кодом Универсальная iOS-среда Карла Стенеруда для iOS Теперь я никогда не испытывал глупости, которую вы описываетеи я уверен, что это просто что-то, что вы по ошибке удалили (или добавили) в настройках проекта / цели.

Вот что я рекомендую в качестве "метода отладки" для настроек проекта:

Для вас открыт хороший текстовый редактор.Например, перейдите в настройки сборки статической библиотеки iOS.Выберите кнопки «Все» и «Комбинированные».Теперь выделите все строки и скопируйте (команда-C).Перейдите в текстовый редактор и вставьте.У вас будет хорошее текстовое описание всех настроек.

Теперь создайте новый шаблон проекта в XCode и сделайте то же самое в другом текстовом файле.Теперь сравните эти файлы на предмет расхождений.

Сделайте это на всех 3 уровнях.1. Настройки уровня проекта 2. Настройки статической библиотеки iOS 3. Каркас OS-C.

0 голосов
/ 28 января 2011

У меня были некоторые глупые проблемы, связанные с помещением цели Mac и iPhone в один и тот же файл проекта Xcode, очень похожий на то, что вы описали в своем вопросе и сопроводительном комментарии. Мое решение состоит в том, чтобы иметь отдельный файл проекта Xcode для Mac и iOS. Вы по-прежнему можете обмениваться файлами между проектами, хотя вы должны постоянно обновлять каждый из них, но это приводит к менее сложному поведению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...