web-dev-qa-db-fra.com

Interface Builder - Impossible de charger les objets de conception depuis le chemin d'accès (null)

J'ai créé certains contrôles personnalisés et je les utilise dans un nouveau projet. Cependant, je continue à avoir des erreurs dans le constructeur d'interface:

Failed to update auto layout status: Failed to load designables from path (null)

ou

Failed to render instance of <control>: Failed to load designables from path (null)

J'ai testé les contrôles dans un autre projet et ils semblent rendre correctement dans le constructeur d'interface, mais je ne peux pas les faire fonctionner dans le projet actuel. Qu'est-ce qui cause cette erreur et comment puis-je la réparer?

Merci d'avance...

53
Jake

J'ai eu le même problème. J'utilise des cocoapodes et il y a un pod qui utilise des designables. L'astuce consistait donc à ajouter 'use_frameworks!' au fichier podfile. faire une «mise à jour pod» rouvrez le projet xcode et le message d'erreur ne devrait pas apparaître.

61
i89

Modifier**

Ouvrez Xcode (mais n'ouvrez pas votre projet) et cliquez sur Fenêtre (deuxième à droite)

Cliquez sur Organiseur et assurez-vous que vous êtes sur Projets, puis supprimez toutes les données dérivées. Fermez Xcode, puis rouvrez votre projet et laissez Xcode réindexer vos fichiers et voir si le problème est résolu. 

11
Anthony Taylor

J'utilise Xcode 7.3, et l'erreur a disparu comme par magie en suivant ces étapes qui ont finalement laissé mon projet dans l'état exact qu'il était avant de suivre ces étapes (c'est-à-dire une modification nette nulle):

  1. Ajoutez 'use_frameworks!' (sans les apostrophes, bien sûr) à votre podfile
  2. Ouvrir une fenêtre de terminal
  3. cd à la racine de votre projet
  4. Exécutez 'pod install' à partir de la ligne de commande
  5. Supprimez le 'use_frameworks!' depuis votre podfile
  6. Exécutez à nouveau 'pod install'
  7. Essayez de construire à nouveau et voyez si cela corrige l'erreur ça l'a fait pour moi

Cela ressemble à l'un de ces accrocs occasionnels Xcode que nous avons tous vus, en particulier lorsque vous êtes pressé de faire autre chose.

4
John Jacecko

J'ai eu le même problème sur le projet non-CocoaPods avec des vues personnalisées IBDesignable. Apparemment, c'est un bug de Xcode. Les étapes de cette réponse m'ont aidé à résoudre le problème. En bref:

  1. Quittez Xcode.
  2. Tuez tous les processus nommés Interface Builder Cocoa Touch Tool sur votre ordinateur.
  3. Redémarrez Xcode.
2
pjuzeliunas

Ce problème a été corrigé dans la dernière version de Cocoapods. 

Pour installer, lancez simplement:

[Sudo] gem install cocoapods --pre

Afin de corriger l'erreur: "Echec du chargement des objets de conception depuis le chemin (null)":

use_frameworks!

   pod '****'



end

Ajoutez use_frameworks! à votre podfile

Find more: Live Rendu d'un composant personnalisé à l'aide de IB_DESIGNABLE à partir d'une dépendance de pod

2
PeiweiChen

Je ne sais pas si cela résoudra votre problème, car je ne peux pas le reproduire. Mais je pensais que tu pourrais essayer quand même.

Premièrement, comme d'autres l'ont mentionné, il semble que CocoaPods ait le même problème. J'ai parcouru les commits qui ont constitué leurs corrections, mais aucun résultat lié à votre réglage.

Cependant, j'ai trouvé un message d'erreur lié différent dans cette question StackOverflow , qui était également liée à un élément non trouvé par IB sur le chemin. Je me demandais si leur solution pourrait vous aider:

La solution consistait à ajouter $(CONFIGURATION_BUILD_DIR) dans le champ Build settingsRunpath Search Paths de la cible.

1
Dennis

Il existe une astuce très pratique que vous pouvez faire pour déboguer le rendu en direct.

1) Ajoutez cette extension à votre projet:

    extension UIView {
    public func liveDebugLog(message: String) {
        #if !(TARGET_OS_IPHONE)
            let logPath = "/tmp/XcodeLiveRendering.log"
            if !NSFileManager.defaultManager().fileExistsAtPath(logPath) {
                NSFileManager.defaultManager().createFileAtPath(logPath, contents: NSData(), attributes: nil)
            }

            var fileHandle = NSFileHandle(forWritingAtPath: logPath)
            fileHandle.seekToEndOfFile()

            let date = NSDate()
            let bundle = NSBundle(forClass: self.dynamicType)
            let application: AnyObject = bundle.objectForInfoDictionaryKey("CFBundleName")
            let data = "\(date) \(application) \(message)\n".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
            fileHandle.writeData(data)
        #endif
    }
  }

2) Ajoutez une liveDebugLog(message:) et mettez ce que vous voulez savoir . 3) Ouvrez Terminal.app et exécutez la commande open /tmp/XcodeLiveRendering.log

Terminé!

Crédits pour Morten Bøgh

1
Rafael Machado

Le problème était que IB_DESIGNABLE à partir de cocoapods n'est pas lié correctement lorsque le générateur d'interface rend vos vues.

L'astuce use_frameworks! devrait le faire, mais pour moi, c'était un peu trop d'effort de migrer le code.

Mon astuce consistait à sous-classer toutes les vues IB_DESIGNABLE que j'ai utilisées dans le storyboard et qui provenaient directement des modules. Résolu les erreurs.

1
Antzi

j'ai résolu ce problème en mettant à jour le module "pod update" j'espère que cela fonctionnera pour vous

1
Yuvraj Kale

Je n'utilise pas CocoaPods, mais j'utilise un framework interne qui contient des éléments IBDesignable et rencontrait également ce problème. J'ai nettoyé, supprimé les données dérivées de mon projet principal et redémarré Xcode, mais cela ne semble pas avoir résolu le problème. Pour le résoudre, je devais aller à Fenêtre> Projets, sélectionner le projet de cadre (pas le projet utilisant le cadre, mais plutôt le projet de cadre lui-même), puis supprimer les données dérivées. Donc, étapes complètes:

  1. Menu produit> Nettoyer
  2. Maintenez la touche Option enfoncée> Menu Produit> Nettoyer le dossier de construction ...> Nettoyer.
  3. Menu Fenêtre> Projets> Choisir mon projet Framework> Supprimer les données dérivées
  4. Menu Fenêtre> Projets> Choisir mon projet principal> Supprimer les données dérivées
  5. Quitter Xcode
  6. Redémarrer Xcode

Répétez l'étape 3 pour tous les projets de structure ayant IBDesignables et pouvant être à l'origine des erreurs.

1
Will Clarke

Je n'utilisais pas de cacao, mais cette erreur se produisait sur un contrôleur de vue qui étendait des classes importées. Cette erreur ne se produisait que lorsque je modifiais StoryBoard en vue IphoneX, cela fonctionnait correctement sur la vue iPhone 8. 

J'ai changé les paramètres du projet de New Build System (Preview) à Système de construction standard, puis j'ai nettoyé le projet et l'erreur a disparu. 

Aucune idée pourquoi mais cela a résolu le problème pour moi. 

0
mariosm

Cette erreur est apparue lorsque j'ai mis à jour les pods alors que le xcode et mon projet étaient ouverts.

Je ferme le xcode. a lancé la mise à jour du pod à nouveau. xcode redémarré.

l'erreur n'apparut plus.

0
KawaiKx