2016-04-01 31 views
7

我使用一個作爲框架提供的第三方庫:Library.framework。顯然,它只能在我的Swift項目中通過橋接接頭使用#import <Library/Library.h>。在大多數情況下,這很好。在一個Pod中嵌入一個沒有模塊的框架

但是,我目前正在開發一個Pod,我想使用Library.framework。這意味着我不能依靠Bridging Header。

我試圖鏈接Pod目標中的Library.framework(請參閱General > Linked Frameworks and Libraries),但是一旦Pod安裝在我的應用程序中,Xcode說Pod無法編譯,因爲找不到庫中的某些文件。

這裏採用什麼樣的最佳策略?

+0

您是否嘗試編輯您的計劃?在構建部分中,如果取消選中「並行構建」,則可以選擇目標編譯的順序 – Max

+0

感謝您的回答,但這引發了更多問題:什麼方案和應該做什麼? – aimak

+0

產品>方案>編輯方案>構建。然後取消選中「並行編譯」,你可以重新排序你的目標 – Max

回答

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

在您的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. 
相關問題