2015-07-07 2 views
18

У меня был чистый быстрый проект, используя некоторые cocoapods: Parse, AFNetworking и RESideMenu. мне нужно использовать STZPopupView стручок, поэтому я обновил cocoapods с последней версией:ошибка использования cocoapods "use_frameworks!" SWIFT

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!»

Мой podfile Сейчас:

# 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 ошибки, когда я строю:

  • файл "RESideMenu.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, но я не знаю, как сделать, чтобы использовать все мои стручки для правильного построения моего приложения.

EDIT:

Точные ошибки:

/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' 
+0

Удалите эти инструкции из файла заголовка моста: #ifndef isam_Swift_Bridging_Header_h & #define isam_Swift_Bridging_Header_h и endif. Он должен работать. – iDilip

+0

@ dilip.ajm #ifndef просто не позволяет импортировать его несколько раз, насколько я могу сказать –

+0

@SantaClaus Я пробовал использовать и без кавычек, но он не работает – cmii

ответ

16

Я нахожусь на той же проблеме. Вы можете попробовать следующее: http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html

При использовании use_frameworks! в CocoaPods все ваши стручки будут использоваться как рамки, а не только быстрые стручки. Поэтому для этого вам не нужен заголовок для моста. Просто импортируйте свои стручки во все быстрые файлы, которые вам нужны. В вашем примере вам нужно написать: import RESIDMenu

+0

Это исправило это для меня. Однако я также получил «дублирование объявления интерфейса», которое я исправил, изменив файлы Objective-C, которые импортировали заголовки из фреймворков в использование глобальных вместо локального: '#import" Framework.h "' to '#import '. –

2

Попробуйте удалить ISAM/с Bridging заголовка Objective-C и имеют только Swift-Bridging-header.h

Coming из личного опыт CocoaPods по-прежнему имеет некоторые проблемы при объединении быстрых и объективных C-структур. Вы можете использовать Alamofire, что почти эквивалентно AFNetworking для быстрого.

Надеюсь, это поможет.

Редактировать: Также зачем использовать Objectise-C Parse в swift, когда вы можете напрямую использовать быстрые библиотеки.

+0

Удалить isam/не работает. Действительно, мне нужен модуль STZPopupView, потому что я хотел бы настроить uialertcontroller: http://stackoverflow.com/questions/31254931/add-an-animation-image-per-image-inside-a-uialertcontroller-swift – cmii

+0

ok I смог успешно построить проект, используя вашу спецификацию. Единственное, что мне нужно было изменить, это изменить это #import Также попробуйте удалить целевой «isam» из своего файла подкачки и обязательно запустите все команды терминала pod внутри каталога проекта – mosn

+0

когда вы сказали «удалить целевого исама», вы просите меня полностью удалить строку «target» isam «do»/«end» в моем подкадре? – cmii

1

У меня была та же проблема.Я изменил весь свой импорт с #import "RESideMenu.h" на #import <RESideMenu/RESideMenu.h>, например.

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