unity ios常见问题记录

  • 在unity里面player setting里面的resolution设置了只有横屏LandScapeLeft但是在苹果真机里面没有横屏,原因是ios开发那边没设置好

  • Duplicate interface definition for class ‘CAMetalLayer’ 我遇到的出现这个报错的情况是unity选择模拟器sdk出ios程序包,嵌入到xcode里面的时候,CAMetalLayer这个类苹果自带模拟器sdk有一个,unity的ios程序包代码里面又声明了一个,Unity版本2019和XCode版本11,2018的版本好像没这个问题,解决办法就是将unity生成程序的代码里面的的这个声明注释掉,参考博客:
    xcode11 unity UnityMetalSupport Duplicate interface definition for class 'CAMetalLayer’的解决方法
    参考博客里面的方法试了不行,只是提供了一个思路unity ios常见问题记录_第1张图片

  • Typedef redefinition with different types (‘void *’ vs ‘struct __CVMetalTextureCache *’),Typedef redefinition with different types (‘void *’ vs ‘CVImageBufferRef’ (aka ‘__CVBuffer *’)),环境unity2019,XCode11,这个是unity使用模拟器SDK出ios程序包时候遇到的问题,解决办法,将unity生成程序全集里面的
    CVTextureCache.mm文件中,全局替换:
    把 CVMetalTextureCacheRef 替换为 UCVMetalTextureCacheRef、
    把 CVMetalTextureRef 替换为 UCVMetalTextureRef
    参考博客:xcode11 unity Typedef redefinition with different types (‘void *’ vs 'struct __CVMetalTextureCach…

  • dyld: Symbol not found: _getHostAddress 这个是unity使用Extern引用外部函数的时候,这个外部函数不存在
    参考链接:unity导出ios工程嵌入到原生ios工程 unity与ios的交互
    unity ios常见问题记录_第2张图片
    看下参考博客的交互部分,看文件里面有没有定义这个方法或者工程里面有没有这个文件

  • ios线性空间的画面问题,Unity版本2019.3.1f1,在playersettings里面使用了线性空间,然后出来的程序在苹果6手机里面运行会有画面问题,苹果7以及苹果X都不会,有问题,估计是新的渲染规则在旧设备上不支持

unity ios常见问题记录_第3张图片
unity ios常见问题记录_第4张图片
马赛克部分是对商标的隐匿,

  • 我这里出现unity出包的程序内嵌在iosapp里面进入的时候的黑屏,原因是ios端在我unity的程序进入的时候给我传的参数是不存在的,导致我的程序没有进行初始化。传给我的参数是大于0的,大于0的时候我会根据值进行选择性的初始化,然后他给我传值是0,就直接黑屏了。有点不一样的是,我的程序在安卓或者webgl端一般是进入了我的程序的白色初始化界面,才进行外界的呼应传值,但是出包ios后,可能是由于ios程序的机制使得最开始的初始化获值是在所有白色初始化界面出现之前,这种机制其实会更加节省内存和性能吧
  • Undefined Ssympbol 这个是因为 unity某个引用的库文件.a为后缀的库文件没有在导出ios工程的时候没有导出来,主要是unity的git提交的问题,两个人的.meta文件不一致,导致一个人的机器有这个东西另一个人没有,没有的人打的ios包就自然没有这个.a的库文件,一般引用第三方插件他们都会带有IOS平台相关的库文件,如果打包出来的程序没有这个的话还有一种可能就是这个库文件被误删了或者库文件在inspector上面的平台没有标对或者这个插件是盗版的阉割版插件

unity ios常见问题记录_第5张图片

你可能感兴趣的:(unity ios常见问题记录)