2015-10-21 16 views
12

Próbuję zbudować prywatną strukturę CocoaPods z innymi zależnymi zależnościami.Framework CocoaPods z zależnościami - uwzględnienie niemodularnego nagłówka wewnątrz modułu szkieletowego

Między innymi, dodałem Parse jako zależność w pliku podspec:

s.dependency 'Parse' 

Jednak, gdy próbuję go strzępkami

pod lib lint MyPrivateSpec.podspec --verbose --sources '[email protected]:MY_BITBUCKET_NAME/specs.git,https://github.com/CocoaPods/Specs' 

otrzymuję następujące błędy:

Target Support Files/Parse/Parse-umbrella.h:3:9: note: in file included from Target Support Files/Parse/Parse-umbrella.h:3:

ERROR | xcodebuild: Parse/Parse/Parse.h:12:9: error: include of non-modular header inside framework module 'Parse.Parse'

[and more of these types of errors in the following lines ...]

Przyjrzałem się praktycznie wszystkim istotnym pytaniom zadawanym w sprawach SO i Github, ale nie mogłem znaleźć żadnych To działało dla mnie. Czy ktoś doświadczył tych problemów lub jest zaznajomiony z tym, dlaczego to nie działa?

Odpowiedz

2

Jest to niestety problem z samą biblioteką Analiza składni. Wpadłem w podobną sytuację jakiś czas temu, gdy próbowałem użyć biblioteki Parse w ramach, który budowałem na iOS.

Błąd oznacza, że ​​nagłówek znajduje się w publicznym pliku .h, który nie należy do modułu. W przypadku Parse jest to <sqlite3.h>, jeśli dobrze pamiętam. Bez usuwania tego z publicznych nagłówków programu Parse nie będzie możliwe zbudowanie ramowego obiektu docelowego obejmującego także analizę parse. To powinno być zgłoszone jako błąd w analizie składniowej, aby mogli pracować nad uaktualnieniem, aby obsługiwać modularne kompilacje frameworków.

Ze względu na potrzebę mojego projektu, aby zbudować cel ramowy, musiałem przekazać przy użyciu Parse w moim projekcie w wyniku powyższego.

Oto odniesienie do podobnego problemu z podobną odpowiedź: https://stackoverflow.com/a/24728646/296708

+0

Wydaje się, że 'sqlite3.h' nie jest w publicznych' .h' plików analizowania jest już, ale problem nadal istnieje. "Wyszukiwanie" sqlite3.h " w. ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabase.m:13:#import ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabaseResult.m:12:#import ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteStatement.m:12:#import ./Pods/Parse/Parse/Internal/PFDateFormatter.m:12:#import ' –

+0

Dobrze wiedzieć. Następnie przypuszczam, że może istnieć jeszcze jedna biblioteka Objective-C lub C dołączona do jednego z plików nagłówkowych .h programu Parse, który nadal powoduje błąd "uwzględnienia niemodularnego nagłówka", jeśli nadal widzisz ten błąd. –

+0

Tak, a ponieważ można go odtworzyć, zaczynając od 'pod lib create xxx', utworzyłem problem w github dla odniesienia Parse: https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/673 –