2017-06-29 143 views
2

我的应用程序发生病毒(耶!),并且在运行iOS 11(boo!)的所有用户启动时发生硬盘崩溃。但是,当我使用XCode 9 beta(包括1和2)构建和运行它时,它在模拟器和手机上都能正常工作。使用XCode 8修复iOS 11崩溃

因为XCode 8(产生破损的版本)无法调试iOS 11设备,并且XCode 9无法复制崩溃,所以除了将它们放在TestFlight上之外,似乎没有办法测试潜在的修补程序。即使我这样做了,也无法将它与XCode 8调试器连接起来。在XCode 8上调试iOS 11有更简单的方法吗?谢谢!

(对于好奇,发生在UITableView._endCellAnimation崩溃 - 这是关于__exceptionPreproces这儿的代码片段:

let task = ItemSource.sharedSource.getRandomItems(10) 
    task.continueWith(
     Executor.mainThread, 
     continuation: { 
      (task: Task<[Item]>) in 
      let nouns: [Item] = task.result! 
      self.controller.tableView.beginUpdates() 
      var indexPaths = [IndexPath]() 
      for noun in nouns { 
       indexPaths.append(self.append(noun)) 
      } 
      self.controller.tableView.insertRows(at: indexPaths, with: .none) 
      self.controller.tableView.endUpdates() <-- Crashes here 
     } 
    ) 
+0

iOS11现在是_Beta_;这次事故可能会误导你。 – holex

+0

我知道,但很多人都安装了这个测试版,我收到很多抱怨。我*可以*告诉他们,他们不应该在他们的主要手机上安装beta操作系统,但用户不喜欢听到太多。 – incidentist

+0

_users_不应该安装任何_beta_,但他们不喜欢听到这个消息,所以他们会安装_beta_,这样的确很不错,但他们忘记接受这样一个事实,即开发人员无法修复一个不是开发人员错误的错误(并且他们没有SDK来修复它)。这很简单,如1-2-3。 – holex

回答

5

由于XCode的8(产生破碎版本)不能调试在iOS 11 设备,

从Xcode9-β到Xcode8复制DeviceSupport将解决这个问题

终端命令:

cp -a /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/