现在我有一个项目,比如testApp,使用像alamofire这样的第三方库,以及在objective-c中使用其他一些库。
现在我想添加一个今天的小部件。根据一些教程,我创建了一个新的目标" testAppKit"作为共享动态框架,目标" testAppWidget"作为今天的延伸。公共代码将在testAppKit中重用。
现在我需要在testAppKit中使用第三方库。并在testAppKit的构建阶段添加了lib和header。然后我在testAppKit.h中添加#import <theLib/TheHeader.h>
。但是有一个错误:
Include of non-modular header inside framework module 'testAppKit'
所以,我想知道如何在这种嵌入式动态框架中使用第三方库(可能在Swift或Objective-C中)。
答案 0 :(得分:7)
我在我的应用程序中使用Dropbox Datastore API,最后我使用它来嵌入Cocoa Touch框架来共享Containing App和Today Extension的代码。
我发现在嵌入式框架中的Swift文件中,我可以导入项目中的任何第三方框架(即Farbic.framework,Crashlytics等),但不能导入Dropbox。
有什么区别? “Modules”文件夹! Dropbox.framework不提供模块映射文件。所以我根据Fabric.framework中的内容创建了它:
文件内容:
framework module Dropbox {
umbrella header "Dropbox.h"
export *
module * { export * }
}
完成后我需要添加导入路径。
我想在这里放一个截图,但我还不能这样做 - 因为我的“声誉”;)
现在我可以在swift文件中执行“导入Dropbox”:)
希望这可以帮助你:)