我刚刚开始了一个新的Swift项目,我想使用不同的库。特别是,我想使用一个Obj-C库Realm.io。但是,我还想使用纯粹的Swift库,例如Alamofire或Dollar。
我使用Cocoapods来管理我的依赖项。我使用最新版本(0.37.0)和新的use_frameworks!
标志。 pod install
随时都可以成功。
不幸的是,当我尝试构建我的项目时,我得到两个错误(对于我的主要目标):
Umbrella header Realm.h not found
的module.modulemap
来自使用Could not build Objective-C module Realm
import Realm
其他进口工作正常。
我注意到以下内容:如果删除纯Swift库和use_frameworks
,一切正常。我知道this current issue from Cocoapods。但是,Realm要求开发人员使用该标志应该不是问题。
这是我的Podfile:
platform :ios, '8.0'
use_frameworks!
target 'rothrock' do
pod 'Realm'
pod 'Cent'
pod 'SwiftyJSON'
pod 'Alamofire'
end
target 'rothrockTests', :exclusive => true do
end
我没有使用桥接头。我应该吗?
任何想法或解决方法?
答案 0 :(得分:2)
您需要一个桥接标头并在那里导入Objective-C库标题。
如果您只使用Realm,可以查看Swift http://realm.io/docs/cocoa/的此文档(在选项卡中转到CocoaPods)
<强>夫特强>
[sudo] gem install cocoapods
)。use_frameworks!
和pod 'Realm'
添加到您的应用目标。答案 1 :(得分:1)
我刚刚在我上面提到的一些项目中安装了 Realm 库,例如 Alamofire 和 SwiftyJSON 以及其他它在构建项目时工作正常,甚至可以放import Realm
,根本没有编译错误。
我正在使用Cocoapods 0.36.0,稳定版本,这是我的PodFile:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '8.0'
link_with 'ApiWorkflow', 'ApiWorkflowTests'
pod 'SwiftyJSON', '~> 2.2'
pod 'Alamofire', '~> 1.2'
pod 'Typhoon', '~> 3.0'
pod 'SwiftCSV', '~> 0.1'
pod 'Realm'
我希望这可以帮到你