2

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

sudheer_chum
  • 221
  • 2
  • 10

2 Answers2

14

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

sudheer_chum
  • 221
  • 2
  • 10
  • Thx man! I have a app coming out in a few weeks and I have libsqlite3.dylib included. Knowing this will save me a rejection. So once again, thx! – Hrafn Nov 15 '12 at 13:42
  • 1
    you are welcome @MrDresden and good luck, i felt the following link useful before submitting the app to appstore for review See [this](http://www.makayama.com/checklist.html) – sudheer_chum Nov 27 '12 at 10:11
4

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.

PeV
  • 41
  • 1