2016-04-01 8 views
7

Ich verwende eine 3rd-Party-Bibliothek als Framework zur Verfügung gestellt: Library.framework. Anscheinend kann es nur in meinem Projekt über den Überbrückungskopf verwendet werden, indem man #import <Library/Library.h> tut. Was in den meisten Fällen gut ist.Embed ein Framework ohne Modul in einem Pod

Allerdings entwickle ich gerade einen Pod, in dem ich Library.framework verwenden möchte. Das bedeutet, dass ich mich nicht auf den Bridging Header verlassen kann.

Ich versuchte, die Library.framework in meinem Pod Ziel (siehe General > Linked Frameworks and Libraries), aber dann zu verbinden, wenn das Pod in meiner App installiert ist, sagt Xcode die Pod nicht kompilieren, da einige Dateien in der Bibliothek nicht gefunden werden.

Was wäre die beste Strategie, um hier zu adoptieren?

+0

Haben Sie versucht, Ihr Schema zu bearbeiten? Im Build-Bereich können Sie die Reihenfolge auswählen, in der Ihre Ziele kompiliert werden, wenn Sie "parallelize build" deaktivieren. – Max

+0

Danke für Ihre Antwort, aber das wirft einige Fragen auf: Welches Schema und was soll es tun? – aimak

+0

Produkt> Schema> Schema bearbeiten> Build. Dann deaktivieren Sie "Parallelize Build" und Sie können Ihre Ziele neu anordnen – Max

Antwort

2

Ich glaube, ich es geschafft.

Der Trick bestand darin, die .h-Dateien sowohl in source_files und public_header_files in der Pod.podspec hinzuzufügen.

So:

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

Auf diese Weise werden alle Header-Dateien erscheinen im Pod-umbrella.h und jetzt kann in meiner app verwendet werden.

1

In Ihrem Pod-Projekt nehme ich an, dass Sie eine Datei mit dem Namen [PodName] .h haben, die der folgenden Datei ähnelt. Sie könnten versuchen, den Header in dieser Datei hinzuzufügen.

// 
// 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. 
Verwandte Themen