Для документа Main.storyboard требуется Xcode 8.0 или новее.


94

Я загрузил бета-версию Xcode и открыл свой существующий проект, чтобы посмотреть, как он работает с бета-версией Xcode 8 (я открыл файл раскадровки из Xcode 8).

Теперь, когда я открываю свой проект из Xcode 7.3, я не могу открыть файл раскадровки, это дает мне следующую ошибку

Эта версия не поддерживает документы, сохраненные в формате Xcode 8. Откройте этот документ с помощью Xcode 8.0 или новее.

Ошибка Xcode 7 Что мне делать, чтобы вернуться, так как я хочу продолжить работу над Xcode 7.

В Xcode 8 мне было предложено выбрать устройство, и я выбрал iPhone 6S, я думаю, что эта часть каким-то образом отвечает за то, что файл раскадровки не открывается в Xcode 7


7
Отменить изменения в управлении версиями
Wain

1
@Wain Да, это всегда был вариант, но у меня были некоторые незавершенные изменения, и я также хотел узнать решение (если не отнимает много времени)
Бхумит Мехта

Ответы:


212

Я понял это:

Откройте свою раскадровку в Xcode 8.

Щелкните Инспектор файлов.

В разделе документа Interface Builder выберите «Открывается в Xcode 7.x» вместо «Последний Xcode (8.0)», как на следующем снимке экрана:

введите описание изображения здесь

При этом вы получите предупреждение о том, что «Сохранение для Xcode 7.x закроет ваш документ, а данные для функций Xcode 8.0 будут удалены».

Нажмите «Сохранить и закрыть», и вы сможете открыть раскадровку в Xode 7.x.


У меня были проблемы с закреплением изменения, но я изменил его, затем сохранил и закрыл, после чего он фактически не сохранился, потому что был все еще серым, затем я довольно Xcode (который завис), затем принудительно вышел из него, и теперь раскадровка работает в Xcode 7 фу!
Malhal

@Bhumit Mehta Это не работает, когда у меня есть 2 разных раскадровки для ipad и iphone. Изменения сохраняются только для одного из них. Пожалуйста, скажите мне какое-нибудь обходное решение.
марс

@mars: Вам просто нужно повторить одни и те же шаги для обеих раскадровок, я попробовал это в тестовом проекте, и это сработало.
Bhumit Mehta

2
где находится документ Interface Builder?
natecraft1 01

10
НО, если вы снова откроете проект в xCode 8 и войдете в раскадровку - у вас снова будет испорченный файл раскадровки, и вам придется снова переключиться на 7.x - и снова «Сохранить и сохранить»
Massmaker

67

У меня есть решение:

  1. Откройте раскадровку как «исходный код» (щелкните правой кнопкой мыши раскадровку -> открыть как -> исходный код).
  2. Удалите эту строку:

<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  1. Удалите это для всех раскадровок, которые вы используете.
  2. Запустить приложение.

13
После выполнения вышеуказанных шагов при открытии раскадровки в качестве конструктора интерфейса произошел сбой Xcode !!!
Элангован

3
Это , возможно , работал в XCode 8 Beta. Но в выпуске XCode 8 это приведет к сбою XCode.
GeneCode

сейчас это не работает, по-прежнему ошибка, и он автоматически устанавливается на 8.0 при открытии раскадровки
Арфан Мирза

принятый ответ звучит намного безопаснее, чем просто удаление строки
kiedysktos

Замена кода на другие цифры у меня не работает. Только удаление строки кода исправляет ошибку. Принятый ответ работает только тогда, когда у вас уже есть Xcode8.
jinglei

27

Это работа для меня

Щелкните правой кнопкой мыши на main.stoaryboard. Откройте как -> исходный код и измените зависимости

изменение

 <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"/>

Выполните тот же шаг на launchscreen.stoaryboard


2
На данный момент это лучшее решение, если у вас нет Xcode 8.0
Кампай

2
Спасибо за решение. Та же проблема возникла после перехода с Xcode 9 на Xcode 8. Я изменил "<capacity name =" Руководства по компоновке безопасной области "minToolsVersion =" 9.0 "/>" на <ability name = "Руководства по компоновке безопасной зоны" minToolsVersion = "8.0" / >. После этого изменения, когда вы откроете раскадровку в построителе интерфейсов, эта строка будет удалена.
Амит

10

Та же проблема возникла после перехода с Xcode 9 на Xcode 8. Я открыл раскадровку в исходном коде и изменил

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

После этого изменения, когда вы откроете раскадровку в построителе интерфейсов, эта строка будет удалена.


спасибо, что сэкономили мне несколько часов работы, xcode предупредил меня, что была обнаружена и исправлена ​​какая-то странная вещь, поэтому мой файл будет в порядке после этой модификации?
brahimm

7

Я тоже встретил этот вопрос. Я следовал этому методу, чтобы изменить его: поскольку я не мог щелкнуть меню, чтобы выбрать 7.0 или более позднюю версию , я открыл main.storyboardи launchscreen.storyboardс исходным кодом, чем вручную изменил его версию, и это решило проблему.


5
Вот строка перед изменениями: <features name = "документы, сохраненные в формате Xcode 8" minToolsVersion = "8.0" /> После изменений: <features name = "документы, сохраненные в формате Xcode 7" minToolsVersion = "7.0" />
Dani.Rangelov

Версия выпуска XCode 8.0 (не бета) показывает minToolsVersion = "6.0"
GeneCode

4

Поскольку XCode 8 постоянно конвертирует файлы раскадровки в формат XCode 8 каждый раз, когда я его открываю (это старый проект, и все идет наперекосяк), я в итоге загрузил XCode 7 и использовал его только для редактирования файлов раскадровки (и закрыл его перед тем, как я вернитесь к XCode 8). Если я случайно открываю файл раскадровки в 8, я просто сбрасываю этот файл до последней фиксации, так как проект находится в GIT.

Глупо, я знаю, но работает.


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

Замените свои зависимости на эти зависимости


0

Откройте раскадровку как Source Codeи найдите minToolsVersionключ. Установите это значение как 7.0 и откройте эту раскадровку в Xcode 7.x.


0

Как @Bhumit_Metha дано прямое решение. К сожалению, в моем случае у меня нет MAC с последней версией Xcode (8.0+), внесите эти изменения для поддержки новых файлов xib в моем старом xcode (7.x).

В итоге я получил рабочее решение с простыми шагами:

[1] Создайте пустой файл xib в вашем xcode 7.x.

[2] Щелкните правой кнопкой мыши пустой xib, чтобы просмотреть исходный код и скопировать все это.

[3] Теперь откройте новый xib (один с ошибкой версии) в программе просмотра исходного кода. Вставьте предыдущий код сверху.

[4] Замените все строки старого внутреннего тега новым: <objects> ...... </objects>

И это все. Будет работать с совместимым с xcode 7.x!

Совет: при открытии в следующий раз в новом xcode обязательно выберите режим совместимости.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.