2014-09-13 4 views
8

Вот моя конфигурация:Использование Cocoapods в вложенной структуры с Xcode 6 GM

  1. Pod X: Связанный с MyProjectSharedCode, объявляет класс SomeClassObjective C)
  2. MyProjectExtension: Сегодня данные расширения, совместного использования с MyProject
  3. MyProject: Companion приложение для настройки MyProjectExtension
  4. MyProjectSharedCode: возможность размещения ed для общего кода в MyProject и MyProjectExtension. Использует SomeClass.

Я не могу заставить его работать. Я пробовал:

  • Импорт PodX.h в MyProjectSharedCode.h, но это приводит к ошибке компилятора:

include of non-modular header inside framework module

  • , которые приводят меня в несколько StackOverflow ссылок, в том числе this one. Однако изменение этой опции не позволило мне скомпилировать ее. Как говорит @NachoSoto в последнем комментарии принятого ответа, ответ, похоже, не работает с Xcode 6 B5.

Любая помощь/выводы была бы очень признательна.

+0

Вы не связываете код с каркасом. Вы ссылаетесь на свои заголовки для компиляции, но пока ничего не связано. Только приложение-хозяин связывает все скомпилированные двоичные файлы. – Rivera

+0

Я попробовал: связал оба приложения с контейнерами, как это сейчас. Добавлена ​​новая цель. Обновлен путь поиска заголовка, чтобы включить папку «Pods». Удалена папка «Common», добавлены файлы только с каркасом в качестве цели. Соорудив. Каждый файл Swift не удалось скомпилировать с ошибкой: ': 0: ошибка: не удалось создать модуль Objective-C« LiFXWidgetSharedCode » – DCMaxxx

+0

Первый. Я не решил проблему. Последняя попытка состояла в том, чтобы скомпилировать модули с модулем «Определения» в проекте pod (как в doc _ «При импорте внешней фреймворки убедитесь, что для параметра« Определить модуль »для импортируемой структуры установлено значение« Да ».« _). Но. Я точно не знаю, но я думаю, что не все исходные коды модулей перекомпилируются в каждый момент сборки, некоторые контейнеры - это просто статические библиотеки с заголовками. Таким образом, модули не определены, и вы можете увидеть ошибку из вопроса. Smb может попытаться перекомпилировать источники pod с определенным именем модуля и заголовками общих областей (они по умолчанию являются проектами в контейнерах). – Renatus

ответ

2

Сегодня появилась хорошая статья об использовании ветви разработки Cocoapods 0.36.0, в которой добавляются фреймворки/быстрая поддержка.

http://swiftwala.com/cocoapods-is-ready-for-swift/

Baring, что я связывая стручки в рамки, а затем, включая заголовки в заголовке мостиком. Его немного странно, но он работает, пока вы не хотите писать быстро, который использует стручки в самой структуре.

Редактировать версия предварительного релиза 0.36.0 вне you can see the blog post here.

Смежные вопросы