Вы оставляете базу данных в базовом пути приложения?
Потому что, если вы, реальное оборудование не позволит вам записывать файлы в этом каталоге, просто прочитайте. Для записи в базу данных вам сначала необходимо скопировать ее в доступный каталог.
Я делаю что-то похожее на это (где filename это строка NSString, содержащая имя файла базы данных):
NSArray *docPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [docPaths objectAtIndex:0];
NSString *fullName = [docPath stringByAppendingPathComponent:fileName];
NSFileManager *fm = [NSFileManager defaultManager];
if (![fm fileExistsAtPath:fullName])
{
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *defaultName = [path stringByAppendingPathComponent:fileName];
[fm copyItemAtPath:defaultName toPath:fullName error:NULL];
}
По сути, проверьте, существует ли файл, и скопируйте его из базового bundlePath, если он не существует.