Skip to content

A tool for detecting and repairting continuous launch crash of iOS App

License

Notifications You must be signed in to change notification settings

liuslevis/GYBootingProtection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1c314fe · Jun 1, 2016

History

29 Commits
May 23, 2016
May 20, 2016
Jun 1, 2016
May 18, 2016
May 23, 2016
May 18, 2016
May 23, 2016

Repository files navigation

GYBootingProtection

A tool for detecting and repairting continuous launch crash of iOS App

说明

引入项目

  1. src 目录下所有文件拖拽到你的 Xcode 项目

  2. AppDelegate+GYBootingProtection.monBeforeBootingProtection 方法中添加检测前需要执行的代码,比如设置crash上报:

- (void)onBeforeBootingProtection {
  [GYBootingProtection setLogger:^(NSString *msg) {
      // setup logger
      NSLog(@"%@", msg);
  }];
  
  [GYBootingProtection setReportBlock:^(NSInteger crashCounts) {
      // setup crash report
  }];
}
  1. onBootingProtection 方法中添加修复逻辑,比如删除文件:

    - (void)onBootingProtection {
    	// 检查 JSPatch 更新
    	...
    	// 删除 Documents Library Caches 目录下所有文件
    	[GYBootingProtection deleteAllFilesUnderDocumentsLibraryCaches];
    	...
    }
    

    如需执行异步的修复逻辑,在 onBootingProtectionWithCompletion: 方法添加修复逻辑,并在完成修复后调用 completion :

    - (void)onBootingProtectionWithCompletion:(BoolCompletionBlock)completion {
    	[self onBootingProtection];
    	// 异步修复
    	[self asyncRepairWithCompletion:^(void) {
        	// 正常启动流程
    		if (completion) completion();
    	}];
    }
    

测试与使用

  1. 首先制造连续闪退场景:

启动后 5 秒内,双击 Home 通过上划手势 kill 掉 App,重复多次。(也可以在代码里人为制造crash)

  1. 当连续闪退超过 5 次时,会提示用户修复:

img

  1. 用户轻触修复,App 重置初始状态,连续闪退问题解决:

img

About

A tool for detecting and repairting continuous launch crash of iOS App

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published