Installer Realm

J’ai un problème. Je cherche à me débarrasser de Core Data pour aller vers Realm qui permet de jouer à la fois la carte iOS et Android. Il semble exister possibilité de l’utiliser sur Flutter, mais aussi sur SwiftUI. J’ai dans un premier temps tenté d’utiliser le gestionnaire de package de Xcode; mais il y a un problème avec une solution pour le contourner indiquée sur le site de Realm. Mais ça ne marche pas. Au moment de valider les fichiers avant de les charger, le gestionnaire se fige et ne réagit plus qu’à « annuler » même après une nuit d’attente.
J’ai donc voulu essayer avec la vieille méthode par Cocoapods et voici le message d’erreur que j’obtiens :
«
[!] /bin/bash -c

set -e

sh build.sh cocoapods-setup

Downloading dependency: 11.6.1 from https://static.realm.io/downloads/core/realm-monorepo-xcframework-v11.6.1.tar.xz

Downloading core failed:

https://static.realm.io/downloads/core/realm-monorepo-xcframework-v11.6.1.tar.xz

curl: (7) Failed to connect to static.realm.io port 443: Bad file descriptor
»

C’est moi qui doit changer quelque chose, ou bien c’est chez MongoRealm qu’il y a du bazar ?
Y a-t-il une voie de contournement ?

Hello,

Je suis passé de CoreData à Realm il y a deux semaines sans embuche. Pas de bazar pour moi chez MongoRealm.

J’ai suivi pas à pas le process officiel. Le lien au cas où : https://docs.mongodb.com/realm/sdk/swift/install/#std-label-ios-install

Je suis passé par SwiftPM et comme j’étais en 13.1, j’ai du passer par cette configuration :

If you are using Xcode version 13.1 to install the RealmSwift SDK, you may run into an issue where Up to Next Major installs version ~5.x instead of ~10.x. This is related to the way Xcode 13.1 handles versions, and will hopefully be resolved in a future Xcode release.

Meanwhile, you can bypass this issue in one of two ways:

  • Set the version as Up to Next Major and set the minimum version to 10.19.0 (or the minimum version you want to install)
  • Choose Exact, and specify the version you want to install

J’espère que ça pourra t’aider !!

Si ça t’interesse, j’ai un exemple de code fonctionnel pour les actions principales sur une base de donnée Realm mais la doc officielle est très claire.

Happy Coding !

1 « J'aime »

Je suis allé voir le forum des développeurs de chez MongoDB Realm et j’ai trouvé quelqu’un qui a le même problème que moi. C’est en anglais, c’est fatiguant à lire, mais ça valait le coup. Un certain Bruce_Cichowlas a exactement le même message que d’erreur que moi. Lui aussi a essayé de changer la version de Swift dans l’espoir de résoudre le problème, mais ce n’est pas la version de Swift qui est en cause, c’est le compilateur lui-même… Un des développeurs de Realm soi-même est venu expliquer que c’est Swift Package Manager qui est bugué sur Xcode 13.2 et l’utilisateur qui est pressé et développe un logiciel musical cherche à downgrader Xcode pour ne pas multiplier les versions à 9 GB sur son disque.
Pour ma part, je ne sais pas ce que je vais faire… Parce que une chose est sûre, le Realm pour Flutter, il est en version alpha.

Je me suis acharné quand même. J’ai fait un petit programme pour voir, en SwiftUI, mais j’ai deux messages d’erreur :
un en rapport avec l’installation :
objc[89306]: Class _PointQueue is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore (0x131271e08) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/TextInputUI.framework/TextInputUI (0x1430278e0). One of the two will be used. Which one is undefined.
et l’autre, en rapport avec l’utilisation (?) :
2021-12-29 10:39:29.741557+0100 EssaiavecRealm[89306:5724406] [boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics

Une idée ? Que faire ?

Je pense que s’il y a un problème reconnu avec la version actuelle, le plus sage est probablement de réinstaller la version précédente en attendant qu’ils aient corrigé le soucis.

Ayant éprouvé beaucoup de difficultés avec la version précédente, et n’étant pas de nature apte renoncer facilement, je me suis acharné. J’ai toujours les mêmes messages, mais ça marche. En établissant par essais et erreurs un programme SwiftUi utilisant Realm pour voir, étudier comment migrer de CoreData à Realm, j’ai réussi finalement à faire tourner une base Realm malgré les messages d’erreur, mais j’ai été confronté à la nécessité d’une migration, et je dois dire que je n’y suis pas parvenu.
Je ne suis jamais parvenu à faire fonctionner mon « migration block », et je n’ai trouvé comme solution que de supprimer les données en supprimant l’appli pour repartir une base de zéro.
Je dois dire que c’est concevable pour des essais, mais ce ne sera pas possible en production.
Est-ce que quelqu’un a déjà réussi une migration avec Realm associé à SwiftUI ou à Flutter ?

Je n’ai toujours pas de solution pour migrer. Mais je pense pouvoir reporter à plus tard, puisque au départ, on n’a pas besoin de migrer. Je vois bien désormais comment remplacer dans mon travail entièrement CoreData par Realm, au moins en SwiftUI, de façon complète, sauf migration ultérieure. Mais ça tombe bien, il fallait que je change la structure de ma base de données, autant le faire dès le départ pour ne pas avoir à migrer… Cette fois, je tiens le bon bout.

Reste à attendre que Realm s’installe comm il faut chez Flutter…

1 « J'aime »

Content que tu aies trouvé la solution :+1:

Un contournement, plutôt, mais bon, au moins, ça avance!