我有一个干净利落的项目,使用了一些cocoapods:Parse,AFNetworking和RESideMenu。 我需要使用STZPopupView pod,所以我用最新版本更新了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.
我更新了我的podfile,添加了“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个错误:
我的项目中没有改变任何其他内容。
我的Swift-Bridging-Header.h没有改变:
#ifndef isam_Swift_Bridging_Header_h
#define isam_Swift_Bridging_Header_h
#import <Parse/Parse.h>
#import <RESideMenu.h>
#endif
在我的构建设置中,我有:
我认为这是因为“use_frameworks!”在我的podfile中,但我不知道如何使用我的所有pod来正确构建我的应用程序。
编辑:
确切的错误是:
/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 :(得分:16)
我实际上遇到了同样的问题。你可以试试这个:http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html
使用use_frameworks时!在CocoaPods中,你所有的pod都将被用作框架,而不仅仅是swift pods。因此,您不需要为此设置桥接标头。只需将您的pod导入所需的所有swift文件即可。 在你的例子中,你必须写: import RESideMenu
答案 1 :(得分:2)
尝试从Objective-C桥接头中删除isam /并且只有Swift-Bridging-Header.h
根据个人经验,CocoaPods在结合swift和Objective C框架时仍然存在一些问题。你可以使用Alamofire,这几乎相当于快速的AFNetworking。
希望这会有所帮助。
编辑: 另外,当你可以直接使用swift库时,为什么在swift中使用Objectice-C Parse。
答案 2 :(得分:1)
我有同样的问题。例如,我将所有导入从#import "RESideMenu.h"
更改为#import <RESideMenu/RESideMenu.h>
。