Mac Unity2019.2.9f1打包ios,用xcode发布到手机上粉色屏幕或者黑屏,并且错误日志可能为
1.“OpenGL warning: Trying to bind too many vertex attributes (got * max is 15).”
这个问题有可能是因为不支持OpenGLES3,可以切换到OpenGLES2尝试,如果必须要使用OpenGLES3,请往下看。
2.WARNING: Shader Unsupported: 'Hidden/Internal-GUITexture' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/Internal-GUITexture' - Pass '' has no fragment shader
WARNING: Shader Unsupported: 'Hidden/Internal-GUITexture' - Setting to default shader.
3.出现“shader not support on this GPU”之类的字样
翻阅了很多国内外的论坛,帖子,有人将Other setting-Rendering-Color space设置为Linear,那么下面的只能Graphics Apis设置为Metal(这样也可以解决问题,如果你没有必要将Graphics Apis设置为OpenGLES2/3的话),但这样只是绕过了问题,对于需要使用opengl的库来说相当于没有解决。
最后,终于发现。以上问题可能引起的原因是Unity编辑器中有一名为“UnityShaderCompiler”的文件,如果你没有Unity版本需求,可以尝试切换至2019.3.0之后的版本,如果有版本需求,还要使用当前版本,例如我就需要使用2019.2.9f1
可以安装一个2019.3.0之后的版本,然后拷贝新版的文件到有问题的这个版本中。替换如下图的文件(路径就是Unity安装目录下-Tools)
然后删除Unity工程的Library文件,重新打开一遍工程,打包,运行,你会来感谢我的。
可参看论坛:https://forum.unity.com/threads/unity-2019-2-7-build-ios-crashes-in-shader-compile.757754/