关于 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

至此,问题解决。

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