Cocoapods use_frameworks! проблема импорта

Я хочу использовать некоторые Swift-модули в моем приложении Objective-C, поэтому мне нужно использовать фреймворки вместо статических библиотек. Но включение use_frameworks! в моем подфайле вызывает тоны ошибок #import.

Мой подфайл:

platform :ios, '8.0'
use_frameworks!

pod 'AFNetworking', '2.6.0'
pod 'Typhoon'
pod 'SSKeychain'
pod 'JBWebViewController'
pod 'TTTAttributedLabel'
pod 'HockeySDK'
pod 'GoogleAnalytics'
pod 'Intercom'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'UIButton+Activity'
pod 'HexColors'
pod 'AFNetworkActivityLogger'
pod 'HCSStarRatingView', :git => 'https://github.com/hsousa/HCSStarRatingView.git'
pod 'LGSideMenuController'
pod 'DateTools'
pod 'SDWebImage'
pod 'SSCWhatsAppActivity'
pod 'UIViewController+BlockSegue'

Первая проблема заключалась в SSKeychain pod:

Ошибка SSKeychain

В коде я включаю SSKeychain, используя "кавычки" #import "SSKeychain/SSKeychain.h", но если я правильно понимаю, мне нужно использовать <angle> теперь #import <SSKeychain/SSKeychain.h>? Но в этом случае я получаю ту же ошибку, но в своем коде.

Мои фазы сборки:

Сборка фаз

В любом случае я нашел fork SSKeychain с импортом "quotes" (https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749) и переключился на эту версию.

Но теперь у меня такая же проблема со многими другими модулями (почти со всеми):

Ошибка FBSDKCoreKit

Импорт в приложение: #import "FBSDKCoreKit/FBSDKCoreKit.h"

Мне действительно нужно разветвлять каждое репо и изменять операции импорта? Или я включаю стручки неправильно?

PS: Я очищаю производные данные и проект перед каждой попыткой сборки.

Cocoapods Версия: 0.39.0

Ответ 1

Как вы использовали Модули в своем подфайле, почему бы вам не просто:

@import SSKeychain;

вместо:

#import <SSKeychain/SSKeychain.h>

Чтобы проверить, что:

  • создайте простой проект iOS, только с одним ViewController
  • создать подфайл, используя ваш код выше
  • запустить pod install
  • откройте рабочую область
  • выполнить и запустить: он компилирует OK

Ответ 2

Я, наконец, понял это! Проблема была устранена удалением Pods.framework из Link Binary With Libraries и добавлением их снова вручную.

Спасибо за помощь!

Ответ 3

Также проверьте сообщения об ошибках на pod install.

В моем случае я использовал собственный импорт в FRAMEWORK_SEARCH_PATHS, и только потому, что я это делал, всякий раз, когда я делал pod install, дополнительные пути поиска, добавленные CocoaPods, не добавлялись. Поэтому мне пришлось удалить свой собственный путь, а затем они появились. Затем я добавил свой собственный путь.

Может быть хорошей идеей сделать pod deintegrate, удалить файл xcworkspace и сделать pod install еще раз. Затем добавьте свои пользовательские настройки сборки.

Это ошибка, которую я получал:

[!] The App [Debug] target overrides the FRAMEWORK_SEARCH_PATHS
build setting defined in Pods/Target Support Files/Pods-AppLib/Pods-AppLib.debug.xcconfig. 
This can lead to problems with the CocoaPods installation

Ответ 4

В моем случае, в чем была проблема, я уже скачал несколько модулей ObjC для своего проекта Objective C, тогда мне нужен один модуль swift, поэтому я use_framwork в моем файле модуля и устанавливаю этот модуль быстро. После установки возникает проблема с импортом модуля swift для библиотек ObjeC. во многих классах, так

Что я сделал, чтобы исправить эту проблему?

  1. Вырежьте все блоки Objective C из файла pod
  2. Откройте терминал и выполните команду: cd path/myProject
  3. Команда запуска терминала: pod install
  4. Вставьте его (все модули Objective C) в файл pod и сохраните его.
  5. Команда запуска терминала: pod install