app rejected for using libsqlite3.dylib
-
01-07-2021 - |
Question
i am able to distribute and test my app using adhoc, but when i validate it for app store submission in organizer(xcode 4.3.2 - Product > Archive > Validate) i get the following error
- your app contains non public api usage
- the app references non public symbols in payload/appname.app/ libsqlite3.dylib: _dispatch_source_type_vm
my app uses sqlite3 for storing data got from youtube i.e video title and corresponding image url (max 10 records)
i have removed and added lib file, set deployment target to 4.0, please help
Solution
Got solution from Apple team
- Response from Apple(DTS - Developer Technical Support):
"You should only link to the libsqlite3.dylib library. You don't need to copy it into your app, because iOS ships with an SQLite3 library".
- Solution:
Remove libsqlite3.dylib from xcode and add '-libsqlite3' to "Other Linker Flags" under Project > Build Settings and Target > Build Settings.
The validation was successful and submitted the app to app store for review ... Just updating FYI The app got approved
OTHER TIPS
The correct flag should be '-lsqlite3' as the ls syntax is (see $man ld):
-lx This option tells the linker to search for libx.dylib or libx.a in the library search path. If string x is of the form y.o, then that file is searched for in the same places, but without prepending lib' or appending
.a' or `.dylib' to the filename.
If you use '-libsqlite3' for the flag you get the "Library not found" linker error.