Есть два способа сделать платформу Objective-C пригодной для использования в быстром проекте:
1) Разрешение Xcode автоматически создать файл module.modulemap
, который является параметром по умолчаниюкогда вы запускаете новый каркасный проект:
Итак, при компиляции проекта этот файл генерируется с конфигурацией по умолчанию:
framework module MODULE_NAME {
umbrella header "MODULE_NAME-umbrella.h"
export *
module * { export * }
}
И, как правило, достаточно для большинства проектов.
2) Создание файла вручную, что соответствует вашему проекту.
В соответствии с Документация к карте модуля CLANG :
Объявление-ссылка определяет библиотеку или структуру, с которой должна быть связана программа, если включающий модуль импортируется в любой модуль перевода в этой программе.
Объявления ссылок в картах модулей предназначены для того, чтобы стать подсказкой для цепочки инструментов, которая является фактическим двоичным файлом, который содержит код модуля. Без этого явного определения импорт каркаса в основном проекте может вызвать ошибки из-за необходимости этих исходных платформ, в основном нет такой ошибки модуля .
Итак, если у вас есть быстрый проект сзависимости динамического фреймворка, и один из них имеет тот же список зависимостей, что и ваш пример фреймворка. Если вы удалите явное объявление из файла .modulemap
, вы, вероятно, увидите ошибку duplicate symbols
.
Подробнееинформация, я рекомендую эту ветку Apple ответ.