Gibran
Gibran

Reputation: 934

Apple Mach-O Linker Error sqlite3

I got this error when building my apps. can anyone help me solve this problem?

I'm using swift and parse.com. thank you so much for your help!

since I can't post image, below I post the whole error message.

Undefined symbols for architecture i386:
  "_sqlite3_bind_blob", referenced from:
      -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_bind_double", referenced from:
      -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_bind_int64", referenced from:
      -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_bind_null", referenced from:
      -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_bind_parameter_count", referenced from:
      ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
      ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
  "_sqlite3_bind_text", referenced from:
      -[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_close", referenced from:
      ___30-[PFSQLiteDatabase closeAsync]_block_invoke in Parse(PFSQLiteDatabase.o)
  "_sqlite3_column_blob", referenced from:
      -[PFSQLiteDatabaseResult dataForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_bytes", referenced from:
      -[PFSQLiteDatabaseResult dataForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_count", referenced from:
      -[PFSQLiteDatabaseResult columnNameToIndexMap] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_double", referenced from:
      -[PFSQLiteDatabaseResult doubleForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_int", referenced from:
      -[PFSQLiteDatabaseResult intForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_int64", referenced from:
      -[PFSQLiteDatabaseResult longForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_name", referenced from:
      -[PFSQLiteDatabaseResult columnNameToIndexMap] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_text", referenced from:
      -[PFSQLiteDatabaseResult stringForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_column_type", referenced from:
      -[PFSQLiteDatabaseResult objectForColumnIndex:] in Parse(PFSQLiteDatabaseResult.o)
      -[PFSQLiteDatabaseResult columnIndexIsNull:] in Parse(PFSQLiteDatabaseResult.o)
  "_sqlite3_errmsg", referenced from:
      -[PFSQLiteDatabase _errorWithErrorCode:] in Parse(PFSQLiteDatabase.o)
  "_sqlite3_finalize", referenced from:
      ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
      ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
      -[PFSQLiteStatement close] in Parse(PFSQLiteStatement.o)
  "_sqlite3_open", referenced from:
      ___29-[PFSQLiteDatabase openAsync]_block_invoke in Parse(PFSQLiteDatabase.o)
  "_sqlite3_prepare_v2", referenced from:
      ___59-[PFSQLiteDatabase executeQueryAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
      ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
  "_sqlite3_reset", referenced from:
      -[PFSQLiteStatement reset] in Parse(PFSQLiteStatement.o)
  "_sqlite3_step", referenced from:
      ___57-[PFSQLiteDatabase executeSQLAsync:withArgumentsInArray:]_block_invoke in Parse(PFSQLiteDatabase.o)
      -[PFSQLiteDatabaseResult next] in Parse(PFSQLiteDatabaseResult.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Upvotes: 16

Views: 13777

Answers (4)

Niall Kehoe
Niall Kehoe

Reputation: 416

I've had this problem before. Just import libsqlite.dylib and libz.dylib from frameworks and your errors will disappear.

Upvotes: 4

julianwyz
julianwyz

Reputation: 3172

I just had this happen too and @Gibran's answer put me on the right track. The one difference that I found using Xcode 7 and iOS 9 is that the libsqlite3.dylib has been replaced by libsqlite3.tbd

Upvotes: 9

Gibran
Gibran

Reputation: 934

after trial and error, the answer is check all the framework again. it seems parse.com just made an update in this several months.

currently it need libsqlite3.dylib as on of it library.

if you find similar problem, firstly check the most updated requirement here: https://www.parse.com/apps/quickstart#parse_data/mobile/ios/native/existing

Upvotes: 30

moonvader
moonvader

Reputation: 21091

You can find answer there (you need to add frameworks to your project)

Link Errors with Parse.framework iOS

Upvotes: 2

Related Questions