Документ Main.storyboard вимагає Xcode 8.0 або новішої версії


94

Я завантажив Xcode beta і відкрив свій існуючий проект, щоб побачити, як він працює з Xcode 8 beta (я відкрив файл Storyboard з Xcode 8).

Тепер, коли я відкриваю свій проект із Xcode 7.3, я не можу відкрити файл розкадровки, це видає мені таку помилку

Ця версія не підтримує документи, збережені у форматі Xcode 8. Відкрийте цей документ за допомогою Xcode 8.0 або новішої версії.

Помилка Xcode 7 Що робити, щоб повернутися назад, оскільки я хочу продовжувати працювати над Xcode 7.

У Xcode 8 мені запропонували вибрати пристрій, і я вибрав iPhone 6S, я думаю, що ця частина якось відповідає за те, що файл розкадровки не відкривається в Xcode 7


7
Скасувати зміни у контролі версій
Wain,

1
@Wain Так, це завжди було варіантом, але я мав кілька незавершених змін, а також хотів знати рішення (якщо не забирає багато часу)
Bhumit Mehta,

Відповіді:


212

Я зрозумів це:

Відкрийте свою Раскадровку в Xcode 8.

Клацніть на File Inspector.

У розділі « Документ конструктора інтерфейсів» виберіть «Відкривається в« Xcode 7.x »замість« Останній Xcode (8.0) », як на наступному скріншоті:

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

Після цього ви отримаєте сповіщення про те, що "Збереження для Xcode 7.x закриє ваш документ, а дані для функцій Xcode 8.0 буде видалено".

Натисніть Зберегти та закрити, і ви зможете відкрити раскадровку в Xode 7.x.


У мене були проблеми з тим, щоб зафіксувати зміну, але те, що я зробив, було змінити її, потім зберегти і закрити, після чого вона насправді не збереглася, тому що все ще була сірою, тоді я цілком Xcode (який завис), потім змусив вийти з неї, і зараз розкадровка працює в Xcode 7, боже!
malhal

@Bhumit Mehta Це не працює, коли у мене є 2 різні розкадровки для ipad та iphone. Зміни зберігаються лише для одного з них. Plz, скажіть мені будь-який обхідний шлях.
Марс,

@mars: Вам просто потрібно повторити однакові кроки для обох розкадрувань, я спробував це в тестовому проекті, і це спрацювало.
Bhumit Mehta

2
де знаходиться Interface Builder Document?
natecraft1

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. Я змінив "<capability name =" Посібники макета безпечної зони "minToolsVersion =" 9.0 "/>" на <capability name = "Посібники макета безпечної зони" minToolsVersion = "8.0" / >. Після цієї зміни, коли ви відкриєте раскадровку в конструкторі інтерфейсів, цей рядок буде видалено.
Amit

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
Ось рядок до змін: <capability name = "документи, збережені у форматі Xcode 8" minToolsVersion = "8.0" /> Після змін: <capability name = "документи, збережені у форматі Xcode 7" minToolsVersion = "7.0" />
Дані Рангелов

Версія випуску 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.