Hello Ashish,
FMDB will only set the key on the database if SQLCipher is properly linked, and the FMDB classes are compiled with SQLITE_HAS_CODEC defined. The default behavior for FMDB is to return false on setKey if there is an error, or SQLITE_HAS_CODEC is not defined. Therefore, I would like you to try these two steps:
1. Once you have opened the connection, execute a query for "PRAGMA cipher_version;". If SQLCipher is indeed properly linked into your application it should return "2.1.1". If it doesn't return that string, then it's likely the static linking isn't occurring
2. Post a gist of the full build log, which will allow us to see whether -DSQLITE_HAS_CODEC is actually being passed in when fmdb is compiled.
Please let us know what you find. Thanks!
Cheers,
Stephen