Документ 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.