Dokument Main.storyboard wymaga Xcode 8.0 lub nowszego


94

Pobrałem Xcode beta i otworzyłem mój istniejący projekt, aby zobaczyć, jak działa z Xcode 8 beta (otworzyłem plik Storyboard z Xcode 8).

Teraz, kiedy otwieram projekt z Xcode 7.3, nie mogę otworzyć pliku storyboardu, pojawia się następujący błąd

Ta wersja nie obsługuje dokumentów zapisanych w formacie Xcode 8. Otwórz ten dokument w Xcode 8.0 lub nowszym.

Błąd Xcode 7 Co powinienem zrobić, aby cofnąć się, ponieważ chcę kontynuować pracę nad Xcode 7.

W Xcode 8 zostałem poproszony o wybranie urządzenia i wybrałem iPhone'a 6S, myślę, że ta część jest w jakiś sposób odpowiedzialna za nieotwarcie pliku storyboardu w Xcode 7


7
Cofnij zmiany w kontroli wersji
— Wain

1
@Wain Tak, to zawsze była opcja, ale miałem kilka niezamierzonych zmian, a także chciałem poznać rozwiązanie (jeśli nie czasochłonne)
— Bhumit Mehta

Odpowiedzi:


212

Rozgryzłem to:

Otwórz Storyboard w Xcode 8.

Kliknij Inspektor plików.

W sekcji Interface Builder Document wybierz opcję Open In „Xcode 7.x” zamiast „Latest Xcode (8.0)”, jak na poniższym zrzucie ekranu:

wprowadź opis obrazu tutaj

Robiąc to, otrzymasz ostrzeżenie „Zapisanie dla Xcode 7.x zamknie dokument, a dane dla funkcji Xcode 8.0 zostaną usunięte”.

Kliknij Zapisz i zamknij, aby otworzyć scenorys w Xode 7.x.


Miałem problem z wprowadzeniem zmiany, ale to, co zrobiłem, zmieniłem, a następnie zapisałem i zamknąłem, w którym momencie tak naprawdę nie zapisał, ponieważ był nadal szary, potem całkiem Xcode (który zawiesił się), a następnie wymusiłem zamknięcie, a teraz storyboard działa w Xcode 7 uff!
— malhal

@Bhumit Mehta To nie działa, gdy mam 2 różne scenorysy na iPada i iPhone'a. Zmiany są zapisywane tylko dla jednego z nich. Plz, powiedz mi jakieś obejście.
— marzec

@mars: Musisz tylko powtórzyć te same kroki dla obu scenorysów, wypróbowałem to w projekcie testowym i zadziałało.
— Bhumit Mehta

2
gdzie jest dokument Interface Builder?
— natecraft1

10
ALE jeśli ponownie otworzysz projekt w xCode 8 i przejdziesz do storyboardu - plik scenorysu znów będzie bałaganiony i będziesz musiał ponownie przełączyć się z powrotem na 7.x - i ponownie „Save and Cose”
— Massmaker

67

Mam rozwiązanie:

  1. Otwórz scenorys jako „kod źródłowy” (kliknij prawym przyciskiem myszy scenorys -> otwórz jako -> kod źródłowy).
  2. Usuń ten wiersz:

<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  1. Usuń to dla wszystkich scenorysów, których używasz.
  2. Uruchom aplikację.

13
Po wykonaniu powyższych kroków, podczas otwierania storyboardu, gdy kreator interfejsu Xcode się zawiesił !!!
— Elangovan

3
To mogło zadziałać w XCode 8 Beta. Ale w wydaniu XCode 8 zrobienie tego spowoduje awarię XCode.
— GeneCode

to teraz nie działa, nadal błąd i automatycznie ustawiono na 8.0, gdy storyboard jest otwarty
— Arfan Mirza

zaakceptowana odpowiedź brzmi o wiele bezpieczniej niż zwykłe usunięcie linii
— kiedysktos

Zastępowanie kodu innymi liczbami nie działa dla mnie. Tylko usunięcie linii kodu naprawia błąd. Zaakceptowana odpowiedź wydaje się działać tylko wtedy, gdy masz już Xcode8.
— jinglei

27

To dla mnie praca

Kliknij prawym przyciskiem myszy main.stoaryboard.Idź, aby otworzyć jako -> kod źródłowy i zmienić zależności

zmiana

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

Wykonaj ten sam krok na launchscreen.stoaryboard


2
Jest to jak dotąd najlepsze rozwiązanie, jeśli nie masz Xcode 8.0
— Kampai

2
Dzięki za rozwiązanie. Ten sam problem wystąpił po zmianie z Xcode 9 na Xcode 8. Zmieniłem „<feature name =" Safe area guide guide "minToolsVersion =" 9.0 "/>" na <feature name = "Safe area guide" minToolsVersion = "8.0" / >. Po tej zmianie, kiedy otworzysz scenorys w kreatorze interfejsu, ta linia zostanie usunięta.
— Amit

10

Ten sam problem wystąpił po przejściu z Xcode 9 na Xcode 8. Otworzyłem scenorys w kodzie źródłowym i zmieniłem

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

Po tej zmianie, kiedy otworzysz scenorys w kreatorze interfejsu, ta linia zostanie usunięta.


dzięki zaoszczędziłeś mi kilka godzin pracy, xcode ostrzega mnie, że znaleziono i naprawiono jakąś dziwną rzecz, więc mój plik będzie dobrze po tej modyfikacji?
— brahimm

7

Ja też spotkałem się z tym pytaniem. Zastosowałem tę metodę, aby to zmienić: ponieważ nie mogłem kliknąć menu, aby wybrać wersję 7.0 lub nowszą, otworzyłem main.storyboardiz launchscreen.storyboardkodem źródłowym, a następnie ręcznie zmieniłem jego wersję i to rozwiązało problem.


5
Oto wiersz przed zmianami: <feature name = "dokumenty zapisane w formacie Xcode 8" minToolsVersion = "8.0" /> Po zmianach: <feature name = "dokumenty zapisane w formacie Xcode 7" minToolsVersion = "7.0" />
— Dani.Rangelov

Wersja wydania XCode 8.0 (nie beta) pokazuje minToolsVersion = "6.0"
— GeneCode

4

Ponieważ XCode 8 nieustannie konwertuje pliki scenorysów do formatu XCode 8 za każdym razem, gdy je otwieram (to stary projekt i wszystko się psuje), skończyło się na pobraniu XCode 7 i używaniu go tylko do edycji plików scenorysów (i zamykania go przed przełącz się z powrotem na XCode 8). Jeśli przypadkowo otworzę plik storyboardu w 8, po prostu zresetuję ten plik do ostatniego zatwierdzenia, ponieważ projekt jest na GIT.

Wiem, głupie, ale działa.


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

Zastąp swoje zależności tymi zależnościami


0

Otwórz scenorys jako Source Codei wyszukaj minToolsVersionklucz. Ustaw tę wartość na 7.0 i otwórz ten scenorys w Xcode 7.x


0

Jako @Bhumit_Metha podano proste rozwiązanie. Niestety w moim przypadku nie mam MAC z najnowszą wersją Xcode (8.0+), wprowadzam te zmiany, aby obsługiwać nowe pliki „xib” w moim starym xcode (7.x).

Tak więc otrzymałem działające rozwiązanie z prostymi krokami w następujący sposób:

[1] Utwórz pusty plik xib w swoim xcode 7.x.

[2] Kliknij prawym przyciskiem myszy pusty xib, aby wyświetlić źródło i skopiować to wszystko.

[3] Teraz otwórz nowy xib (jeden z błędem wersji) w przeglądarce źródeł. Wklej poprzedni kod na górze.

[4] Zastąp wszystkie stare wiersze nowym tagiem wewnętrznym: <objects> ...... </objects>

I to wszystko. Będzie działać z kompatybilnymi z xcode 7.x!

Wskazówka: podczas otwierania następnym razem w nowym xcode, wybierz tryb zgodności.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.