Оказывается очень мощный и полезный инструмент Profiler…
http://stackoverflow.com/questions/9853100/getting-info-about-bad-memory-address-in-lldb
Category Archives: XCode
XCode 4.6.1 крэшится при обновлении Provision Profiles
При попытки публикации приложения XCode выдал ошибку, мол, закончились сертификаты приложения.
При попытке обновить сертификаты как обычно через встроенный органайзер XCode стабильно крэшится.
В системный лог вываливается:
Xcode[34179]: DVTAssertions: UNCAUGHT EXCEPTION (NSInvalidArgumentException): *** setObjectForKey: object cannot be nil (key: teamId)
Оказалось кончился срок сгенерированных сертификатов разработчика.
XCode магически лечится удалением файла ~Library/Developer/Xcode/connect1.apple.com 4.6.1.db
Рекомендуют также удалить ~/Library/Caches/com.apple.dt.Xcode
Теперь список сертификатов обновляется, но при попытке сделать Renew сертификата приложения вылетает No value was provided for the parameter ‘certificateIds’.
Обновлять сертификаты приходится вручную через сайт.
Обновить нужно все сертификаты (Developer & Distribution) так как изменился сертификат разработчика.
Далее делаем Refresh в Органайзере Provision Profiles.
Вот такой вот этот глючный XCode…
dyld: Symbol not found: _NSURLIsExcludedFromBackupKey
Получил такую ошибку при попытки запуска проекта на iOS 5.0 Simulator.
Погуглив, выяснилось в основном такая проблема возникает у тех, кто реально использует этот символ.
Предлагается следующее решение:
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { const char* filePath = [[URL path] fileSystemRepresentation]; const char* attrName = "com.apple.MobileBackup"; if (&NSURLIsExcludedFromBackupKey == nil) { // iOS 5.0.1 and lower u_int8_t attrValue = 1; int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0); return result == 0; } else { // First try and remove the extended attribute if it is present int result = getxattr(filePath, attrName, NULL, sizeof(u_int8_t), 0, 0); if (result != -1) { // The attribute exists, we need to remove it int removeResult = removexattr(filePath, attrName, 0); if (removeResult == 0) { NSLog(@"Removed extended attribute on file %@", URL); } } // Set the new key return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil]; } }
Но в моем проекте он совершенно не использовался и в подключенных фреймворках тоже.
Решение как всегда неочевидное но очень простое — подключить CoreFoundation.framework и сделать его Optional.
Убрать Deprecated сообщение
if ( [[[UIDevice currentDevice] systemVersion] doubleValue] < 3.2 ) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated" [[userInfo objectForKey:UIKeyboardBoundsUserInfoKey] getValue:&keyboardEndFrame]; #pragma GCC diagnostic pop else [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];