http://www.jianshu.com/p/7ef5814a871b

解决WKContentView没有isSecureTextEntry方法造成的crash

程序中有web页面,使用WKWebView,但是有个crash一直存在:
[WKContentView isSecureTextEntry]: unrecognized selector sent to instance 0x101bd5000
网上搜索,并没有结果,是太简单了吗?不清楚,准备使用runtime给WKContentView添加一个方法,观察下


在程序启动的时候调用一下progressWKContentViewCrash方法就可以

/**
 处理WKContentView的crash
 [WKContentView isSecureTextEntry]: unrecognized selector sent to instance 0x101bd5000
 */
+ (void)progressWKContentViewCrash {
    if (([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)) {
        const char *className = @"WKContentView".UTF8String;
        Class WKContentViewClass = objc_getClass(className);
        SEL isSecureTextEntry = NSSelectorFromString(@"isSecureTextEntry");
        SEL secureTextEntry = NSSelectorFromString(@"secureTextEntry");
        BOOL addIsSecureTextEntry = class_addMethod(WKContentViewClass, isSecureTextEntry, (IMP)isSecureTextEntryIMP, "B@:");
        BOOL addSecureTextEntry = class_addMethod(WKContentViewClass, secureTextEntry, (IMP)secureTextEntryIMP, "B@:");
        if (!addIsSecureTextEntry || !addSecureTextEntry) {
            NSLog(@"WKContentView-Crash->修复失败");
        }
    }
}

/**
 实现WKContentView对象isSecureTextEntry方法
 @return NO
 */
BOOL isSecureTextEntryIMP(id sender, SEL cmd) {
    return NO;
}

/**
 实现WKContentView对象secureTextEntry方法
 @return NO
 */
BOOL secureTextEntryIMP(id sender, SEL cmd) {
    return NO;

}
在app delegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//处理crash
[AppCrashProcessManager progressCrash];
}

转载于:https://www.cnblogs.com/xsyl/p/6419509.html

ios 处理WKContentView的crash相关推荐

  1. ios 捕抓crash_ios crash的原因与抓取crash日志的方法

    首先我们经常会闪退的异常有哪些呢?crash的产生来源于两种问题:违反iOS策略被干掉,以及自身的代码bug. 1.IOS策略 1.1低内存闪退 前面提到大多数crash日志都包含着执行线程的栈调用信 ...

  2. Mac 抓取iOS手机端的crash日志操作

    iOS手机crash了,如何取出crash日志给研发定位呢! 第一步.iOS手机连接Mac信任验证 第二步.Mac端打开Xcode 第三步.打开Xcode之后,Mac的桌面的左上角就会变成英文,我们选 ...

  3. iOS线上防Crash处理并上传未发生的崩溃日志,降低线上APP崩溃率

    线上APP的崩溃率一直是衡量APP用户体验的重要条件之一,所以,我们很有必要做一些安全防护,让APP尽可能少的产生Crash,提高用户体验.在以前的项目中零零散散做过一些防护,这次专门为平台封装了一个 ...

  4. iOS 利用dSYM定位crash

    What is dSYM ? xCode 的每一次编译都会生成一个dsym文件,在其内部存储了16进制函数地址的映射. 在App实际执行的二进制文件中,是通过地址来调用方法,所以在App Crash ...

  5. ios 网络请求后 Crash

    #import <Foundation/Foundation.h>@interface NSString (SHYUtil)/*!@method charValue@abstract 把字 ...

  6. iOS实录15:浅谈iOS Crash

    导语:在当前的iOS开发中,虽然ARC为开发者解决了手动内存管理时代 的许多麻烦,但是内存方面的问题依然是产生iOS Crash的元凶之一,本文介绍内存方面,有关僵尸对象.野指针.内存泄漏.废弃内存这 ...

  7. ios nstimer实现延时_iOS 中常见 Crash 总结

    作者 | 在路上重名了啊 @(iOS总结)[温故而知新] [TOC] 1.找不到方法的实现unrecognized selector sent to instance 2.KVC造成的crash 3. ...

  8. iOS APP 运行时防Crash工具XXShield练就

    原文地址 前言 正在运行的 APP 突然 Crash,是一件令人不爽的事,会流失用户,影响公司发展,所以 APP 运行时拥有防 Crash 功能能有效降低 Crash 率,提升 APP 稳定性.但是有 ...

  9. 【腾讯Bugly干货分享】聊聊苹果的Bug - iOS 10 nano_free Crash

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/hnwj24xqrtOhcjEt_TaQ9w 作者:张 ...

最新文章

  1. 前端面试题目及答案(欢迎拍砖)
  2. 使用命令编译为jar包
  3. 【收藏】OGC标准服务 WMS WCS WFS WPS
  4. 【Python】求多个字符串的最长公共前缀
  5. 【论文翻译】统一知识图谱学习和建议:更好地理解用户偏好
  6. 又一数据库高危漏洞爆出,数据安全如何有效保障?
  7. 思想交锋:证券业数字化转型实践
  8. mysql查出每个类型时间最早的记录
  9. 专升本/四六级/考研英语学习资源汇总
  10. 显著性水平 p值 z值
  11. macOS 访达的隐藏小技巧
  12. 随机过程(1.2)—— 数学期望与条件期望
  13. BTA16可控硅固态继电器电路开发的有关问题
  14. 伪装图片 攻击php,攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)...
  15. Linux 中断(IRQ/softirq)基础:原理及内核实现
  16. Android开发之CardView卡片布局
  17. 产业互联网时代,大型多元化企业的云网建设与思考
  18. 利用python处理Excel表格中的销售数据
  19. 阿拉伯学生提出博士论文证明地球是平的-已通过批准
  20. Mathtype-如何批量修改公式的字号

热门文章

  1. iis启动默认页无法访问错误类型500的解决
  2. 查看 Oracle 是32位还是64位的方法
  3. WebC.BBS - 网上团队管理-责任心,主动性,积极性划分
  4. 企鹅帝国的疯狂反扑!
  5. flv文件转换,完美解决
  6. python自带gui_一个极简易上手的 Python GUI 库
  7. hdu4884 模拟
  8. 【Android 启动过程】Android 应用启动流程 | Activity 启动流程
  9. 【SeeMusic】下载安装并注册 SeeMusic 软件
  10. 7-1 银行业务队列简单模拟 (25 分)