2016-04-01 2 views
7

Я использую стороннюю библиотеку, предоставляемую в качестве рамки: Library.framework. По-видимому, его можно использовать только в моем проекте Swift через мостовой заголовок, выполнив #import <Library/Library.h>. Это нормально в большинстве случаев.Вставить рамки без модуля в Pod

Однако я в настоящее время разрабатываю Pod, в котором я хочу использовать Library.framework. Это означает, что я не могу полагаться на заголовок моста.

Я попытался связать Library.framework в моей целевой цели (см. General > Linked Frameworks and Libraries), но затем, как только Pod установлен в моем приложении, Xcode говорит, что Pod не может скомпилировать, потому что некоторые файлы в Библиотеке не найдены.

Что было бы лучшей стратегией для принятия здесь?

+0

Вы пытались отредактировать свою схему? В разделе сборки вы можете выбрать порядок компиляции ваших целей, если вы снимите флажок «Распараллеливать сборку» – Max

+0

Спасибо за ваш ответ, но это вызывает еще несколько вопросов: какую схему и что она должна делать? – aimak

+0

Продукт> Схема> Изменить схему> Сборка. Затем снимите флажок «Распараллеливать сборку», и вы можете изменить порядок своих целей. – Max

ответ

2

Я думаю, что сделал.

Хитрость заключалась в том, чтобы добавить файлы .h в обоих source_files и public_header_files в Pod.podspec.

Как это:

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. 
Смежные вопросы