2017-06-29 213 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/