在使用GPUImage2过程中,iOS13 以上版本出现了crash。GPUImage2的作者已经挺久没有维护这个库了。只能自己排查。
在framework/Source/Apple/RenderView-UIKit.swift 中,存在异步线程使用self.layer 导致了crash
直接对源文件进行修改 , 在该文件64行:
sharedImageProcessingContext.context.renderbufferStorage(Int(GL_RENDERBUFFER), from:self.layer as! CAEAGLLayer)
更改为:
runOnMainQueue {
sharedImageProcessingContext.context.renderbufferStorage(Int(GL_RENDERBUFFER), from:self.layer as! CAEAGLLayer)
}
相关代码上传到了GPUImage2的一个fork上,可以直接下载使用:
https://github.com/liuqiaohong0515/GPUImage2