关于 Xcode 13 运行 iOS 14 以下的真机直接闪退(dyld: launch, loading dependent libraries)

昨天刚刚给打包机升级了 Xcode 13 ,走了一遍打包流程,妥妥的没问题,没想到今儿个就出问题了:
Xcode 13 打出来的包在 iOS 13 和 iOS 12 的测试机上都无法打开(Xcode 12 没有问题),点击就闪退,经过真机调试,发现 Xcode console 断在这里

dyld: launch, loading dependent libraries
DYLD_LIBRARY_PATH=/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/Library/PrivateFrameworks/GPUTools.framework/libglInterpose.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib

继续运行出现:

dyld: Library not loaded: /System/Library/Frameworks/UniformTypeIdentifiers.framework/UniformTypeIdentifiers
  Referenced from: /private/var/containers/Bundle/Application/DF5A3F7E-CEF3-4CFB-8621-8BF8776DA8C5/magapp-x.app/magapp-x
  Reason: image not found
19A81E894043DD480F64C686F13BA2AF.jpg

多么熟悉的错误,手动集成动态库都遇到过。一番查证,UniformTypeIdentifiers.framework 是从 iOS 14 开始支持的,但是我的项目并没有引用这个 framework,并且 Xcode 12 也是正常的,猜测是 Xcode 13 开始的变化。

后来又小伙伴发给我一篇文章有提到过类似的问题。

于是我根据这篇文章在项目中引入 UniformTypeIdentifiers.framework,并且在 BuildPhases 中将 Required 修改为 Optional,再次进行调试,成功运行。

F3B86F0D59E8CEBE3D60C886D702EA72.jpg

至此,问题解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容