gpt4 book ai didi

swift - 为什么我的应用程序在模拟器中运行但在我的 iPhone 上尝试启动时崩溃?

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:13 26 4
gpt4 key购买 nike

我正在使用 Xcode 8.3.2 在 Swift 3 中编写应用程序。我的应用程序在模拟器中运行良好,但当我尝试在我的 iPhone (iOS 10.3.1) 上运行它时收到一条丑陋的错误消息:

   libswiftCore.dylib`function signature specialization <preserving fragile attribute, Arg[2] = Dead, Arg[3] = Dead> of Swift._fatalErrorMessage (Swift.StaticString, Swift.StaticString, file : Swift.StaticString, line : Swift.UInt, flags : Swift.UInt32) -> Swift.Never:
0x1005203d0 <+0>: stp x26, x25, [sp, #-0x50]!
0x1005203d4 <+4>: stp x24, x23, [sp, #0x10]
0x1005203d8 <+8>: stp x22, x21, [sp, #0x20]
0x1005203dc <+12>: stp x20, x19, [sp, #0x30]
0x1005203e0 <+16>: stp x29, x30, [sp, #0x40]
0x1005203e4 <+20>: add x29, sp, #0x40 ; =0x40
0x1005203e8 <+24>: mov x19, x6
0x1005203ec <+28>: mov x20, x5
0x1005203f0 <+32>: mov x21, x4
0x1005203f4 <+36>: mov x22, x3
0x1005203f8 <+40>: mov x23, x2
0x1005203fc <+44>: mov x24, x1
0x100520400 <+48>: mov x25, x0
0x100520404 <+52>: adr x8, #0xf11fc ; protocol descriptor for Swift._DefaultCustomPlaygroundQuickLookable + 136
0x100520408 <+56>: nop
0x10052040c <+60>: add x0, x8, #0x10 ; =0x10
0x100520410 <+64>: mov w1, #0x28
0x100520414 <+68>: orr w2, wzr, #0x7
0x100520418 <+72>: bl 0x100520750 ; swift_rt_swift_allocObject
0x10052041c <+76>: mov x8, x0
0x100520420 <+80>: stp x22, x21, [x8, #0x10]
0x100520424 <+84>: strb w20, [x8, #0x20]
0x100520428 <+88>: str w19, [x8, #0x24]
0x10052042c <+92>: adr x3, #0x40440 ; partial apply forwarder for Swift.(_fatalErrorMessage (Swift.StaticString, Swift.StaticString, file : Swift.StaticString, line : Swift.UInt, flags : Swift.UInt32) -> Swift.Never).(closure #2)
0x100520430 <+96>: nop
0x100520434 <+100>: mov x0, x25
0x100520438 <+104>: mov x1, x24
0x10052043c <+108>: mov x2, x23
0x100520440 <+112>: mov x4, x8
0x100520444 <+116>: bl 0x1004014dc ; function signature specialization <preserving fragile attribute, Arg[1] = [Closure Propagated : reabstraction thunk helper from @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> () to @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> (@out ()), Argument Types : [@callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> ()]> of generic specialization <preserving fragile attribute, ()> of Swift.StaticString.withUTF8Buffer <A> ((Swift.UnsafeBufferPointer<Swift.UInt8>) -> A) -> A
-> 0x100520448 <+120>: brk #0x1

我设置了一个异常断点,使我得到了这段代码:

    if let defaultFormula = dataManager.fetchDefaultFormula(moc) {
self.formula = defaultFormula.first! <<< Unexpectedly found nil...
}

这是它调用的函数:

  func fetchDefaultFormula(_ moc: NSManagedObjectContext) -> [Formula]? {
let defaultFormulaID = UserDefaults.formula()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Formula")
let filterPredicate = NSPredicate(format: "uuid = [c] %@", defaultFormulaID)
fetchRequest.predicate = filterPredicate

do {
return try moc.fetch(fetchRequest) as? [Formula]
} catch {
fatalError("There was an error fetching the lifts")
}
return nil
}

提取请求返回 0 值,因此很清楚为什么在我强制解包时会出现异常。但是,对象属性“公式”必须有一个值。应用程序做的第一件事是检查持久存储中是否存在默认数据(如可用公式),如果不存在,则添加它。我已经重置了 Simulator 并且它尽职尽责地添加了它们,但似乎这并没有发生在 iPhone 上。如果有什么方法可以判断在iPhone上运行时是否将记录添加到商店中,请赐教。

我发现了一些 SO 线程,其中其他人遇到了这个神秘的错误(大的、丑陋的错误,而不是意外的 nil),我已经尝试了所有建议的补救措施:

  • 清理项目拔掉 iPhone,再插上
  • 重启所有设备
  • 将团队更改为无并返回给我
  • 关闭自动管理签名并重新打开
  • 下载了我当前的证书
  • 在build设置中将一些标志从否变为是
  • 等等

我已经用尽了我能找到的所有建议,不知道从这里该何去何从。

非常感谢任何建议。

最佳答案

好吧,我想有一件事我没有尝试过 - 先从我的手机上卸载应用程序,然后在手机上构建并运行它。

所以我真的不知道根本原因是什么,但至少这解决了问题。

关于swift - 为什么我的应用程序在模拟器中运行但在我的 iPhone 上尝试启动时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43750759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com