美文网首页
关于MachOView闪退的解决方法

关于MachOView闪退的解决方法

作者: TungKamLau | 来源:发表于2019-08-05 10:42 被阅读0次

    由于针对framework瘦身一直在日程中,但由于其他需求插入进来优先级P0-0,所以一直没做瘦身,最近闲暇有时间做瘦身,所以通过网站搜索到关于mac-O文件的分析,查看,会使用到MachOView,通过githubhttps://github.com/gdbinit/MachOView或官网https://sourceforge.net/projects/machoview/下载到的版本在Mac系统10.14.5下均出现闪退现象。所以也摸索着进行解决。主要解决在2个地方,具体如下:
    1、

    image.png

    上述就是最基本的解决方法,有效,但使用起来还是崩溃。
    2、
    然后继续查找发现在Document.mm line 449-line 447中关于隐藏stopButton(也就是那个x号的icon)时经常崩溃,所以大概断定是线程问题,所以将此处代码改为:

    - (void)handleThreadStateChanged:(NSNotification *)notification
    {
      if ([notification object] == dataController)
      {
        NSString * threadState = [[notification userInfo] objectForKey:MVStatusUserInfoKey];
        if ([threadState isEqualToString:MVStatusTaskStarted] == YES)
        {
          if (OSAtomicIncrement32(&threadCount) == 1)
          {
              dispatch_async(dispatch_get_main_queue(), ^{
                  [progressIndicator setUsesThreadedAnimation:YES];
                  [progressIndicator startAnimation:nil];
                  [stopButton setHidden:NO];
              });
          }
        }
        else if ([threadState isEqualToString:MVStatusTaskTerminated] == YES)
        {
          if (OSAtomicDecrement32(&threadCount) == 0)
          {
              dispatch_async(dispatch_get_main_queue(), ^{
                  [progressIndicator stopAnimation:nil];
                  [statusText setStringValue:@""];
                  [stopButton setHidden:YES];
              });
          }
        }
      }
    }
    

    主要是让

    [progressIndicator setUsesThreadedAnimation:YES];
    [progressIndicator startAnimation:nil];
    [stopButton setHidden:NO];

    [progressIndicator stopAnimation:nil];
    [statusText setStringValue:@""];
    [stopButton setHidden:YES];

    在主线程执行,更改完毕之后,run,然后再将MachOView.app拷贝到应用程序中,打开,目前没发现崩溃现象~
    时间匆忙,就写到这,如果按照此方法更改之后出现崩溃或者有其他交流的,请留言!
    初到此地,请多包涵!

    相关文章

      网友评论

          本文标题:关于MachOView闪退的解决方法

          本文链接:https://www.haomeiwen.com/subject/nhupdctx.html