14

我已经安装了 XCode 4.3。我已经看到在首选项常规选项卡中,有“iOS 设备发现”选项卡。也许它以前也在那里,但我现在才注意到。所以我检查了它,在此之后我可以做任何事情,但是当我尝试访问组织者的设备选项卡时,XCode 不断崩溃。

任何解决方法的线索?


更新:我已经删除它并从 Mac App Store 重新安装它,但它没有帮助


更新:我已将错误提交给 Apple,他们将其标记为重复,之后他们将两者都关闭了。所以,我希望我们能从苹果那里得到解决方案。

4

13 回答 13

16

我不能完全相信这一点。我在这里找到了它,并在我需要的最后添加了一点。

使用以下内容创建 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 中的一切又恢复了。

于 2012-03-12T01:24:01.017 回答
11

同样的问题。我刚刚在我的系统上创建了一个新用户。有了它,我在管理器窗口中打开设备没有问题......奇怪......

编辑:我删除了钥匙串中的一个证书,为我解决了这个问题。这是一个不可信的证书。也许这会对你有所帮助。

请注意,“有害”证书可能根本不是开发证书或与开发/供应相关。确保检查“证书”,而不仅仅是钥匙串中的“我的证书”。罪魁祸首可能是任何证书,例如公司签署的 SSL 证书等。

于 2012-02-17T23:27:29.807 回答
2

我解决了这个问题。我不知道它是否是最好的解决方案,但五天后我很高兴 Xcode 再次工作。

我通过做两件事解决了这个问题。在 Lion 下重置我的钥匙串并撤销我现有的配置文件。

因此,首先,在 Lion (http://support.apple.com/kb/TS1544) 下重置您的钥匙串。这将使 Organizer 启动而不会崩溃。

不幸的是,现在您无法部署您的软件,因为您杀死了钥匙串中的所有证书。因此,现在您需要撤销所有开发人员证书 (developer.apple.com/membercenter) 并从管理器中删除配置文件。然后告诉主办方刷新。

它将恢复您所有生病的档案,但也会创建至少一个健康的档案。

新版本的 Xcode 试图提供帮助,并希望为您处理所有证书需求。因此,启动一个 Xcode 项目,并将代码签名设置为新的配置文件。编译,一切都会重新开始。

正如我所说,可能不是最好的解决方案,但从钥匙串和额外的 prefs 文件中删除旧证书对我没有任何帮助。如果一切都失败了,试试这个食谱,它可能会有所帮助。

于 2012-03-15T23:20:54.477 回答
2

同样的问题。不开心。我很难相信苹果会在这样的状态下发布这个。XCode 今天在我身上崩溃了至少 25 倍。

于 2012-02-17T22:03:11.903 回答
1

终于想通了。我的问题在于我的开发设备而不是 XCode。我将设备恢复为出厂默认设置。现在插入设备时 XCode 不会崩溃。

在重置设备之前,我尝试删除设备上的所有证书。但是,XCode 仍然崩溃。这是我在重置设备之前在设备上采取的唯一其他步骤。

2012 年 3 月 22 日更新:Apple 今天发布了新版本的 XCode。从发行说明:

额外的错误修复和稳定性改进

希望这可以解决大多数人的问题。

2012 年 4 月 11 日更新

我开始再次遇到 XCode 问题。一位同事建议我为我的项目清除 XCode 缓存,该缓存位于此处:

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

在该文件夹中运行:

rm -r *

插入我的开发设备时,XCode 不再崩溃。

于 2012-03-21T15:40:29.760 回答
0

这不是真正的修复,但如果您打开活动监视器,过滤 bash,并继续关闭/强制关闭该进程,xCode 将恢复意识。

于 2012-06-20T18:27:52.593 回答
0

我删除了所有不可信的旧证书。即使这样做了,我的 Xcode 4.5 在打开管理器时也崩溃了。

硬重置 Xcode 解决了我的问题。

  1. 启动你的终端。

  2. 键入“defaults delete com.apple.Xcode”,然后按“Enter”。这将删除设置的自定义设置。

    有时,如果您安装了多个版本的 Xcode,默认捆绑包标识符可能会有所不同。您可以通过按 Tab 按钮允许终端显示可能性来检查捆绑标识符列表。

  3. 键入“rm -rf ~/Library/Application\ Support/Xcode”,然后按“Enter”。这也会删除配置文件夹。

现在打开一个 Xcode,它会显示你的协议页面。这样,我的 Xcode 就按预期工作了。

我希望它可能对某人有所帮助。

于 2013-01-28T07:05:28.327 回答
0

同样在这里。查看您的系统日志。对我来说,这似乎是一个虚假的 USB 连接。我在日志中看到类似的东西(控制台应用程序):

27.02.12 13:34:16,537 com.apple.usbmuxd:_SendAttachNotification(线程 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 的错误:未分配指针被释放

有趣的是,紧随其后的是一个试图启动时间机器备份的备份进程。也许相关 - 我会密切关注它。

于 2012-02-27T12:43:26.053 回答
0

再次在这里.. 我注意到我的 iphone 在这些崩溃后会醒来 - 它通过 wifi 同步。

我以为它昨天解决了问题,直到我今天开始工作..我不能这样工作..我已经在寻找替代方案。

我今天可以强制它崩溃(对于与 Apple 不同的东西)文件 > 打开 > 并选择所有工作所在的编程文件夹..繁荣!每次..

底线:预计今天不会发布 Apple 应用程序......

于 2012-02-22T23:34:24.173 回答
0

每当我转到“设备”选项卡时,我在 Xcode 5.0 上都会遇到同样的错误。通过查看找到了解决方案Applications->Utilities->Console。它试图写入只读设备日志数据库,这意味着它无法实例化该数据库的对象模型 (ORM) 和上下文。崩溃描述为“无法在没有托管对象上下文的情况下执行操作”。

删除~/Library/Developer/Xcode/iOS Device Logs/*~/Library/Developer/Xcode/iOS Device Logs*.db意味着它在启动时使用正确的权限重新创建了(现在为空的).db 文件,现在一切正常。

于 2014-03-21T00:31:39.717 回答
0

如果上述解决方案不起作用,请尝试使用时间机器安装以前版本的 xcode。真的有用,苹果更新正在制造问题。

于 2013-03-19T13:28:25.593 回答
0

我尝试按照其他人的建议删除证书,甚至重置我的钥匙串。但是,这没有任何影响,并且打开管理器总是会导致崩溃/挂起。

我的解决方法是删除一些 Xcode 设置文件。具体来说,我删除了以下内容:

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

这个 Xcode 问题的解决方案似乎有所不同,但我没有看到其他人发布此解决方案,所以我希望它对其他人有所帮助。请记住,在进行此操作之前,我已经完成了钥匙串重置,因此我不排除使用此解决方案重置钥匙串。

于 2012-03-27T11:22:10.843 回答
0

我尝试了以上所有方法,但我发现的解决方案非常简单:

转到~/Library/Developer/,在这个文件夹里面有一个文件夹Xcode,我所做的就是重命名现有的文件夹并重新打开Xcode,然后Xcode创建一个新的文件夹名称Xcode,一切又开始工作了。

希望有帮助。

于 2013-09-22T01:03:26.547 回答