使用 XCode 8 修复 iOS 11 崩溃
Posted
技术标签:
【中文标题】使用 XCode 8 修复 iOS 11 崩溃【英文标题】:Fixing an iOS 11 crash using XCode 8 【发布时间】:2017-12-02 16:50:13 【问题描述】:我的应用程序走红了(耶!),对于所有运行 ios 11 的用户来说,它在启动时都很难崩溃(嘘!)。但是,当我使用 XCode 9 beta(1 和 2)构建和运行它时,它在模拟器和手机上都可以正常工作。
由于 XCode 8(产生损坏的构建)无法调试 iOS 11 设备,并且 XCode 9 无法复制崩溃,似乎没有办法测试潜在的修复,除非将它们放在 TestFlight 上。即使我这样做了,也无法将它连接到 XCode 8 调试器。有没有更简单的方法在 XCode 8 上调试 iOS 11?谢谢!
(出于好奇,崩溃发生在UITableView._endCellAnimation
- 关于__exceptionPreproces
s。这是sn-p:
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
)
【问题讨论】:
iOS11 目前是Beta;此崩溃可能会误导您。 我知道,但是很多人安装了测试版,我收到了很多关于它的投诉。我可以告诉他们,他们不应该在他们的主要手机上安装测试版操作系统,但用户不喜欢听太多。 用户不应该安装任何beta,但他们确实不喜欢听到,所以他们会安装beta 这还不错,但他们忘记了这样一个事实,即开发人员无法修复不是开发人员错误的错误(而且他们没有 SDK 来修复它)。就像 1-2-3 一样简单。 即使崩溃不是我的错,如果有办法,我想修复它。因此问题。 我不太明白你的 fixing-something-which-is-outside-of-my-scope 的概念,这不是你的范围——你 无法修复它。 【参考方案1】:由于 XCode 8(生成损坏的构建)无法调试 iOS 11 设备,
将 DeviceSupport 从 Xcode9-beta 复制到 Xcode8 将解决这个问题
终端命令:
cp -a /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
【讨论】:
以上是关于使用 XCode 8 修复 iOS 11 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
Xcode10打包引起iOS9.0-9.2系统的用户启动App随机崩溃的问题修复记录
Xcode6 正在破坏我的代码。有修复还是我应该重新安装它?
Fabric Answer 在从 Xcode 10 和 iOS 12 开始时崩溃 iOS 应用程序