12

I am trying to build a private CocoaPods framework with other pod dependencies.

Among others, I added Parse as a dependency in the podspec file:

s.dependency 'Parse'

However, when I try to lint it,

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

I get the following errors:

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 ...]

I looked at virtually every relevant question asked on SO and in github issues, but I could not find anything that worked for me. Has anybody experienced these issues, or is familiar with why this does not work ?

1 Answer 1

2

This is unfortunately a problem with the Parse library itself. I ran into a similar situation a while back when I was trying to use the Parse library inside a framework I was building for iOS.

What the error means is that there is a header included in one of Parse's public .h files that does not belong to a module. In Parse's case this is <sqlite3.h> if I remember correctly. Without removing this from Parse's public headers it will not be possible to build a framework target that also includes Parse. This should be filed as a bug with Parse so they could work on an upgrade to support modular framework builds.

Due to the need for my project to build a framework target I had to pass on using Parse in my project as a result of the above.

Here is a reference to a similar problem with similar answer: https://stackoverflow.com/a/24728646/296708

Sign up to request clarification or add additional context in comments.

4 Comments

It seems that sqlite3.h is not in Parse's public .h files anymore, but the problem is still there. Searching for "sqlite3.h" in . ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabase.m:13:#import <sqlite3.h> ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabaseResult.m:12:#import <sqlite3.h> ./Pods/Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteStatement.m:12:#import <sqlite3.h> ./Pods/Parse/Parse/Internal/PFDateFormatter.m:12:#import <sqlite3.h>
Good to know. Then I'm guessing that there may still be another Objective-C or C library being included in one of Parse's .h header files that is still causing the "include of non-modular header" error if you are still seeing this error.
Yes, and since it can be reproduced by starting from pod lib create xxx, I've created an issue in github for Parse's reference: github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/673
really helpful answer save my time

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.