2016-12-31 8 views
1

Я получаю ошибку компиляции «Нет такого модуля» в Xcode 8.2.1 в моем проекте Swift. Я использую Карфаген с двумя модулями: Alamofire и Fuzi. Каталог Carthage/Build/iOS существует с двумя файлами фреймворка. Build Settings/Framework Search Paths указывает на этот каталог. Я вложил два файла фрейма в General/Embedded Binaries. Что мне не хватает?Ошибка «Нет такого модуля» в Xcode 8

+0

Я могу пройти ошибка «Нет такого модуля», добавив xcodeproj Alamofire к рабочей области и добавлению ее в качестве целевой зависимости. – andrewz

ответ

2

Вам не нужно вставлять библиотеки; они должны быть добавлены к Связанные структуры и библиотеки под разделом «Общие/встроенные двоичные файлы». Удостоверьтесь, что у вас есть сценарий Carthage copy-frameworks, добавленный к вашим фазам сборки.

Из документации Карфагена:

На вкладке ваших целей приложения Настройка „Общей“, в „Linked Каркасов и библиотеки“ раздела, перетащите каждую структуру вы хотите использовать от Карфагена/Создать папку на диске. На вкладке «Настроить параметры» на вкладке «Настроить фазы» нажмите на значок «+» и выберите «Новая сцена сценария запуска». Создание Выполнить сценарий, в котором вы указать вашу оболочку (например: бен/ш), добавьте следующее содержимое в области сценария ниже оболочек:

/usr/local/bin/carthage copy-frameworks 

и добавить пути к рамкам, которые вы хотите использовать под «Input Files», например:

$(SRCROOT)/Carthage/Build/iOS/Box.framework 
$(SRCROOT)/Carthage/Build/iOS/Result.framework 
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework 

Этот скрипт работает вокруг представления ошибки в App Store, вызванной универсальных двоичных файлов и обеспечивает необходимые битовый код файлы, связанные с и dSYMs копируются при архивировании.

+0

Не работает. Я удалил встроенные фреймворки, удалил ссылки на фреймворки из проекта, очистил каталог сборки, добавил фреймворки в «Связанные структуры и библиотеки» и добавил скрипт «Build Phases» и входные файлы. Такая же ошибка. – andrewz

+0

Мой скрипт:/usr/local/bin/carthage copy-frameworks ... и carthage существует и исполняется в/usr/local/bin ... Я указал эти входные файлы: $ (SRCROOT)/Carthage/Build/iOS/Alamofire.framework и $ (SRCROOT)/Карт/Build/iOS/Fuzi.framework – andrewz

0

Во-первых, вы проверяете установлен Карфаген или нет в вашей машине, как следующую команду в терминале

Карфаген версии

Если Карфаген не установлен в вашей машине попробовать следующее.

Download the latest release of Carthage, а также дважды щелкните Carthage.pkg для запуска установщика. Нажмите «Продолжить», выберите местоположение для установки, затем нажмите «Продолжить» и нажмите «Установить». Затем вы можете проверить версию carthage.

Если вы используете существующий проект затем перейти к папке проекта, как

кд ~/путь/к/Стартер/Project

Попробуйте следующую команду для обновления cartfile обновления

Карфаген -платформа iOS

После завершения установки/обновления, попробуйте выполнить следующую команду

открыт картхейдж

Вы должны увидеть окно Finder всплывал, который содержит две директории: Построить и извлечения. В окне Finder Carthage найдите Build \ iOS. Теперь перетащите Alamofire.framework (к примеру) в Linked библиотеки и фреймворки раздел в Xcode:

Далее, переключитесь построить Фазы и добавить новую Run Script фазы сборки. Добавьте следующую команду:

/usr/local/bin/carthage copy-frameworks 

Нажмите + при входных файлов и добавить запись для каждой структуры:

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework 
Смежные вопросы