2017-10-22 89 views
5

Buduję obecnie grę w Spritekit z Xcode. Po aktualizacji do Xcode 9 odkryłem, że za każdym razem, gdy ustawiam teksturę w pliku .sks, Xcode natychmiast ulega awarii. Ponownie uruchomiłem komputer, zaktualizowałem aplikację, ponownie załadowałem tekstury i nic się nie zmieniło. . Mam 2017 Prof Macbook 13" w/dotykowym pasku Oto diagnostyka:XCode 9 Zawieszenie podczas ustawiania tekstury w SKScene w Spritekit

Process:    Xcode [577] 
Path:     /Applications/Xcode.app/Contents/MacOS/Xcode 
Identifier:   com.apple.dt.Xcode 
Version:    9.0.1 (13249) 
Build Info:   IDEFrameworks-13249000000000000~2 
App Item ID:   497799835 
App External ID:  823984564 
Code Type:    X86-64 (Native) 
Parent Process:  ??? [1] 
Responsible:   Xcode [577] 
User ID:    501 

Date/Time:    2017-10-22 17:30:06.029 -0400 
OS Version:   Mac OS X 10.12.6 (16G29) 
Report Version:  12 
Anonymous UUID:  0537A8C3-9FB2-836A-088B-E5D2B7FEB3EB 


Time Awake Since Boot: 100 seconds 

System Integrity Protection: enabled 

Crashed Thread:  0 Dispatch queue: SKCRenderer_resource_queue 

Exception Type:  EXC_BAD_ACCESS (SIGBUS) 
Exception Codes:  KERN_PROTECTION_FAILURE at 0x000000012ceef7b8 
Exception Note:  EXC_CORPSE_NOTIFY 

Termination Signal: Bus error: 10 
Termination Reason: Namespace SIGNAL, Code 0xa 
Terminating Process: exc handler [0] 

VM Regions Near 0x12ceef7b8: 
    MALLOC_LARGE   000000012ceaf000-000000012ceef000 [ 256K] rw-/rwx SM=PRV 
--> mapped file   000000012ceef000-000000012cf22000 [ 204K] r--/rw- SM=COW 
    MALLOC_LARGE   000000012cf31000-000000012cf71000 [ 256K] rw-/rwx SM=PRV 

Application Specific Information: 
Sending userDidChangeValue: to <SKInspectorTextureProperty: 0x7fadb2219440> from <NSComboBox: 0x7fadb221ad80> 
ProductBuildVersion: 9A1004 
Performing @selector(userDidChangeValue:) from sender NSComboBox 0x7fadb221ad80 
+0

Musisz usunąć i odbudować swój plik SKS – Knight0fDragon

Odpowiedz

1

znalazłem obejście, które mogą lub nie mogą pracować, nie jest wiarygodne, ale jeszcze lepiej niż nie działa w ogóle. Stworzyłem pusty plik SKS i ustawiłem wszystkie tekstury w tym pliku, a następnie skopiowałem i wkleiłem węzeł do preferowanego pliku SKS

+0

.... To jest dokładnie to, co skomentowałem, to nie jest praca. Twój plik SKS stał się uszkodzony – Knight0fDragon

+0

To nie działa dla mnie, jeśli utworzę pusty SKS, przeciągnij nowy Sprite i nadaj mu teksturę, ciągle się zawiesza. Co dokładnie zrobiłeś, aby to zadziałało? @BCode –

+0

Kiedy to opublikowałem, udało mi się stworzyć nowy plik .sks, dodać moje sprite'y w tej scenie, a następnie skopiować je do sceny, w której chcę, ale teraz to nie działa. Moja obecna strategia polega na czyszczeniu kompilacji (Shift + Cmd + K) przed umieszczeniem tekstury, a następnie zapisaniem zaraz po. Działa około 25% czasu i niestety nie udało mi się znaleźć prawdziwej poprawki. – BCode

0

OHM, znalazłem powód Pojawi się, jeśli obraz nie jest równy z bieżącym rozmiar skspritenode na storyboardie Powodzenia!

+0

Hmm ... Zarówno mój obraz, jak i rozmiar SpriteNode to 110x110, czyli współczynnik 1: 1 i nadal się zawiesza. – BCode

1

Istnieje świetne obejście na forum Apple s.

Jak naprawić plik .sks:

  • Otwórz plik twoi .sks poza projektem (zamknąć projekt i otworzyć plik bezpośrednio z Findera)

  • Powinieneś zobaczyć czerwone krzyżyki zamiast Sprites, usuń informacje o nazwie Texture dla wszystkich z nich.

  • Teraz powinieneś być w stanie ponownie otworzyć plik z projektu.

  • Na koniec ponownie wprowadź nazwę tekstury dla wszystkich twoich Sprites.

1

Rozwiązałem problem powodujący awarię.

Problem dotyczy obrazów @ 2x i @ 3x. Z obecnymi w folderze Assets.xcassets - węzeł SKS spowoduje awarię XCODE.

  1. Dodaj TYLKO obraz 1x do folderu Assets.xcassets.
  2. umieść węzeł koloru na scenie SKS.
  3. wybierz teksturę
  4. zmień rozmiar tekstury.
  5. dodaj pliki @ 2x i @ 3x później.

To rozwiązanie działa w 100% za każdym razem.