objective docs developer apple ios xcode macos cocoa icloud

ios - docs - swift apple developer



Forzar o "alentar" a iCloud a cargar cambios en un archivo (2)

Tengo una aplicación Mac y iOS que comparte datos usando iCloud, a través de un único archivo "caja de zapatos".

La mayoría de las veces, los cambios se sincronizan correctamente de manera eficiente y rápida. Sin embargo, de vez en cuando (particularmente en este momento) los cambios que realizo en un dispositivo simplemente permanecen allí.

He realizado cambios en mi Mac al archivo de datos compartidos y los datos se han guardado en el disco. Sin embargo, no sé si la falla del sistema para cargar los datos en iCloud o la falla del dispositivo iOS para verificar los nuevos datos, pero estoy manipulando mis pulgares.

El archivo de 5KB a continuación es el que debe estar cambiando. No importa cuántos cambios realice en la aplicación de Mac, de vez en cuando durante las pruebas, iCloud solo detendrá la sincronización de los cambios. Si me marcho durante 20 minutos y vuelvo, podría volver a arrancar.

Además: si ejecuto la aplicación de Mac en Xcode y vigilo el mismo archivo, aunque realice cambios en el archivo y puedo confirmar que el archivo en el disco (en el Finder / Terminal) está cambiando, el panel de iCloud en Xcode tampoco recoge estos cambios muy rápidamente:

Tenga en cuenta que el mismo archivo de 5KB ha cambiado en mi sistema de archivos local en mi Mac (a las 9:01 ), pero iCloud simplemente no lo está detectando. Hay cambios de contenido reales en este archivo, no solo un cambio de fecha de modificación.

Entonces, me gustaría encontrar una manera de:

  1. Activa la sincronización mediante programación, o incluso utilizando Xcode. Sé que la sincronización de iCloud se puede activar usando el simulador, pero esto solo funciona cuando se prueba en iOS, y de todos modos prefiero hacer mis pruebas en el hardware real. O,

  2. Determine quién (o qué) es "culpable" para los datos que no se comparten. He seguido los documentos de iCloud desde el principio, asegurándome de que estoy utilizando escrituras coordinadas para guardar cambios, etc. Es solo una cosa muy intermitente en la que iCloud se duerme y hace que las pruebas sean muy frustrantes.


Me di cuenta de que cuando migras cualquier tienda a tu tienda iCloud existente, la tienda iCloud agrega esos datos y fuerza la sincronización a la versión de iCloud. Así que migro una tienda vacía a mi tienda iCloud existente, ¡y forcé la sincronización!


No creo que pueda activar la sincronización de los archivos seleccionados, pero puede usar esta herramienta "brctl" para ver qué sucede debajo del capó (o diagnosticar) (en OSX), para diagnosticar de qué se trata.

comando de línea común:

$ brctl

por ejemplo, utilízalo así

brctl log --wait --shorten

o brctl diagnosticar