Le document Main.storyboard nécessite Xcode 8.0 ou version ultérieure

94

J'ai téléchargé Xcode beta et ouvert mon projet existant pour voir comment il fonctionne avec Xcode 8 beta (j'ai ouvert le fichier Storyboard à partir de Xcode 8).

Maintenant, lorsque j'ouvre mon projet à partir de Xcode 7.3, je ne peux pas ouvrir le fichier de storyboard, cela me donne l'erreur suivante

Cette version ne prend pas en charge les documents enregistrés au format Xcode 8. Ouvrez ce document avec Xcode 8.0 ou version ultérieure.

Erreur Xcode 7 Que dois-je faire pour revenir en arrière, car je souhaite continuer à travailler sur Xcode 7.

Dans Xcode 8, j'ai été invité à sélectionner l'appareil et j'ai sélectionné l'iPhone 6S, je pense que cette partie est en quelque sorte responsable du fichier de storyboard qui ne s'ouvre pas dans Xcode 7

Bhumit Mehta
la source
7
Annuler les changements dans le contrôle de version
Wain
1
@Wain Oui, c'était toujours une option mais j'avais des changements non engagés et je voulais aussi connaître la solution (si cela ne prend pas beaucoup de temps)
Bhumit Mehta

Réponses:

212

J'ai compris:

Ouvrez votre Storyboard dans Xcode 8.

Cliquez sur l'inspecteur de fichiers.

Dans la section Document Interface Builder , sélectionnez Ouvre dans "Xcode 7.x" au lieu de "Dernier Xcode (8.0)", comme dans la capture d'écran suivante:

entrez la description de l'image ici

En faisant cela, vous recevrez une alerte disant "Enregistrer pour Xcode 7.x fermera votre document et les données pour les fonctionnalités Xcode 8.0 seront supprimées."

Cliquez sur Enregistrer et fermer et vous pourrez ouvrir le storyboard dans Xode 7.x.

Bhumit Mehta
la source
J'ai eu du mal à faire coller la modification, mais ce que j'ai fait, c'est de la changer, puis de la sauvegarder et de la fermer, à quel point elle n'a pas été enregistrée car elle était encore grise, puis j'ai assez Xcode (qui s'est bloqué) puis je l'ai forcée à quitter, et maintenant le storyboard fonctionne dans Xcode 7 ouf!
malhal
@Bhumit Mehta Cela ne fonctionne pas quand j'ai 2 storyboards différents pour ipad et iphone. Les modifications ne sont enregistrées que pour l'un d'entre eux. Plz me dire une solution de contournement.
mars
@mars: Il vous suffit de répéter les mêmes étapes pour les deux storyboards, je l'ai essayé dans un projet de test et cela a fonctionné.
Bhumit Mehta
2
où est le document Interface Builder?
natecraft1
10
MAIS si vous ouvrez à nouveau un projet dans xCode 8 et entrez dans un storyboard - vous aurez à nouveau le fichier de storyboard et vous devrez revenir à la version 7.x - et "Save and Cose" à nouveau
Massmaker
67

J'ai une solution:

  1. Ouvrez le storyboard en tant que "code source" (clic droit sur le storyboard -> ouvrir en tant que -> code source).
  2. Supprimer cette ligne:

<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  1. Supprimez-le pour tous les storyboards que vous utilisez.
  2. Exécutez l'application.
Himanshu
la source
13
Après avoir terminé les étapes ci-dessus, lors de l'ouverture du storyboard en tant que constructeur d'interface Xcode s'est écrasé !!!
Elangovan le
3
Cela peut avoir fonctionné dans XCode 8 Beta. Mais dans la version XCode 8, cela plantera XCode.
GeneCode
cela ne fonctionne pas maintenant, encore une erreur, et il est automatiquement réglé sur 8,0 lorsque le storyboard est ouvert
Arfan Mirza
la réponse acceptée semble beaucoup plus sûre que la simple suppression d'une ligne
kiedysktos
Remplacer le code par des chiffres différents ne fonctionne pas pour moi. Seule la suppression de la ligne de code corrige l'erreur. La réponse acceptée ne semble fonctionner que lorsque vous avez déjà Xcode8.
jinglei
27

C'est du travail pour moi

Cliquez à droite sur main.stoaryboard.Go pour ouvrir en tant que -> code source et modifier les dépendances

changement

 <capability name="documents saved in the Xcode 8 format"
     minToolsVersion="8.0"/>  to

   <capability name="documents saved in the Xcode 7 format"
     minToolsVersion="7.0"/>

Suivez la même étape sur launchscreen.

Preeti
la source
2
C'est jusqu'à présent la meilleure solution, au cas où vous n'auriez pas Xcode 8.0
Kampai
2
Merci pour la solution. Le même problème s'est produit après le passage de Xcode 9 à Xcode 8. J'ai changé "<Capacity name =" Safe area layout guides "minToolsVersion =" 9.0 "/>" en <capabilities name = "Safe area layout guides" minToolsVersion = "8.0" / >. Après ce changement, lorsque vous ouvrirez le storyboard dans le générateur d'interface, cette ligne sera supprimée.
Amit
10

Le même problème s'est produit après le passage de Xcode 9 à Xcode 8. J'ai ouvert le storyboard dans le code source et j'ai changé

"<capability name="Safe area layout guides" minToolsVersion="9.0"/>" 
to <capability name="Safe area layout guides" minToolsVersion="8.0"/>

Après ce changement, lorsque vous ouvrirez le storyboard dans le générateur d'interface, cette ligne sera supprimée.

Amit
la source
merci de m'avoir épargné quelques heures de travail, xcode m'avertit qu'une chose étrange a été trouvée et réparée pour que mon fichier se passe bien après cette modification?
brahimm le
7

J'ai rencontré cette question aussi. J'ai suivi cette méthode pour le changer: parce que je ne pouvais pas cliquer sur le menu pour choisir 7.0 ou une version ultérieure, j'ai ouvert le main.storyboardet launchscreen.storyboardavec le code source, puis j'ai changé sa version manuellement et cela a résolu le problème.

Michael Tangs
la source
5
Voici la ligne avant les modifications: <nom de capacité = "documents enregistrés au format Xcode 8" minToolsVersion = "8.0" /> Après les modifications: <nom de capacité = "documents enregistrés au format Xcode 7" minToolsVersion = "7.0" />
Dani.Rangelov
La version XCode 8.0 (non bêta) affiche minToolsVersion = "6.0"
GeneCode
4

Étant donné que XCode 8 ne cesse de convertir des fichiers de storyboard au format XCode 8 à chaque fois que je l'ouvre (c'est un ancien projet, et tout est foiré), j'ai fini par télécharger XCode 7 et l'utiliser juste pour éditer des fichiers de storyboard (et le fermer avant que je revenir à XCode 8). Si j'ouvre accidentellement un fichier de storyboard dans 8, je réinitialise simplement ce fichier au dernier commit, car le projet est sur GIT.

Stupide, je sais, mais ça marche.

Dimmy3
la source
3
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
    <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
</dependencies>

Remplacez vos dépendances par ces dépendances

Jason
la source
0

Ouvrez le storyboard en tant que Source Codeet recherchez la minToolsVersionclé. Définissez cette valeur sur 7.0 et ouvrez ce storyboard dans Xcode 7.x

iOS_Developer
la source
0

Comme @Bhumit_Metha a donné une solution simple. Malheureusement, dans mon cas, je n'ai pas de MAC avec la dernière version de Xcode (8.0+). Apportez ces modifications pour prendre en charge les nouveaux fichiers 'xib' dans mon ancien xcode (7.x).

Je me suis donc retrouvé avec une solution de travail avec des étapes simples comme suit:

[1] Créez un fichier xib vide dans votre xcode 7.x.

[2] Faites un clic droit sur le xib vide pour afficher la source et copier tout cela.

[3] Maintenant, ouvrez le nouveau xib (un avec une erreur de version) dans le visualiseur source. Collez le code précédent par-dessus.

[4] Remplacez toutes les lignes de l'ancien par une nouvelle balise intérieure: <objects> ...... </objects>

Et c'est tout. Fonctionnera avec compatible avec xcode 7.x!

Conseil: lors de l'ouverture suivante dans un nouveau xcode, assurez-vous de sélectionner le mode de compatibilité.

parJeevan
la source