场景:工程中存在消息接收的 switch 语句,老版本是Xcode9.4 打出的 ipa 包,新版本在发送新类型的消息给老版本时, 老版本在消息接收的 switch 语句中没有走 default,而是随机走了某个 case,由于这个 case 中的代码存在强制解包的情况,而引起了老版本在该种情况下的闪退。具体见下图:
- 错误路线一.jpg
- 错误路线二.jpg
- 错误路线三.jpg
虽然 Xcode9.4 打出的 ipa 包 会出现上述情况,但是 Xcode10.1 打出来的包却无此问题,Xcode 直接编译出来的也无此问题。所以踩到此坑的小伙伴可以选择升级 Xcode ,并在代码上做容错处理以提高代码的健壮性。
网友评论