No puede simplemente poner la base de datos SQLite en el contenedor de iCloud, ya que podría corromperse. (Al modificar una base de datos SQLite, se crean y renombran archivos temporales, de modo que si el proceso de sincronización comienza a copiar esos archivos, obtendrá una base de datos corrupta)
Si no desea trasladarse a Core Data, puede hacer lo que hace Core Data: almacenar su base de datos en su carpeta de documentos y almacenar un registro de transacciones en el contenedor de iCould. Cada vez que cambia la base de datos, agrega esos cambios a un archivo de registro, para que pueda reproducirlos y realizar cambios equivalentes en otros dispositivos.
Esto se vuelve bastante complicado: aparte de obtener la lógica de registro/respuesta correcta, querrá unir los cambios redundantes y colapsar periódicamente el registro en una copia completa de la base de datos.
Es posible que le resulte más fácil desarrollar una solución si puede explotar el conocimiento de su aplicación (Core Data tiene que resolver el problema en el caso general). Por ejemplo, puede guardar las facturas como archivos separados en el contenedor de la nube (texto, Lista de propiedades, XML, JSON, lo que sea), escribirlas a medida que cambia la base de datos e importarlas solo si el sistema le informa que fueron creadas o modificadas.
En resumen, su elección es migrar a Datos centrales o escribir una solución de sincronización usted mismo. Cuál es el mejor depende de los detalles de su aplicación.
¿Dónde Apple dijo eso? – mamcx
Acabo de editar mi publicación para incluir la fuente – kris