昨天剛剛給打包機升級了 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
至此,問題解決。