我在Swift 2.3中编写了一个框架,它使用Cocoapods来利用一些Objective-C项目,如AFNetworking和CocoaLumberjack . 由于桥接头不能在框架中使用,我已经为每个Objective-C项目定义了模块映射(以及我编写的一些Objective-c实用程序) . 例如,AFNetworkModule的module.modulemap如下所示:
module AFNetworkModule {
header "../../Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h"
export *
}
还在Build Settings - > Import Paths中添加了modulemaps的路径 . 这样我就可以在我的框架swift代码中导入模块:
import AFNetworkModule
在框架的“构建设置”中,“设置定义模块”设置为“是” .
在外部我可以使用 import MyFramework
when both the framework and the sample app are in the same workspace 在我的示例Swift应用程序中使用框架而没有任何问题:
-- SampleAppProj
-- MyFrameworkProj
-- Pods
但是当我尝试在单独的Swift项目中导入框架时,我得到“ Cannot load underlying module for MyFramework ” . 生成的框架包含一个Headers文件夹,其中包含MyFramework-Swift.h和MyFramework.h(伞文件) . 我没有在伞文件中添加任何头文件,因为我使用模块在swift框架内部导入objective-c .