问题
I am creating a framework in swift and I need to use sqlite.
I've imported #import <sqlite3.h>
to use it and I am writing it in .h file created by Xcode.
But while building, I am getting this error:
"include of non modular header inside framework module"
.
I have searched for this question but couldn't find an appropriate answer that solves my problem.
回答1:
To use SQLite in a custom framework, you need to include the sqlite3.h file directly into the project and then make that file public.
- To get the .h file, right-click on Xcode and select "show package contents"
- In the search bar, type "sqlite3.h"
- Select Xcode in the search area
- Drag the file to your project and choose "Copy items if needed"
- Select the sqlite3.h file in your project navigator
- In the utilities pane, change target membership to public.
In your umbrella header file, make sure you add this line:
#include "sqlite3.h"
(Don't use the <sqlite3.h>
form as you're now including the file from your project)
You may notice that the umbrella header automatically adds the line #import <UIKit/UIKIt.h>
as shown below. If you don't need UIKit, then remove that line.
You can find a full example here: https://github.com/AaronBratcher/ALBNoSQLDB
回答2:
What I was missing was adding sqlite3.h explicitly. It won't be automatically added when you add libsqlite3.tbd library. Make sqlite3.h public and then import it as umbrella header.
来源:https://stackoverflow.com/questions/34849464/using-sqlite-in-framework