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

Bhumit Mehta
źródło
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.

Bhumit Mehta
źródło
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ę.
Himanshu
źródło
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

Preeti
źródło
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.

Amit
źródło
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.

Michael Tangs
źródło
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.

Dimmy3
źródło
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

Jason
źródło
0

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

iOS_Developer
źródło
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.

byJeevan
źródło