Нельзя просто поместить базу данных SQLite в контейнер iCloud, поскольку она может быть повреждена.(При изменении базы данных SQLite временные файлы создаются и переименовываются, поэтому, если процесс синхронизации начнет копировать эти файлы, вы получите поврежденную базу данных.)
Если вы не хотите переходить в CoreДанные, вы можете делать то, что делает Core Data: хранить базу данных в папке с документами и сохранять журнал транзакций в контейнере iCould.Каждый раз, когда вы изменяете базу данных, вы добавляете эти изменения в файл журнала, так что вы можете воспроизводить их и вносить эквивалентные изменения на других устройствах.
Это становится довольно сложным: помимо правильной логики лог / ответвы захотите объединить избыточные изменения и периодически свернуть журнал в полную копию базы данных.
Возможно, вам будет проще разработать решение, если вы сможете использовать знания своего приложения (Core Data должнарешить проблему в общем случае).Например, вы можете сохранять счета в виде отдельных файлов в облачном контейнере (текст, список свойств, XML, JSON и т. Д.), Записывать их при изменении базы данных и импортировать только, если система сообщит вам, что они были созданы или изменены.
Таким образом, вы можете либо перейти на Core Data, либо самостоятельно написать решение для синхронизации.Какой из них лучше, зависит от особенностей вашего приложения.