如何修复 iOS 16 及更早版本动态链接器中的错误

同事最近有点忙,可能要下周一才能看一下UE4上的改动是否合适,不过他想了解一下目前给的改动是否工作?

现在还没有验证,预计下周一之前可以给到。有结论了我尽快联系~

最新的修复方案在iOS 16及以下的机型没有生效,但是iOS 16以上的机型还没有验证。我先尝试下在iOS 16以上的机型会不会生效

然后我尝试一下把之前的修复方案也一并添加进去,看看能不能解决iOS 16及以下机型的崩溃问题

也麻烦大佬再让同事看一下哈~​

刚刚尝试了一下iOS 16以上的机型,不会发生崩溃~

好的,感谢,所以我们的实现可以解决IOS16以上的问题,但是IOS16一下的问题,目前还没有起效的方案是吧。。。

是的,现在正在尝试把之前的所有解决方案都合起来再试一把。有结果了第一时间通知您哈~

顺便想问下之前讨论的,UE4.27的改动是否合适呢?

之前所有的解决方案合起来都试了一下还是没有解决😭

感谢反馈,这有点颠覆我的认知…我再找其他人确认一下,如果有进展,我们互相通知一下,感谢!

嗯嗯,我这边也试试其他解法~

能试一下在void FMemory::Free里,改成下面这样试一下吗?

FMEMORY_INLINE_FUNCTION_DECORATOR void FMemory::Free(void* Original)
{
	if (!Original)
	{
		FScopedMallocTimer Timer(3);
		return;
	}
 
#if PLATFORM_IOS
	if (FPlatformMemory::PtrIsOSMalloc(Original))
	{
		SystemFree(Original);
		return;
	}
#endif

好滴好滴,我试试~

这样修改貌似不行,我把关键位置的截帧贴了出来,请大佬过目~

看起来崩溃的位置貌似没有调用到FMemory::Free()

[Image Removed]

我也不是很确定,上面的改动是一个线上线上项目组分享的改动,所以想试试。​

哈喽大佬~~ 这个问题已经解决了哈。之前给的解决方案有效果,不过因为还有其他问题没发现所以一直崩溃。现在没有再出现崩溃了

感谢大佬~~~

好的好的,除了我上次发的Patch之外,也用了weak attribute的改动,还有其他改动吗?

UE这边没有了,剩下的改动是我们这边的逻辑。感谢大佬~

好的,感谢!