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. во многих классах, так
Что я сделал, чтобы исправить эту проблему?
- Вырежьте все блоки Objective C из файла pod
- Откройте терминал и выполните команду:
cd path/myProject
- Команда запуска терминала:
pod install
- Вставьте его (все модули Objective C) в файл pod и сохраните его.
- Команда запуска терминала:
pod install