web-dev-qa-db-fra.com

XCode 6 GM se bloque lors de la sélection du storyboard principal ou d'un xib

Je viens de télécharger le XCode 6 GM et chaque fois que je sélectionne le storyboard principal (et un xib spécifique), XCode plante.

L'erreur à envoyer à Apple contient les informations suivantes

ASSERTION FAILURE dans /SourceCache/IDEInterfaceBuilderCocoaTouch/IDEInterfaceBuilderCocoaTouch-6238/InterfaceBuilder/Documents/IBCocoaTouchPlatform.m:531 Le résultat du calcul de l'état renvoyé n'est pas un résultat IBMarshallingResult, il est {

Toute personne rencontrant le même problème?

16
abinop

J'ai entendu dire qu'il pourrait s'agir d'un problème d'autolayout, alors j'ai essayé de le désactiver manuellement et cela a fonctionné!

Si vous cliquez avec le bouton droit sur le fichier de scénario, ouvrez en tant que code source et SUPPRIMEZ le paramètre useAutolayout = "YES", puis nettoyez, reconstruisez, vous devriez pouvoir ouvrir sans problèmes.

23
Edgar Carvalho

Cela me causait beaucoup de problèmes, et recréer le storyboard n'était pas une option. Je l'ai dépassé en ctrl/clic droit sur le storyboard et en faisant

"Ouvrir en tant que>>" Code source "

J'ai ensuite fait une petite modification, l'ai défaite et ré-enregistré le fichier. Puis j'ai fait

"Ouvrir en tant que>>" Interface Builder - Storyboard "

Il a ouvert sans crash XCode.

16
averydev

Pour résoudre ce problème:

  1. ouvrez une fenêtre du Finder et accédez à votre projet
  2. cliquez avec le bouton droit sur le fichier .xcodeproj (c’est un paquet)
  3. sélectionnez Afficher le contenu du paquet
  4. une nouvelle fenêtre apparaît
  5. supprimer un dossier appelé xcuserdata

Comment éviter cela à l'avenir: une fois ajouté à .gitignore, vous devez exécuter la commande suivante:

git rm --cached ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/yourUserName.xcuserdatad/UserInterfaceState.xcuserstate

git commit -m "Removing file thats driving me insane"
8
Ricardo Anjos

(1) Avez-vous nettoyé et reconstruit le projet?

(2) Avez-vous essayé de vider le dossier xcuserdata? Le dossier contient des états d'interface utilisateur et peut être la raison d'un tel problème, notamment lorsque xcode a été mis à jour. Le dossier xcuserdata se trouve dans le répertoire de votre projet lorsque vous cliquez avec le bouton droit de la souris sur votre "fichier" .xcodeproj et que vous sélectionnez "afficher le contenu du package". Fermez Xcode, videz le dossier xcuserdata et rouvrez le fichier .xcodeproj.

J'espère que l'un de ces aide :)

3
Eike

Si les utilisateurs utilisent plusieurs onglets, cela pourrait être un problème. Mon XCode 6.0.1 ne répondait plus quand le même story-board était ouvert dans plus d'un onglet ...

1
akiraspeirs

Je viens de vivre la même chose. Il s’est avéré qu’il s’agissait d’un duplicata d’UILabel dans le storyboard en raison d’une fusion de git. Apparemment, Xcode plantera si deux éléments de l'interface utilisateur ont le même identifiant interne.

Quelque peu similaire à la méthode d’andrew-burke, ma méthode pour trouver le problème responsable consistait à rechercher, via git, le changement de problème. Pas:

  • Faites un pas en arrière dans l’historique de git, en vérifiant chaque commit jusqu’à ce que vous trouviez le premier storyboard qui ne bloque pas Xcode.
  • Une fois que le commit qui a commencé à planter a été validé, vérifiez HEAD et annulez de manière itérative les modifications du scénario dans le commit du problème. Continuez à le réduire jusqu’à ce que vous ayez l’élément ou la seule ligne de l’interface utilisateur susceptible de provoquer un crash.
  • Annulez définitivement la modification responsable et redémarrez Xcode. Ouvrez à nouveau le storyboard et vous risquez d'être averti d'une incohérence interne. Acceptez les modifications proposées par Xcode, mais examinez-les.
  • Si nécessaire, vous pouvez maintenant tenter de recréer l'élément d'interface utilisateur ou les modifications à partir de rien qui étaient à l'origine du problème.
0
AWrightIV

Xcode 7.1 sur Mac OS X 10.11.1 s'est bloqué et l'ouverture du même projet en cliquant avec le bouton droit de la souris sur l'icône xcode l'a fait planter à nouveau. Ensuite, j'ai rectifié l'icône xcode et ouvert un autre projet de la liste récente, puis le même projet qui se bloquait depuis l'élément récent du menu de xcode et il ne s'est pas bloqué.

0
zeeawan

S'agissait-il d'une version précédente de Xcode ou d'une des versions précédentes de Xcode 6? Si ce dernier, alors la solution sera de le recréer.

Vous pourrez peut-être jeter un coup d'œil dans le fichier de story-board et déterminer s'il s'agit d'un document valide. Le fichier est basé sur XML. Vous devriez ainsi pouvoir voir s'il manque des éléments ou des problèmes liés à un conflit de fusion, par exemple. Vous pouvez également essayer de supprimer des écrans particuliers pour voir si cela résout votre problème. Peut-être que le problème concerne un écran particulier.

Je suggérerais également de vérifier si vos objets ont implémenté un attribut IBDesignable et si vous l'avez utilisé dans le storyboard; Si tel est le cas, le NSCoder pourrait ne pas être en mesure de restaurer l'objet à partir du fichier.

0
AlBlue

Ce qui a fonctionné pour moi, et toujours en utilisant AutoLayout

  1. Ouvrez le storyboard en tant que code source
  2. Utilisation de useAutolayout = "YES" pour utiliserAutolayout = "NO"
  3. Fermer le code source
  4. Ouvrez le storyboard en tant qu'interface Builder - Storyboard
  5. Et voici l'étape la plus importante: dans la vue Inspecteur de fichier (volet de gauche), cochez la case "Utiliser la mise en forme automatique"

Terminé.

0
mrd

Mon Xcode est tombé en panne lorsque j'ai fait glisser un bouton sur Main.storyboard pour créer une IBOutlet.

Je l'ai trouvé causé par un élément de paramètres de construction - [Comptage automatique de références Objective-C].

Si la valeur est "Non", Xcode se bloquera lors de la création d'un IBOutlet.

OS X Version: Yosemite 10.10.1 

Xcode Version: 6.1.1 (6A2008a)

J'espère que cela t'aides.

0
John

J'ai eu le même problème après la mise à niveau de Xcode 5 vers 6.0.1. Essayer de charger mon grand et compliqué storyboard iPad aurait pour effet de geler Xcode, d’afficher le Pinwheel Of Death et de le bloquer. Parfois, il y avait aussi des erreurs sur la construction, mentionnant les OID manquants.

J'ai fini par restaurer le fichier Storyboard dans Git (via la ligne de commande, car Xcode ne me laissait pas aller aussi loin) jusqu'à la toute première version directement issue du modèle. J'ai nettoyé le projet et l'ai reconstruit, et le scénario a été chargé correctement.

Je suis ensuite allé de l'avant en commettant, en nettoyant et en construisant à chaque fois. Je m'attendais à ce que les choses se cassent à nouveau - mais je suis arrivé jusqu'au dernier commit sans aucun gel.

Lorsque j’ai essayé de prendre l’avance plusieurs semaines plus tard, j’ai eu le gel et l’écrasement.

Je me demande si le nouvel éditeur de Storyboard dans la version 6.0.1 doit simplement construire ses représentations internes (et ses caches?) De manière plus simple et plus simple, plutôt que le saut géant d’un fichier compliqué complet.

Ce processus d'incrustation/restauration/reconstruction a pris environ 45 minutes pour moi, mais c'est beaucoup moins de temps qu'il n'en faudrait pour reconstruire ce scénario. J'espère que cela vous aide.

0
Andrew Burke

Une solution consiste à ouvrir le fichier xib dans XCode 5 et à le laisser modifier de nombreux paramètres. Puis ouvrez dans Xcode 6.

0
Mustafa

Je suis tombé sur cela sur XCode 8, et j'ai pu

  • enregistrer mes modifications de storyboard corrompues sur une branche git.
  • basculé vers une branche différente revient à un commit plus ancien avant que le Storyboard ne soit corrompu
  • voir le fichier de storyboard en XCode
  • bascule de nouveau en branche avec un storyboard corrompu et XCode ne s'est pas bloqué tout en affichant le fichier de storyboard
0
subjective_c