2016-07-29 15 views
0

Ich habe ein Problem, bei dem meine App einwandfrei läuft, wenn ich sie über Xcode durchführe, aber stürze, wenn ich sie manuell starte. Ich habe viele Artikel über SO durchgesehen, aber ich konnte keine spezifische Antwort finden. Ich überprüfte das Geräteprotokoll, hier ist ein Ausschnitt, den ich denke, die Ursache des Absturzes ist:Anwendung stürzt ab, wenn sie nicht über Xcode läuft

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libobjc.A.dylib     0x0000000180ff5b9c objc_msgSend +28 
1 AppSupport      0x0000000183159f0c _updateDetachedRecord + 32 
2 AppSupport      0x0000000183159ffc CPRecordGetProperty + 52 
3 AppSupport      0x000000018315a270 CPRecordCopyProperty + 24 
4 AddressBook      0x0000000187774498 ABRecordCopyValueUnfiltered + 68 
5 AddressBook      0x00000001877743bc ABRecordCopyValue + 68 

Ich versuche, mein Adressbuch zuzugreifen und eine Kontaktdetails holen (je nachdem, was der Benutzer klickt auf) und dann Anzeige es in einem Pop-Over. Hier ist ein Ausschnitt des Codes:

NSString *firstName = (__bridge NSString *) ABRecordCopyValue(person, kABPersonFirstNameProperty); 
NSString *lastName = (__bridge NSString *) ABRecordCopyValue(person, kABPersonLastNameProperty); 
NSString *company = (__bridge NSString *) ABRecordCopyValue(person, kABPersonOrganizationProperty); 
NSString *title = (__bridge NSString *) ABRecordCopyValue(person, kABPersonPrefixProperty); 
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty); 
NSString *email = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(emails, 0)); 
ABMultiValueRef phoneNo = ABRecordCopyValue(person, kABPersonPhoneProperty); 
NSString *phnNo = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNo, 0)); 
ABMultiValueRef skyepeIDs = ABRecordCopyValue(person, kABPersonInstantMessageProperty); 
NSDictionary *skyepeID = (__bridge NSDictionary *)(ABMultiValueCopyValueAtIndex(skyepeIDs, 0)); 

P. S: Die App läuft völlig in Ordnung, wenn ich es über Xcode laufen.

+1

versuchen, die 'Swift Compileroptimierungen' für die Release-Build in Build-Einstellungen unter Swift Compiler/Code Generation zu deaktivieren und wenn immer noch dort dann versuchen, die' ganze Modul-Optimierung' zu drehen – Buntylm

+1

Holen Sie Adressbuch Zur Startzeit. –

+0

oder Etwas anderes zur Startzeit verarbeiten? –

Antwort

2

Es gibt viele Gründe für den Absturz der App im Freigabemodus, aber was ich konfrontiert war, war aufgrund Compiler Optimisation, ich habe es gerade abgerundet dann alles hat gut für mich gearbeitet. Laut der Dokumentation Swift Compiler ist immer noch in der Beta-Version, so kann es viele kleinere Probleme geben. aber das ist im Zusammenhang mit der Swift Optimiser und das ist in Ordnung können Sie ohne die Optimierung nur aktualisieren Sie es rechtzeitig und sehen, ist das Problem immer noch dort, wenn nicht dann mit der Optimierung gehen. (Ich habe nicht den Fragefaden, wie ich es irgendwo von SO gelernt habe, lass mich suchen).

enter image description here

HINWEIS Aber ja, das ist sicher. Es gibt einige Codezeilen, die Swift Optimisation nicht optimieren kann. Also versuchen Sie es herauszufinden, so dass es für alle hier wirklich großartig ist.

+0

Ich habe es von Build-Einstellungen -> Apple LLVM 7.1 - Code Generation ausgeschaltet, so dass Debug und Release auf None [-Oo] gesetzt wurden, aber es half nicht. – TKutal

+0

Build-Einstellungen -> Swift Complier - Code-Generierung -> Optimierungsstufe. – Buntylm

+0

Es gibt keine, Swift Complier - Code Generation unter Build Settings. Übrigens verwende ich Swift nicht, also wie hilft das? Tut mir leid, ich bin ein Noobie. – TKutal

Verwandte Themen