我在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 .