NVMGO product blog about

IOS闪退日志

Jun 02, 2019 - Nvmgo

无缘无故的闪退

有时候你的 app 会莫名其妙的崩溃,日志信息也毫无规律找不到问题。 其实这有可能是因为你的代码,或插件,太过遵循oop的思想了,啥泛型,接口,递归用的太多了。。。代码写的太好了也崩溃给你看,2333。 AOT 里有一个叫 trampoline 的玩意,毛病就在它身上了,上面的文章里讲的都挺清楚了。 然后解决方法就是,在 PlayerSetting 的 AOT Compilation Options 里,添加这么一行编译参数:

nrgctx-trampolines=8096,nimt-trampolines=8096,ntrampolines=4048

这3个的意思就是:

nrgctx-trampolines=8096 
这是留给递归泛型使用的空间,默认是1024

nimt-trampolines=8096 
这是留给接口使用的空间,默认是128

ntrampolines=4048 
这是留给泛型方法调用使用的空间,默认是1024

Framework内部link在Windows下提交造成的崩溃

Xcode下会使用.framework库,这些库里面有些有个Versions文件夹下有多个版本,然后有个link文件link到内部的版本。

但是这个文件只能在Mac下提交,如果在Windows下提交则会破坏内部结构,打包时造成link失败,导致a文件没有打入包内,进而造成崩溃。

注意:SVN提交也会造成a文件遗漏