在 Pod 中嵌入没有模块的框架
Embed a framework without module in a Pod
我正在使用作为框架提供的第 3 方库:Library.framework。显然,它只能通过桥接头在我的 Swift
项目中使用 #import <Library/Library.h>
。在大多数情况下这很好。
但是,我目前正在开发一个 Pod,我想在其中使用 Library.framework。这意味着我不能依赖桥接头。
我尝试 link 我的 Pod 目标中的 Library.framework(参见 General > Linked Frameworks and Libraries
)但是,一旦 Pod 安装在我的应用程序中,Xcode 说Pod无法编译,因为找不到库中的某些文件。
这里采用的最佳策略是什么?
在您的 pod 项目中,我假设您有一个名为 [PodName].h 的文件,它看起来类似于下面的文件。
您可以尝试在此文件中添加 header。
//
// 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.
我想我做到了。
诀窍是在 Pod.podspec.
中的 source_files
和 public_header_files
中添加 .h 文件
像这样:
s.source_files = 'Library.framework/Headers/*.h'
s.public_header_files = 'Library.framework/Headers/*.h'
这样,所有头文件都出现在 Pod-umbrella.h
中,现在可以在我的应用程序中使用了。
我正在使用作为框架提供的第 3 方库:Library.framework。显然,它只能通过桥接头在我的 Swift
项目中使用 #import <Library/Library.h>
。在大多数情况下这很好。
但是,我目前正在开发一个 Pod,我想在其中使用 Library.framework。这意味着我不能依赖桥接头。
我尝试 link 我的 Pod 目标中的 Library.framework(参见 General > Linked Frameworks and Libraries
)但是,一旦 Pod 安装在我的应用程序中,Xcode 说Pod无法编译,因为找不到库中的某些文件。
这里采用的最佳策略是什么?
在您的 pod 项目中,我假设您有一个名为 [PodName].h 的文件,它看起来类似于下面的文件。 您可以尝试在此文件中添加 header。
//
// 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.
我想我做到了。
诀窍是在 Pod.podspec.
中的source_files
和 public_header_files
中添加 .h 文件
像这样:
s.source_files = 'Library.framework/Headers/*.h'
s.public_header_files = 'Library.framework/Headers/*.h'
这样,所有头文件都出现在 Pod-umbrella.h
中,现在可以在我的应用程序中使用了。