2017-05-03 3 views
1

Ich schreibe eine App in Swift 3 mit Xcode 8.3.2. Meine App läuft im Simulator in Ordnung, aber ich erhalte eine hässliche Fehlermeldung, wenn ich versuche, es auf meinem iPhone (iOS 10.3.1) zu laufen:Warum läuft meine App im Simulator, stürzt aber beim Starten auf meinem iPhone ab?

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 

ich eine Ausnahme Haltepunkt gesetzt, den ich an dem Code zu diesem Bit geführt :

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

und hier ist die Funktion aufrufen es:

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 
    } 

die Abrufanforderung 0 Werte zurückgibt, so ist es klar, warum ich die Ausnahme, wenn ich unwrap es erzwingen. Die Objekteigenschaft 'Formel' muss jedoch einen Wert haben. Als Erstes prüft die App, ob die Standarddaten (wie die verfügbaren Formeln) im persistenten Speicher vorhanden sind. Ist dies nicht der Fall, wird sie hinzugefügt. Ich habe den Simulator zurückgesetzt und er fügt sie pflichtgemäß hinzu, aber es scheint, dass dies nicht auf dem iPhone passiert. Wenn es eine Möglichkeit für mich gibt zu bestimmen, ob die Datensätze zum Laden hinzugefügt werden, wenn sie auf dem iPhone laufen, bitte erleuchte mich.

Ich habe ein paar SO Threads, in denen andere fanden diese kryptische Fehler erlebt haben (das große, hässliche, nicht der unerwartete nil) und ich habe alle von den Mitteln versucht vorgeschlagen:

  • gereinigt das Projekt unplugged das iPhone, es in
  • neu gestartet gesteckt zurück alle Geräte
  • das Team zu Keine geändert und mir zurück
  • automatisch ausgeschaltet Unterzeichnung verwalten und drehte sie wieder auf
  • meine aktuellen Zertifikate heruntergeladen
  • einige Fahnen von Nein auf Ja in Build Settings
  • finden gedreht
  • etc

Ich weiß nicht, wohin sie gehen von hier haben alle Vorschläge erschöpft Ich habe in der Lage zu .

Alle Vorschläge werden sehr geschätzt.

Antwort

2

Nun, ich denke, es gab eine Sache, die ich nicht versuchte - zuerst die App von meinem Handy zu deinstallieren, dann aufzubauen und am Telefon zu starten.

So weiß ich nicht wirklich, was die Ursache war, aber zumindest das das Problem gelöst.

+0

Leider passiert es. Upvoted. Das nächste Mal werden Sie wahrscheinlich daran denken, es zu versuchen! – Mozahler

Verwandte Themen