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.