在Pod中嵌入没有模块的框架

时间:2016-04-01 14:06:46

标签: swift module frameworks cocoapods

我使用作为框架提供的第三方库:Library.framework。显然,它只能通过桥接标题通过Swift在我的#import <Library/Library.h>项目中使用。在大多数情况下都没问题。

但是,我目前正在开发一个我想要使用Library.framework的Pod。这意味着我不能依赖桥接标题。

我尝试将我的Pod目标中的Library.framework链接起来(参见General > Linked Frameworks and Libraries)但是,一旦在我的应用程序中安装了Pod,Xcode就说Pod无法编译,因为找不到库中的某些文件。

这里采用的最佳策略是什么?

2 个答案:

答案 0 :(得分:2)

我想我成功了。

诀窍是在Pod.podspec中的source_filespublic_header_files中添加.h文件。

像这样:

s.source_files = 'Library.framework/Headers/*.h'
s.public_header_files = 'Library.framework/Headers/*.h'

这样,所有标题文件都会显示在Pod-umbrella.h中,现在可以在我的应用中使用。

答案 1 :(得分:1)

在你的pod项目中,我假设你有一个名为[PodName] .h的文件,它看起来与下面的文件类似。 您可以尝试在此文件中添加标题。

//
//  PodName.h
//  PodName
//
//  Created by John Doe on 06.04.2016.
//  Copyright © 2016 John Doe Inc. All rights reserved.
//

#import <UIKit/UIKit.h>

//! Project version number for PodName.
FOUNDATION_EXPORT double PodNameVersionNumber;

//! Project version string for PodName.
FOUNDATION_EXPORT const unsigned char PodNameVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <PodName/PublicHeader.h>

#import <Library/Library.h> // Add framework header here.