Сбой организатора XCode 4.3

Я установил XCode 4.3. Я видел, что на вкладке общих настроек есть вкладка «Обнаружение устройств iOS». Может и раньше было, но только сейчас заметил. Итак, я проверил, после этого я могу делать что угодно, но XCode постоянно вылетает, когда я пытаюсь получить доступ к вкладке устройств органайзера.

Любые подсказки для решения?


Обновление: я удалил его и переустановил из Mac App Store, но это не помогло.


Обновление: я отправил ошибку в Apple, они пометили ее как дубликат и после этого закрыли обе. Итак, я надеюсь, что у нас будет решение от Apple.


person Infinite Possibilities    schedule 17.02.2012    source источник


Ответы (13)


Та же проблема здесь. Я только что создал нового пользователя в своей системе. С ним у меня без проблем открываются устройства в окне органайзера.... странно...

Изменить: я удалил один сертификат в своей цепочке для ключей, который решил проблему для меня. Это был сертификат, которому не доверяли. Может быть, это поможет вам.

Обратите внимание, что «вредный» сертификат может не быть сертификатом разработки или вообще не относиться к разработке/предоставлению. Обязательно проверьте «Сертификаты», а не только «Мои сертификаты» в «Связке ключей». Виновником может быть любой сертификат, например, сертификат SSL, подписанный компанией, и т. д.

person Ozone    schedule 17.02.2012
comment
Я отправил отчет об ошибке в Apple по поводу этой проблемы. Я собираюсь попробовать что-то с сертификатами, и если это сработает, я тоже сообщу об этом, надеюсь, Apple поработает над этим. - person Infinite Possibilities; 18.02.2012
comment
Сертификаты решили проблему для меня. Я удалил один сертификат и пытался удалить снова, пока не нашел плохой сертификат. - person Infinite Possibilities; 18.02.2012
comment
Верьте или нет, это сделало это и для меня. Я просто удалил все недействительные (в том числе ненадежные) сертификаты, и, наконец, на последнем он перестал падать! - person Jann; 22.02.2012
comment
У меня также есть эта проблема. Тем не менее, я удалил все ненадежные сертификаты и все, что хоть немного выглядело не так, но Xcode по-прежнему дает сбой, когда я перехожу на вкладку «Устройства» (также при попытке выполнить специальную сборку). Что-нибудь еще я должен искать? - person DonnaLea; 23.02.2012
comment
обновление: все, что не говорит, что этот сертификат действителен, должно быть удалено. У меня был сертификат, который я специально установил как доверенный, но его также нужно было удалить, прежде чем Xcode перестанет давать сбой. И убедитесь, что вы выбрали каждый сертификат, не все отмечены красным крестом рядом с сертификатами с проблемами. - person DonnaLea; 23.02.2012
comment
Я удалил все сертификаты, которые не говорят, что этот сертификат действителен, и XCode все еще дает сбой. Кто-нибудь еще? - person Casey; 16.03.2012
comment
@Casey, как сказала ДоннаЛи. Удалите даже сертификаты, которые говорят «помечены как доверенные». Я удалил / все / недействительные сертификаты, и это все равно не удалось. Удалил один Linksys, помеченный как доверенный, и он сразу же запустился. i.imgur.com/hY5Oy.png - person Critter; 20.04.2012
comment
У меня был просроченный самоподписанный сертификат. Как только я удалил его, Xcode перестал падать. - person TrevorL; 11.07.2012

Я не могу взять на себя полную ответственность за это. Я нашел его здесь и добавил в конец немного нужного мне в мое дело.

Создайте readcert.m со следующим содержимым:

#import <Security/Security.h>
#import <Foundation/Foundation.h>

void checkCerts () {
    OSStatus status;

    const void *keys[] = {
        kSecClass,
        kSecReturnRef,
        kSecMatchLimit
    };
    const void *values[] = {
        kSecClassCertificate,
        kCFBooleanTrue,
        kSecMatchLimitAll
    };
    CFDictionaryRef query = CFDictionaryCreate(NULL, keys, values, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);

    CFArrayRef results;
    if ((status = SecItemCopyMatching((CFDictionaryRef) query, (CFTypeRef *)&results)) != noErr) {
        NSLog(@"Failed to copy certificates: %d", status);
        return;
    }

    CFIndex count = CFArrayGetCount(results);
    CFIndex i;
    for (i = 0; i < count; i++) {
        SecCertificateRef cert = (SecCertificateRef) CFArrayGetValueAtIndex(results, i);
        CFErrorRef error;
        CFDictionaryRef vals = SecCertificateCopyValues(cert, NULL, &error);
         if (vals == NULL) {
            CFStringRef subjectSummary = SecCertificateCopySubjectSummary(cert);
              NSLog(@"Found a triggering certificate: %@", subjectSummary);
         }
    }

    CFRelease(results);
}

int main (int argc, char *argv[]) {
    NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
    checkCerts();
    [p release];

    return 0;
}

Затем скомпилируйте его с помощью:

clang -o readcert readcert.m -framework Security -framework Foundation

Затем запустите его:

./readcert

Он должен вывести имя плохого сертификата. В моем случае это был сертификат маршрутизатора Linksys. Я удалил сертификат из своей цепочки для ключей, но Xcode все еще давал сбой, а readcert все еще говорил, что он там, поэтому я выполнил эту команду.

sudo security delete-certificate -c Linksys_WRVS4400Nv2

Я не уверен, откуда взялся сертификат, я не видел его ни в логине, ни в системных цепочках ключей, но после его удаления из командной строки в Xcode все снова было прекрасно.

person Fls'Zen    schedule 12.03.2012
comment
Фантастика, спасибо. Это сработало для меня, и вкладка устройств снова загрузится. Он нашел несколько сертификатов, которые не были видны в приложении «Связка ключей», мне пришлось использовать security find-certificate -Z -a -c mycert.example.com, чтобы найти их. Флаг -a печатает все соответствующие сертификаты. Флаг -Z печатает хэш SHA-1 сертификата, который можно использовать в security delete-certificate -Z <hash>, если несколько сертификатов совпадают при удалении по имени. - person RandomEtc; 13.03.2012
comment
это сработало не только у меня, но и в XCode 4. Кроме того, была точно такая же проблема с linsys. Спасибо! - person nycynik; 03.05.2012
comment
Очевидно, все еще ошибка, так как я снова оказался здесь, следуя своему собственному ответу, чтобы найти и устранить плохой сертификат. По-прежнему работает! - person Fls'Zen; 17.07.2012
comment
Ура, это работает. У меня были некоторые проблемы с компиляцией, потому что у меня не были установлены инструменты командной строки Xcode, поэтому убедитесь, что они у вас установлены, это можно сделать на вкладке Xcode> «Настройки»> «Загрузки» (по крайней мере, в Xcode 4.4.1) - person DonnaLea; 22.08.2012
comment
Органайзер аварийно завершает работу при обновлении, я запустил readcert, но у него не было вывода, и Организатор по-прежнему аварийно завершает работу: UNCAUGHT EXCEPTION (NSInvalidArgumentException): *** setObjectForKey: объект не может быть нулевым (ключ: teamId) Все, где я работаю, обновлены до последней версии xCode, поэтому нет можно воссоздать профиль подготовки группы, потому что организатор у всех аварийно завершает работу при обновлении. - person Richard Grossman; 22.03.2013
comment
@cyberBeach Похоже, у вас другая проблема, если readcert не возвращает неверных сертификатов. - person Fls'Zen; 22.03.2013

Та же проблема. Не счастлив. Мне трудно поверить, что Apple выпустила это в таком состоянии. Сегодня у меня XCode разбился как минимум в 25 раз.

person DoctorG    schedule 17.02.2012

Я решил проблему. Я не знаю, лучшее ли это решение, но через пять дней я рад, что Xcode снова заработал.

Я решил проблему, сделав две вещи. Сброс моей связки ключей под Lion и отзыв моих существующих профилей обеспечения.

Итак, сначала сбросьте свою связку ключей под Lion (http://support.apple.com/kb/TS1544). Это заставит Организатор запускаться без сбоев.

К сожалению, теперь вы не можете развернуть свое программное обеспечение, потому что вы убили все сертификаты в цепочке ключей. Итак, теперь вам нужно отозвать все свои сертификаты разработчика (developer.apple.com/membercenter) и удалить профили обеспечения из вашего органайзера. Затем скажите организатору обновить.

Он восстановит все ваши больные профили, но также создаст хотя бы один здоровый.

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

Как я уже сказал, возможно, это не лучшее решение, но удаление старых сертификатов из цепочки для ключей и дополнительных файлов настроек мне ничем не помогло. Если ничего не помогло, попробуйте этот рецепт, возможно, он поможет.

person Peter Kevin Reeves    schedule 15.03.2012

Наконец понял это. Проблема для меня была с моим устройством разработки, а не с XCode. Я восстановил свое устройство до заводских настроек. Теперь XCode не будет аварийно завершать работу при подключении устройства.

Перед сбросом устройства я попытался просто удалить все сертификаты на устройстве. Однако XCode все еще зависал. Это единственный другой шаг, который я предпринял на устройстве перед его сбросом.

ОБНОВЛЕНИЕ 22.03.12: Сегодня Apple выпустила новую версию XCode. Из примечаний к выпуску:

Дополнительные исправления ошибок и улучшения стабильности

Надеюсь, это решит проблему для большинства людей.

ОБНОВЛЕНИЕ 11.04.12

У меня снова начались проблемы с XCode. Коллега предложил мне очистить кеш XCode для моего проекта, который для меня находился здесь:

~/Library/Developer/Xcode/DerivedData/your_app_name-abunchofletters

В этой папке запустите:

rm -r *

XCode больше не падает при подключении моего устройства разработки.

person Casey    schedule 21.03.2012

и снова здесь .. Я заметил, что мой iphone просыпался после этих сбоев - он синхронизируется через Wi-Fi.

Я думал, что это решило проблему вчера, пока я не начал работать сегодня.. Я не могу так работать.. Я уже ищу альтернативу.

Я могу заставить его разбиться сегодня (для чего-то отличного от Apple) «Файл»> «Открыть»> и выберите папку программирования, где вся работа ... Бум! Каждый раз..

Итог: сегодня не ожидается релиза приложения Apple...

person Luke    schedule 22.02.2012
comment
Если у вас есть какой-либо журнал сбоев, пришлите его мне, чтобы я мог добавить его в сообщение об ошибке моего Apple. - person Infinite Possibilities; 23.02.2012
comment
Привет, @InfinitePossibilities, у меня такая же проблема. Вот мой крашлог: pastebin.com/wLhFEu4q - person Casey; 15.03.2012

То же самое. Проверьте свои системные журналы. Для меня это кажется фиктивным USB-соединением. Я вижу такие вещи в журналах (консольное приложение):

27.02.12 13:34:16,537 com.apple.usbmuxd: _SendAttachNotification (thread 0x7fff756c7960): отправка аттача для устройства xxx._apple-mobdev._tcp.local.: _GetAddrInfoReplyReceivedCallback совпало.

А затем 27.02.12 13:34:20,407 [0x0-0x6b06b].com.apple.dt.Xcode: указатель мусора хранится в доступной памяти, прерывание auto_zone_resurrection_error для отладки 27.02.12 13:34:20,425 [0x0-0x6b06b]. com.apple.dt.Xcode: Xcode(2099,0x114d85000) malloc: ошибка * для объекта 0x7fef55278cb0: освобождаемый указатель не был выделен

Интересно, что сразу после этого есть процесс backupd, который пытается запустить резервное копирование машины времени. Может быть связано - буду следить.

person Nicolinux    schedule 27.02.2012
comment
Мое сообщение об ошибке в Apple одобрено, поэтому я надеюсь, что скоро будет исправление. - person Infinite Possibilities; 27.02.2012

Я попытался удалить сертификаты, как предлагали другие, и даже сбросил свою связку ключей. Однако это никак не повлияло, и открытие органайзера всегда вызывает сбой/зависание.

Мое исправление состояло в том, чтобы удалить некоторые файлы настроек Xcode. В частности, я удалил следующее:

~/Library/Developer/Xcode/UserData/IDEOrganizerWindowController.xcuserstate
~/Library/Developer/Xcode/UserData/IDEPreferencesController.xcuserstate
~/Library/Developer/Xcode/UserData/KeyBindings

Решение этой проблемы с Xcode, похоже, различается, но я не видел, чтобы кто-то еще публиковал это решение, поэтому я надеюсь, что оно поможет другим. Помните, что я прошел через сброс связки ключей, прежде чем добраться до этого, поэтому я не исключаю сброса связки ключей с помощью этого решения.

person mmopy    schedule 27.03.2012
comment
Пробовал это, все еще есть проблемы. - person theodorton; 23.05.2012
comment
Я считаю, что это правильное решение, когда органайзер вылетает при попытке отобразить вообще, независимо от того, какую вкладку вы пытаетесь открыть. Хотя вопрос касается вкладки «Устройства», если организатор достаточно часто дает сбой во время отображения органайзера, в конечном итоге он приведет к мусору в файле настроек окна, и в этом случае это решение. - person Danny Parker; 29.05.2012

Это не настоящее исправление, но если вы откроете Activity Monitor, отфильтруете bash и продолжите закрывать/принудительно закрывать этот процесс, xCode вернется в сознание.

person Scorpius    schedule 20.06.2012

Если приведенные выше решения не работают, попробуйте установить предыдущую версию вашего xcode с помощью машины времени. Действительно это сработало, обновления Apple создают проблему.

person Puneet Bharti    schedule 19.03.2013
comment
это должен быть комментарий к вышеуказанному решению - person Shreyos Adikari; 19.03.2013

Я удалил все старые сертификаты, которые не были доверчивыми. Даже после этого мой Xcode 4.5 разбился при открытии органайзера.

Жесткий сброс Xcode устранил мою проблему.

  1. Запустите свой терминал.

  2. Введите значения по умолчанию, удалите com.apple.Xcode и нажмите Enter. Это удаляет установленные пользовательские настройки.

    Иногда, если у вас установлено более одной версии Xcode, идентификатор пакета по умолчанию может отличаться. Вы можете проверить списки идентификаторов пакетов, разрешив терминалу показывать возможности, нажав кнопку Tab.

  3. Введите rm -rf ~/Library/Application\ Support/Xcode и нажмите Enter. Это также удаляет папки конфигурации.

Теперь откройте Xcode, и он покажет вам страницу соглашения. Таким образом, мой Xcode работал, как и ожидалось.

Я надеюсь, что это может помочь кому-то.

person Rajan Maharjan    schedule 28.01.2013

Я пробовал все вышеперечисленное и не смог, решение, которое я нашел, было очень простым:

Перейдите в ~/Library/Developer/ , внутри этой папки есть папка Xcode, все что я сделал, это переименовал существующую и снова открыл Xcode, затем Xcode создал новую папку с именем Xcode и все снова заработало.

Надеюсь, это поможет.

person user8497627    schedule 22.09.2013

У меня была такая же ошибка в Xcode 5.0 всякий раз, когда я переходил на вкладку «Устройства». Решение было найдено, просмотрев Applications->Utilities->Console. Он пытался записать в доступную только для чтения базу данных журналов устройств, что означало, что он не мог создать объектную модель (ORM) и контекст для этой базы данных. Описание сбоя было «Невозможно выполнить операцию без контекста управляемого объекта».

Удаление ~/Library/Developer/Xcode/iOS Device Logs/* и ~/Library/Developer/Xcode/iOS Device Logs*.db означало, что он воссоздал (теперь пустой) файл .db при запуске с правильными разрешениями, и теперь все работает нормально.

person Community    schedule 21.03.2014