Ошибка с использованием cocoapods "use_frameworks!" СВИФТ
У меня был чистый быстрый проект, используя некоторые cocoapods: Parse, AFNetworking и RESideMenu.
Мне нужно использовать STZPopupView, поэтому я обновил cocoapods с последней версией:
gem install cocoapods
Затем я перезапустил его для моего проекта:
pod install
Из-за этой ошибки:
[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it.
Я обновил свой файл подкачки, добавив "use_frameworks!"
Мой подкайл теперь:
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
target 'isam' do
pod 'RESideMenu', '~> 4.0.7'
pod 'AFNetworking', '~> 2.5'
pod 'Parse', '~> 1.6'
pod 'STZPopupView', '~> 1.0'
end
target 'isamTests' do
end
Так как у меня есть 2 ошибки при создании:
- Файл "RESIDMenu.h" не найден.
- Не удалось импортировать заголовок моста "..../isam/Swift-Bridging-Header.h"
В моем проекте ничего не изменилось.
My Swift-Bridging-Header.h не изменяется:
#ifndef isam_Swift_Bridging_Header_h
#define isam_Swift_Bridging_Header_h
#import <Parse/Parse.h>
#import <RESideMenu.h>
#endif
В моих настройках сборки у меня есть:
![builds settings]()
Я думаю, это из-за "use_frameworks!" в моем podfile, но я не знаю, как это сделать, чтобы использовать все мои модули для правильного создания моего приложения.
ИЗМЕНИТЬ:
Точные ошибки:
/path_of_my_project/Swift-Bridging-Header.h:12:9: error: 'RESideMenu.h' file not found
#import <RESideMenu.h>
^
<unknown>:0: error: failed to import bridging header '/path_of_my_project/Swift-Bridging-Header.h'
Ответы
Ответ 1
У меня на самом деле одна и та же проблема. Вы можете попробовать следующее: http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html
При использовании use_frameworks! в CocoaPods все ваши стручки будут использоваться как рамки, а не только быстрые стручки. Поэтому для этого вам не нужен заголовок для моста. Просто импортируйте свои стручки во все быстрые файлы, которые вам нужны.
В вашем примере вам нужно написать:
import RESIDMenu
Ответ 2
Попробуйте удалить isam/из Objective-C Bridging Header и иметь только Swift-Bridging-Header.h
Исходя из личного опыта, у CocoaPods все еще есть некоторые проблемы при объединении быстрых и объективных C-фреймворков. Вы можете использовать Alamofire, что почти эквивалентно AFNetworking для быстрого.
Надеюсь, это поможет.
Изменить:
Кроме того, зачем использовать Objectice-C Parse в swift, когда вы можете напрямую использовать быстрые библиотеки.
Ответ 3
У меня была такая же проблема. Я изменил весь свой импорт с #import "RESideMenu.h"
на #import <RESideMenu/RESideMenu.h>
, например.