2016-07-29 2 views
0

У меня возникла проблема, когда мое приложение работает нормально, когда я запускаю его через Xcode, но сбой при запуске вручную. Я прочитал много сообщений на SO, но я не нашел никакого конкретного ответа. Я проверил журнал устройства, вот фрагмент, который я думаю, что является причиной аварии:Сбой приложения при запуске через Xcode

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 

Я пытаюсь получить доступ к своей адресной книге и принести контакты детали (в зависимости от того пользователь нажимает на), а затем дисплей это во всплывающем. Вот фрагмент кода:

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: приложение работает полностью нормально, когда я запускаю его с помощью Xcode.

+1

попытайтесь отключить оптимизацию '' Swift' компилятора'' для сборки сборки в настройках сборки под Swift Compiler/Code Generation, и если все же там попытаться включить оптимизацию всего модуля, то – Buntylm

+1

Вы извлекаете адресную книгу Во время запуска.? –

+0

или что-то еще происходит во время запуска? –

ответ

2

Есть много причин для сбоя приложения в режиме выпуска, но то, с чем я столкнулся, было связано с Compiler Optimisation, я просто перевернул его, тогда все сработало хорошо для меня. В соответствии с документом Swift complier все еще находится в бета-версии, поэтому может быть много мелких проблем. но это связано с Swift Optimiser, и это прекрасно, что вы можете освободить без оптимизации, просто обновите его своевременно и увидите, что проблема все еще существует, если нет, то идите с оптимизацией. (у меня нет темы вопроса, так как я узнал ее где-то от SO, позвольте мне искать).

enter image description here

Примечание Но да, это точно. есть некоторые строки кода, которые Swift Optimisation не в состоянии оптимизировать. поэтому попробуйте найти его, чтобы он был действительно хорош для всех здесь.

+0

Я отключил его из настроек сборки -> Apple LLVM 7.1- Code Generation, поэтому для отладки и выпуска были выбраны None [-Oo], но это не помогло. – TKutal

+0

Настройки сборки -> Быстрый компилятор - Генерация кода -> Уровень оптимизации. – Buntylm

+0

Нет, Swift Complier - Генерация кода в настройках сборки. Btw Я не использую Swift, так как это помогает? Извините, я noobie. – TKutal

Смежные вопросы