Błąd scenorysu iOS5: scenorysy są niedostępne w systemie iOS 4.3 i wcześniejszych

98

Zbudowałem małą aplikację przy użyciu scenorysów i działała świetnie. Tuż przed końcowymi testami postanowiłem go wypróbować, aby sprawdzić, czy działa na iOS 4.3. Kliknąłem na szary 5.0 w ustawieniach projektu i wybrałem 4.3.

Nie udało się skompilować aplikacji i wyświetlany jest następujący komunikat o błędzie:

Scenorysy są niedostępne na iOS 4.3 i wcześniejszych

Mówią mi o tym zarówno scenorysy na iPhonie, jak i na iPadzie.

Problem polegający na tym, że kiedy przełączałem się z powrotem na system docelowy iOS5, nadal otrzymuję te błędy z obu scenorysów, a produkt nie zostanie zbudowany! Sprawdziłem: Cel wdrożenia iOS w ustawieniach projektów to 5.0 Docelowy cel wdrożenia aplikacji to 5.0 Ustawienia kompilacji używają zestawu SDK iOS 5.0

Co jeszcze muszę zrobić, aby przywrócić projekt do stanu możliwego do zbudowania? Czy to zupełnie nowy błąd, czy o czymś zapominam?

Aktualizacja: ciągle otrzymywałem ten błąd nawet po wyczyszczeniu. Zmieniłem debugger w Schemes na "LLDB" i zrobiłem dodatkowe czyszczenie , projekt teraz buduje się i kompiluje

Alex Stone
źródło
Dla przypomnienia, wypróbowałem każde zaproponowane rozwiązanie (stan na 9 lutego 2012). Żadna praca. Hmm ...
Joe D'Andrea
1
Mam ten sam problem, nawet przy nowych projektach (to szaleństwo)! Wypróbowałem tutaj wszystkie metody, żadna nie działała. Aktualizacja Xcode do najnowszej wersji (4.3.1) też nie pomaga. grrrrrr .....
Luzifer42
1
Żadna z poniższych odpowiedzi nie pomogła. Próbowałem 22 marca ..! :(
jeevangs
2
I Profileed stosowania na przecieki i Runed go =)
tGilani
nie mogę sobie wyobrazić, jak głupie jest jabłko
neobie

Odpowiedzi:

111

Mam również ten problem i ostatecznie rozwiązałem go, wykonując następującą procedurę:

  1. Otwórz XXXXXX.storyboard
  2. Otwórz kartę Tożsamość i typ w prawym widoku Xcode.
  3. Ustaw wartość Development in Document Versioning na „Xcode 4.2” (moja wartość domyślna to „Default Version (Xcode 4.1)”.
  4. Zmień wartość wdrożenia z wersji Project SDK (iOS 5.0) na iOS 5.0, a następnie z powrotem na Project SDK Version (iOS 5.0)

Odbuduj projekt, a błąd powinien zostać rozwiązany.

bawełna5415
źródło
To też zadziałało dla mnie, zmiana z GDB na LLVM nie wydawała się działać. Wydaje się, że zmiana Celu Wdrożenia na mniej niż 5.0 na ekranie Cel-> Podsumowanie ustawia tworzenie wersji dokumentu scenorysu (Xcode) z powrotem na 4.1, ale zmiana z powrotem na 5.0 nie zmienia wersji Xcode z powrotem na 4.2.
FractalDoctor
1
Musiałem też wyczyścić przed przebudową
Bushra Shahid
7
Miałem ten sam problem, ale nie mogłem go w ten sposób naprawić. W końcu udało mi się to poprawić, usuwając odniesienie do storyboardu, budując, dodając go z powrotem, a następnie budując ponownie.
smcmahon
1
Chciałbym, żeby to zadziałało dla mnie! Czuję, że powinno, na podstawie opinii, ale bez kostek, przepraszam. :(
Joe D'Andrea
1
Trochę dziwne, ale to, co zadziałało, to przeciągnięcie pliku storyboardu z xcode na biurko, wyczyszczenie, a następnie zbudowanie - nie ma sensu, wiem.
JARC
20

Rozwiązaniem, które zadziałało, było po prostu usunięcie ~/Library/Developer/Xcode/DerivedDatakatalogu dla mojego projektu.

C Fraire
źródło
Wydaje się, że byłby najbardziej niezawodny. To zadziałało dla mnie, gdy żadne inne odpowiedzi tutaj nie zadziałały.
Nicolas Renold
Jest to jedyna, która mi pomogła i bezwstydnie odrzucam odpowiedzi, które nie zadziałały. Przepraszam chłopaki ... ten stał się zbyt frustrujący.
David Morton
To zadziałało dla mnie. Co dziwne, usunięcie danych pochodzących z projektu z Organizatora nie działało, ale usunięcie całego folderu z wyszukiwarki tak.
obrabować
1
usunięcie folderu DerivedData jest zawsze pierwszą rzeczą, którą próbuję. Jednak nie pomogło tutaj
mózgowa modlitwa
17

Dodam tylko to jako kolejną możliwą odpowiedź, ponieważ pierwsze rozwiązania działały u mnie kilka razy (jak wspomniałem w poprzednim komentarzu) do dziś, kiedy nie mogłem skompilować mojego projektu z miłości ani pieniędzy ten sam błąd. Po zmianie debuggera i ustawieniu Xcode na 4.2 i kilkukrotnym ponownym uruchomieniu nie mogłem się skompilować. Jednak odkryłem inny sposób obejścia tego problemu.

Wybierz scenorys w lewej kolumnie i „Pokaż w Finderze” i przeciągnij scenorys na pulpit. Xcode zmieni teraz kolor na czerwony i nie będzie mógł się skompilować.

Wyczyść projekt, przeciągnij scenorys z powrotem z pulpitu do katalogu w Finderze.

Następnie narasta i błąd znika ponownie.

Nie wiem, co pierwotnie spowodowało błąd, ponieważ pracuję pod iOS5 i buduję dla 4.3, ale wydaje się, że pojawia się od czasu do czasu i.

FractalDoctor
źródło
To zadziałało dla mnie, podczas gdy zmiana wersji dokumentu i ponowne uruchomienie / czyszczenie nie działały.
Berik
uhhhh po prostu nie mogę ci wystarczająco podziękować (+1), to uratowało mi dzień :-)
PeterK
14

Wygląda na to, że jest to błąd w najnowszym XCode, na który również się natknąłem, wypróbowałem rozwiązanie OP polegające na zmianie debuggera i to nie przyniosło żadnego efektu.

Pojawiło się to dla mnie, odkąd próbowałem Storyboard z 4.3, a potem próbowałem zmienić z powrotem.

Moim rozwiązaniem było zamknięcie XCode, ponowne otwarcie i wyczyszczenie. Następnie skompilowałem i działało dobrze.

Mam nadzieję, że to pomoże innym.

Peter Brooks
źródło
2
Cmd + Q - aby zamknąć xCode. Zwykłe „zamknięcie” nie jest pomocne.
beryl
Moje doświadczenie jest podobne do odpowiedzi FiddleMeRagged: to działało przez chwilę, a na razie nie działa (choć nie jest to również rozwiązanie Cotton5415). Więc niestety nie możesz oczekiwać, że będzie to działać w 100% przypadków, nawet jeśli czasami działa.
Tyler Collier
Tak! Proste rozwiązanie: ponownie otwórz xCode i po prostu Cleangotowe! =)
Emadpres
11

Podczas gdy inne rozwiązania mi pomogły, nie działały w 100%. Nie wiem wystarczająco dużo o XCode, aby wiedzieć, jak niezawodne jest to rozwiązanie, ale przynajmniej zadziałało, więc możesz wypróbować je w swoim projekcie.

Po lewej stronie Xcode otwórz nawigator projektu. Kliknij najwyższy element, czyli Twój projekt. W panelu bezpośrednio po prawej stronie zobaczysz wybór między swoim projektem a jego celami. Kliknij projekt, a następnie w panelu po prawej stronie, pod zakładką „Informacje”, ustaw „Używaj kompilacji z wiersza poleceń” na Debuguj (w moich dwóch projektach, w których wystąpił błąd, oba były ustawione na Zwolnij).

Zdjęcie jest prawdopodobnie najłatwiejsze:

Zdjęcie z Xcode

Inny pomysł : otwórz inny projekt z storyboardami w Xcode i spróbuj go uruchomić. Jeśli to się powiedzie, możesz wrócić do bieżącego projektu i powinien on zostać zbudowany. Myślę, że to wyraźnie wskazuje na błąd w Xcode.

Tyler Collier
źródło
Oww Yeahh! Że „Inny pomysł” działa! Próbowałem wszystkiego innego, ale żadne z nich nie działa!
Hlung
Tak, kolejna kompilacja projektu zakończyła się pomyślnie, teraz stara również kompiluje się bez błędów. Dzięki.
Adeel Pervaiz
7

Po wypróbowaniu wszystkich odpowiedzi tutaj (usunięcie odwołania do Storyboard, zamknięcie Xcode, czyszczenie, zmiana debugera itp.), Żadna nie działała (z Xcode 4.5).

Jedynym sposobem, w jaki udało mi się go odbudować (i było to całkowite przypuszczenie), było otwarcie pliku Storyboard w edytorze tekstu i usunięcie następującego wiersza:

<deployment version="1280" identifier="iOS"/>

Powinien znajdować się w górnej części pliku, w <dependencies>sekcji. Następnie projekt został pomyślnie skompilowany, a Xcode nawet ponownie dodał tę linię do pliku, ale nadal buduje ...

Domyśl...! Mam nadzieję, że może to komuś pomóc!

jeannicolas
źródło
Usunięcie zarówno pozycji <wdrożenie ..>, jak i <opracowanie ..> działało przynajmniej dla jednego pliku scenorysu. Co dziwne, naprawiło to ten sam błąd „niedostępny w iOS 4.3” w innym, niepowiązanym projekcie ze scenorysami.
LearnCocos2D
6

Nareszcie eleganckie obejście, które wydaje mi się wystarczające! (Mam nadzieję, że to zadziała u wszystkich innych. Ten jest uparty).

Gdy ustawienia wrócą bezpiecznie do iOS 5-land, wypróbuj Cmd-Option-Shift K (aka „Wyczyść folder budowania ...” z menu - przytrzymaj Option, aby to zobaczyć), a następnie zbuduj.

Joe D'Andrea
źródło
Wypróbowałem wszystkie powyższe metody, ale bezskutecznie… dopóki nie spotkałem tego rozwiązania, które działa całkiem doskonale.
morph85
5

rozwiązanie jest proste, kliknij prawym przyciskiem myszy plik storyboardu i pokaż w wyszukiwarce, a następnie wybierz folder, w którym znajduje się plik (prawdopodobnie byłby to folder en.lproj), kliknij prawym przyciskiem myszy plik MainStoryboard.storyboard powodujący problem i otwórz z tekstem edit znajdź linię, która brzmi lub coś takiego:

<development version="4300" defaultVersion="4200" identifier="xcode"/>

i zmień to na coś takiego:

<development defaultVersion="4300" identifier="xcode"/>

zapisz plik i skompiluj. Zrobione...

MichaelBadichi
źródło
Po prostu usunięcie zarówno <wdrożenia ..>, jak i <rozwoju ..> (jeśli istnieją) z pliku storyboardu naprawiło to za mnie.
LearnCocos2D
4

Ok, próbowałem wszystkiego powyżej i problem nadal występował. Po prostu usuwam storyboardy (jako odniesienie nie przenoszę do kosza). następnie zbuduj pomyślnie; potem dodałem je ponownie; Zbuduj i wreszcie zadziałało.

Mohammad Aljaber
źródło
Nie mogę nawet usunąć odniesień, ponieważ Xcode 4.6 ulega awarii, gdy tylko dotknę storyboardu
brainray
3

Miałem ten sam problem. Wypróbowałem wszystkie powyższe odpowiedzi i wszystkie kombinacje i nic nie działało. Później, po przeprowadzeniu pewnych badań, przeanalizowałem, że prosty fakt, że rzucany we mnie błąd, był prosty.

Po prostu przejdź do ustawień kompilacji i zamiast wybierać plik projektu xcode, wybierz plik produktu i zmień cel wdrożenia na 5.0 lub 5.1. Błąd powinien zgasnąć.! Zrobiłem to w Xcode 4.3 w Lion OSX. To działało dobrze dla mnie !!

jeevangs
źródło
3

Ja też miałem ten problem i nic nie pomogło. Nawet otwarcie kolejnego projektu i próba zbudowania nie powiodły się.

To, co zrobiłem i co dla mnie, to projekt -> informacje i pod „Cel wdrożenia” zmień cel wdrożenia iOS na cokolwiek, zbuduj, a potem zmień z powrotem na cokolwiek to było i zbuduj ponownie.

ilan
źródło
2

Oto kolejny losowy cep, voodoo, który wydawał się teraz obejść ten błąd. (po tym jak inne techniki tutaj nie pomogły) Zmieniłem nazwę pliku storyboardu (i wpisu do niego w pliku info.plist). Nie próbowałem jeszcze rytuału „przeciągnij do / z pulpitu”.

Dziś wieczorem straciłem z tym problemem jakieś 45 minut. grrrrr. Ok, teraz czuję się lepiej.

zer0gravitas
źródło
To zadziałało dla mnie i zredagowałem odpowiedź, dodając szczegółowe kroki. Zastanawiam się, kto był tak silny, aby downvote tę sugestię ...
brainray
korekta: działało to dla mnie, dopóki Xcode ponownie nie uszkodził projektu. Musiałem też przeinstalować Xcode ...
brainray
1

Po wypróbowaniu wszystkich powyższych sugestii, bez powodzenia, mój kod został skompilowany, wykonując następujące czynności.

Edit -> Refactor -> Convert to Objective-C ARC
Asbjorn Riedel
źródło
1
rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode

wydaje się pomagać w Xcode 4.3.2

Jerzy Kozera
źródło
1

Miałem podobny problem. XCode mógł dobrze zbudować i uruchomić inne projekty, ale nie mógł pozbyć się błędu w projekcie, który zmieniłem, nawet kopii zapasowych z serwera. Wypróbowałem wszystkie powyższe rozwiązania, ale nada. Oto, co zadziałało.

  1. Odinstaluj XCode.

  2. Usuń folder użytkownika / biblioteki / dewelopera / XCode.

  3. Ponownie zainstaluj XCode (może powinieneś zacząć to przed wyszukaniem folderu, pobieranie zajęło mi 20 minut).

  4. Uruchom, wyczyść i zbuduj.

Pracował dla mnie. Oszczędził mi trochę czasu. Czasami, gdy skalpel nie działa, czas na topór. Teraz mogę wybrać nową czcionkę do zakodowania (to wyczyści Twoje preferencje)!

teksański
źródło
Dzięki, to w końcu naprawiło to tutaj. Tylko dla innych: możesz zidentyfikować ten problem, jeśli pojawi się komunikat o błędzie „ibtool nie powiodło się z kodem zakończenia 255”.
brainray
-1

Jedynym rozwiązaniem, które zadziałało dla mnie, jest utworzenie innego projektu bez włączonej Storyboarding, skompilowanie go, a następnie powrót do projektu storyboardu, wyczyszczenie i skompilowanie.

Mirkules
źródło
-1

Oto kolejny losowy, voodoo, odłącz iPhone'a, jeśli jest podłączony.

Luzifer42
źródło
-2

Po prostu zmieniłem cel wdrożenia na 4.0 i Development na 4.3 z MainStroyboard. Oczyszczam projekt; i zrestartowałem mac, :) Wiem, że to brzmi śmiesznie, ale ponowne uruchomienie xcode nie pomogło. może w pamięci jest cache ...

Następnie zbudowałem projekt; było dobrze!

Kaan Yy
źródło