Сбой органайзера XCode 4.3 - PullRequest
13 голосов
/ 17 февраля 2012

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

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


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


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

Ответы [ 13 ]

16 голосов
/ 12 марта 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 снова все стало замечательно.

11 голосов
/ 18 февраля 2012

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

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

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

2 голосов
/ 16 марта 2012

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

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

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

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

Это восстановит все ваши больничные профили, но также создаст по крайней мере один здоровый профиль.

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

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

2 голосов
/ 18 февраля 2012

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

1 голос
/ 21 марта 2012

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

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

3/22/12 ОБНОВЛЕНИЕ: Apple выпустила новую версию XCode сегодня. Из заметок о выпуске:

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

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

4/11/12 ОБНОВЛЕНИЕ

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

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

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

rm -r *

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

0 голосов
/ 21 марта 2014

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

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

0 голосов
/ 22 сентября 2013

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

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

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

0 голосов
/ 19 марта 2013

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

0 голосов
/ 28 января 2013

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

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

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

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

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

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

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

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

0 голосов
/ 20 июня 2012

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

...