Обработка подов в платформе какао Touch - на устройстве возникла ошибка

Я погуглил около 2-3 часов и попробовал несколько вещей, но я не могу заставить это работать:

Чего я люблю достигать

Цель состоит в том, чтобы разделить код пользовательского интерфейса и бизнес-логику. Бизнес-логика должна быть заключена в отдельную структуру. Платформа Cocooa Touch Framework. Таким образом, бизнес-логику можно повторно использовать, например, в приложении WatchKit.

Как я пытался это сделать

  1. Создайте новый проект Xcode -> выберите приложение с одним представлением.
  2. Добавьте новую цель -> выберите Cocoa Touch Framework.
  3. Запускаем pod init.
  4. Добавьте несколько модулей в Podfile для каждой цели.
  5. Запускаем pod install.
  6. Реализуйте код в пользовательском интерфейсе и фреймворке.

Это отлично работает на симуляторе. Как только я запустил его на устройстве, в отладчике появляется следующая ошибка:

dyld: Библиотека не загружена: @ rpath / SwiftAddressBook.framework / SwiftAddressBook Ссылка на: / private / var / mobile / Containers / Bundle / Application / 48E58889-78D4-4D71-B8DA-154ADEB98894 / Pod Error Framework.app/Frameworks/PodErrorKit. framework / PodErrorKit Причина: изображение не найдено

Я не знаю, как это решить. Какие-либо предложения?

Я использую:

  • коконоды 0,38,2
  • Xcode 6.4 (6E35b)
  • Цель развертывания iOS 8

Я загрузил проект (просто фальшивый проект, но с той же ошибкой) в github. Вы можете просмотреть его здесь.


person aofs    schedule 17.08.2015    source источник
comment
Примечание: это не обязательно зависит от Swift. Та же проблема возникает с CocoaPods и Cocoa Touch Frameworks, написанными на Objective-C.   -  person pkluz    schedule 12.09.2015
comment
Не могли бы вы опубликовать PodErrorKit Podspec?   -  person Loegic    schedule 14.09.2015
comment
Добавленный модуль может не поддерживать swift 2.0.   -  person Arvind    schedule 14.09.2015
comment
@Arvind Это было Xcode 6.4, никакого отношения к Swift 2.0   -  person Ducky    schedule 14.09.2015


Ответы (1)


Исправление находится здесь https://github.com/keithyipkw/pod-cocoa-touch-framework

SwiftAddressBook.framework является динамическим, поэтому вам нужно встроить его в свое приложение, как PodErrorKit. Подробности в моем коммите. Симуляторы обманывают, так или иначе находя фреймворки вне приложения (рядом с ним в производных данных).

Мне не удалось скомпилировать ваш проект из-за отсутствия Pods.framework. Я не смог найти цель, поэтому удалил ее.

person keithyip    schedule 16.09.2015
comment
Проверено @keithyip: (1) Открыть .xcworkspace. (2) Этапы сборки (3) + Связывание двоичного файла с библиотеками: SwiftAddressBook, обязательно (4) + Встраиваемые фреймворки: SwiftAddressBook - person SwiftArchitect; 18.09.2015
comment
Фреймворк не был встроен в ваше приложение. Вы сделали правильно для PodErrorKit, но пропустили SwiftAddressBook. - person keithyip; 18.09.2015