Petite question (désolé je ne vais pas aider à la résolution du problème). J’ai une apps similaire mais pas avec du vin mais des BD ou des livres (c’est moins fun ) . On insère un livre et il est possible d’uploader une vignette de la couverture de la BD soit à partir de l’APN de l’iPhone/iPad soit à partir de la bibliothèque de l’appareil.
Le tout est sauvegardé de la même façon que toi via Core Data et syncro dans CloudKit.
Comme l’appli est en swiftui, je passe par un picker (UIViewControllerRepresentable) pour sélectionner les images avant de les sauvegarder dans CoreData (type de donnée Binary).
le taux de compression est à 0.5 en jpg
Mon problème est en production : la synchronisation ne se fait pas d’un appareil à un autre et semble même bloquer complètement toute la syncro; ce qui fait que les appareils ne sont pas à jour entre eux.
je n’ai aucun problème en développement : les deux simulateurs se synchronisent parfaitement et quasi instantanément.
Du coup, je ne vois pas trop où peut être le problème… Si quelqu’un à une idée (erreur dans la migration du schéma CloudKit peut être?)…
C’est pas faux mais avant de montrer du code il faudrait déjà que j’ai une idée de l’endroit où est le problème… vu que je ne l’ai pas en développement mais seulement en production…
Montre nous comment tu récupères l’image et comment tu la mets dans un objet core data puis comment tu sauves la base core data.
Une idée comme ça de source possible de problème: un problème de thread pour le NSManagedObjectContext ? Mais, il peut sans doute y en avoir des dizaines !
Merci pour l’info.
Je viens de tester : pas d’erreur de log quand je teste sur le simulateur. donc a priori, la donnée s’enregistre bien dans CoreData.
par contre, coté prod, si je regarde les enregistrements que j’ai fait, le champ correspondant à l’image n’apparait pas dans CloudKit ce qui voudrait dire :
sur un terminal « physique » , Core Data n’enregistre pas. mais dans ce cas, pk ce qui marche sur le simulateur ne marcherait pas en vrai ?
entre deux terminaux « physiques », les données Core Data de l’un ne remontent pas vers iCloud et donc ne redescendent pas vers le deuxième terminal.
En production ça ne va pas: aucune image ne remonte dans CloudKit et cela semble même bloquer la synchronisation des autres données (ou en tout cas ça l’a ralenti fortement).
Problème apparement résolu : il s’agissait plutôt d’une erreur de déploiement du schéma de données (les données relatives aux images manquaient dans le schéma de production) plutôt qu’une erreur de code.