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...
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.
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.
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):
Cela ressemble à l'un de ces accrocs occasionnels Xcode que nous avons tous vus, en particulier lorsque vous êtes pressé de faire autre chose.
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:
Interface Builder Cocoa Touch Tool
sur votre ordinateur.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
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 settings
Runpath Search Paths
de la cible.
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
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.
j'ai résolu ce problème en mettant à jour le module "pod update" j'espère que cela fonctionnera pour vous
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:
Répétez l'étape 3 pour tous les projets de structure ayant IBDesignables et pouvant être à l'origine des erreurs.
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.
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.