Xcode 9 Crashing while setting a Texture in SKScene in Spritekit

醉酒当歌 提交于 2019-12-18 12:22:42

问题


I am building a game in Spritekit with Xcode currently. After updating to Xcode 9 I've found that every time I set a texture through the .sks file, Xcode crashes instantly. I've restarted my computer, updated the app, reloaded the textures and nothing changed. I have the 2017 Macbook Prof 13" w/ touch bar. Here are the diagnostics:

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

回答1:


I solved the crashing problem.

The problem is with your @2x and @3x images. With those present in your Assets.xcassets folder - the SKS node will crash XCODE.

  1. Add ONLY the 1x image to your Assets.xcassets folder.
  2. place a Color Node onto your SKS scene.
  3. select a texture
  4. resize the texture.
  5. add your @2x and @3x files later.

This solution works 100% each and every time.




回答2:


OHM,I found the reason It will occurs if your image not equal ratio with current size of skspritenode on storyboard Good Luck!




回答3:


Strip the metadata from the image before setting it as texture.

For example, using ImageMagick:

convert oldImage.png -strip newImage.png



回答4:


I found cleaning the build worked once and prior to that I put the images in photoshop and exported them as PNG's and then put them in the assets folder and that seemed to work for a while. But since Mojave and the latest Xcode update, that doesn't seem to work anymore. I've already submitted 3 crash reports to Apple and it's taking me nearly an hour to get 2 sprites with the right textures on the screen. Don't mean to sound rude, but Apple need to stop being a bunch of oranges on this one and get is fixed ASAP!!




回答5:


I found a workaround that may or may not work, it ain't reliable but still better than not working at all. I created an empty SKS file and set all my textures in this file. I then copied and pasted the node into the preferred SKS file.




回答6:


There is a great workaround on the Apple forums.

How to fix your .sks file :

  • Open your .sks file outside the project (close your project and open the file directly from Finder)

  • You should see red crosses instead of the Sprites, delete the Texture name information for all of them.

  • Now, you should be able to reopen the file from the project.

  • Finally, reenter the Texture name for all your Sprites.




回答7:


I was having this problem with only one of my sprite textures causing the Xcode sprite editor to crash (even after removing the @2x and @3x images). It had an image DPI of 300 pixels/inch. I changed it to 72 pixels/inch which matches the other sprite textures. No more crash.

I hope this helps someone. This bug in Xcode's sprite editor has been around for quite a few versions of Xcode and is a real productivity killer. Keep submitting those bug reports to apple.




回答8:


I think it is due to your computer: MacBook Pro (13-inch, 2017), which is also my workstation now.

I have tested the same project (simply created by the game template with an identical texture image) on the following computers with Mojave 10.14 and Xcode 10.1 installed:

Mac mini server( later 2012) iMac, 27 (Middle 2011) MacBook Pro, 13 (Middle 2014) MacBook Air, 13(Middle 2014) MacBook Pro, 15(Middle 2014) All of the above computers work well.

One more weird thing happens when I project my MacBook Pro(13-inch, 2017) through the AirPlay, it does not crash anymore.




回答9:


I had the same issue and what worked for me was to bypass using .xcassets all together. I simply added a folder to my project and imported the images into the folder. After that, assigning texture in the scene editor no longer crashed Xcode



来源:https://stackoverflow.com/questions/46879397/xcode-9-crashing-while-setting-a-texture-in-skscene-in-spritekit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!