办理Xcode14"Application circumvented Objective-C runtime dealloc initi

手机软件开发 2024-10-2 18:25:21 33 0 来自 中国
升级到Xcode14后,App莫名其妙一运行就闪退,断点也分析捕捉不到对应的地方,日志不停体现"Application circumvented Objective-C runtime dealloc initiation for <%s> object",看起来像是apple底层代码迭代后导致的题目。
背面花了很多时间排查,定位到了是老项目中引入了IQKeyboardManager ,不停没更新导致的,但根本缘故起因是iOS16 苹果不允许在体系控件分类(Categroy)中重写 + (void)initialize方法,而该库的老版本UIView分类里违反了:


办理方法:更新IQKeyboardManager到最新版本
闻一知十,根本办理方法:
不要在体系控件分类(Categroy)中重写 + (void)initialize方法,假如时间紧可以临时用+(void)load更换+ (void)initialize。
近来另有很多朋侪私信我是怎么办理的,这个题目确实很费时间,再增补下述步调:
1.全局搜刮全部+ (void)initialize 方法,假如不思量性能影响,可临时把涉及上诉题目的+ (void)initialize 换成+(void)load
2.更新全部老旧SDK,内里有此题目的是搜不出来的
3.都没定位到,就从- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions开始,渐渐断点跟踪调试题目。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-21 21:36, Processed in 0.156645 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表