Problème lors de l'exécution de Tests

J’ai commencé à regarder la partie du cours sur les tests, et j’ai essayé de travailler dessus.
Mais même en suivant parfaitement le cours de Maxime, j’obtiens l’erreur suivante lorsque je lance mes tests :

Framework not found Realm for architecture x86_64
Linker command failed with exit code 1 (use _v to see invocation)

Je ne comprends pas ce qu’il se passe. Est-ce que quelqu’un peut m’aider ?

Hello,

Il y a beaucoup de personnes avec ton problème qui ont réussi à le résoudre.

J’ai beau chercher dans les liens que vous avez fourni, je ne trouve pas comment résoudre mon problème…

In Xcode, the framework search path build setting determines where the linker looks for frameworks at link time. Since your app target attempts to link to RealmSwift.framework (as a result of importing ParentFramework), RealmSwift.framework needs to be available on the framework search path.

It’s important to note that while nested frameworks work in the iOS simulator and even locally on your device, iTunes Connect rejects app bundles that contain nested frameworks. The expected pattern is that all frameworks are embedded directly within the app.

Il y a manifestement un problème de lien entre le framework RealmSwift et ton projet. Il faut manifestement vérifier que le framework est bien contenu dans la target de ton projet (que la target soit bien cochée quand tu sélectionne le framework) et ils conseillent aussi d’insérer le fichier RealmSwift.framework directement dans le projet pour éviter ces problèmes de lien.

Maintenant, Realm est loin d’être ma spécialité donc je vais aussi donner la parole à d’autres personnes sur le forum qui le maîtrisent mieux que moi.

Quand je sélectionne le framework RealmSwift et que je coche la Target, le fichier RealmSwift.framework s’insère directement dans le projet.
Mais ça ne résout pas le problème…

Quand tu as créé ton fichier Cocoapods est-ce que la target de test était déjà créée ?
Dans cocoapods tu peux préciser les libs à utiliser dans chaque target, si tu n’as que la target de ton app dans ton podfile il faut que tu ajoutes la target de tes tests , puis que tu mettes la ligne de realm dedans et que tu refasses un pod install

Hello @juliengeneste

Je viens d’avoir le même soucis.
Pour résoudre le soucis, tu as deux possibilités (une plus propre que l’autre)

Solution 1: (la moins bonne)

Au début de ton fichier de test, tu ajoutes:

import RealmSwift

Solution 2: (conseillée par Maxime)
Dans ton fichier Podfile, tu peux simplement ajouter la ligne suivante:

pod 'RealmSwift'

pour la target des tests. Comme moi, tu l’avais probablement uniquement ajoutée pour la Target de ton application, mais pas des tests.
Une fois cette ligne ajoutée: direction le Terminal, tu te rends dans le dossier de ton application, et tu fais un coup de:

pod install

Ensuite tu peux clean ton projet xCode, et tout devrait rentrer dans l’ordre.
De mon côté, comme Realm n’était pas à jour, j’en ai profité pour le mette à jour, et j’ai du aussi mettre à jour les paramètres dans xCode (il prévenait sous forme de warning)

En espérant que ça t’aide :slight_smile:

Tu es certain que cette solution fonctionne ? Je pense que si Realm n’est pas ajouté dans le podfile, l’import de RealmSwift ne va pas compiler.

Oui, je l’ai testé chez moi (et j’ai vérifié que je n’avais pas mis Realm dans la Target test) et c’est passé.

1 « J'aime »

Merci Maxime,
Ta solution fonctionne parfaitement.

1 « J'aime »