我正在使用Xcode在Spritekit中构建游戏。更新到Xcode 9后,我发现每次通过.sks文件设置纹理时,Xcode会立即崩溃。我重新启动了计算机,更新了应用程序,重新加载了纹理,没有任何变化。我有2017年Macbook教授13"带触摸杆。以下是诊断:
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 :(得分:9)
我解决了崩溃的问题。
问题在于你的@ 2x和@ 3x图像。使用Assets.xcassets文件夹中的那些 - SKS节点将崩溃XCODE。
此解决方案每次都可以100%运行。
答案 1 :(得分:2)
答案 2 :(得分:2)
答案 3 :(得分:2)
我发现清理构建一次,然后将图像放入Photoshop中并导出为PNG,然后将其放入资产文件夹中,这似乎可以工作一段时间。但是自从Mojave和最新的Xcode更新以来,这似乎不再起作用。我已经向苹果提交了3个崩溃报告,花了将近一个小时的时间才能在屏幕上获得2个纹理正确的精灵。并不是说听起来很粗鲁,但苹果需要停止在这上面放一堆橘子,并尽快修复!!
答案 4 :(得分:1)
我发现了一种可能会或可能不会起作用的解决方法,它既不可靠,又比不工作更好。我创建了一个空的SKS文件并在此文件中设置了所有纹理。然后,我将节点复制并粘贴到首选的SKS文件中。
答案 5 :(得分:1)
Apple论坛有一个很好的解决方法。
如何修复.sks文件:
在项目外打开.sks文件(关闭项目并直接从Finder打开文件)
您应该看到红色十字架而不是Sprite,删除所有这些的纹理名称信息。
现在,您应该可以从项目中重新打开该文件。
最后,重新输入所有精灵的纹理名称。
答案 6 :(得分:1)
我只遇到了一个我的精灵纹理,导致Xcode精灵编辑器崩溃(即使在删除了@ 2x和@ 3x图像后)。它的图像DPI为300像素/英寸。我将其更改为72像素/英寸,与其他精灵纹理相匹配。没有更多的崩溃。
我希望这有助于某人。 Xcode的精灵编辑器中的这个错误已经存在于Xcode的很多版本中,并且是真正的生产力杀手。继续将这些错误报告提交给苹果。
答案 7 :(得分:1)
我认为这是由于您的计算机:MacBook Pro(13英寸,2017年),它现在也是我的工作站。
我在装有Mojave 10.14和Xcode 10.1的以下计算机上测试了相同的项目(由游戏模板创建的具有相同的纹理图像):
Mac mini服务器(2012年后期) iMac,27岁(2011年中) MacBook Pro,13(2014年中) MacBook Air,13(2014年中) MacBook Pro,15(2014年中) 以上所有计算机均能正常工作。
当我通过AirPlay投影MacBook Pro(13英寸,2017年)时,又发生了一件奇怪的事情,它不再崩溃了。
答案 8 :(得分:0)
我遇到了同样的问题,对我有用的是一起绕过使用.xcassets
。我只是将一个文件夹添加到我的项目中,然后将图像导入到该文件夹中。之后,在场景编辑器中分配纹理不再使Xcode崩溃