【问题标题】:XCode 4.3 organizer crashXCode 4.3 组织者崩溃
【发布时间】:2012-03-08 17:00:08
【问题描述】:

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

有什么线索可以解决吗?


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


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

【问题讨论】:

    标签: xcode organizer xcode4.3


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了,谢谢。这对我有用,设备选项卡将再次加载。它发现了几个在 Keychain 应用程序中不可见的证书,我必须使用 security find-certificate -Z -a -c mycert.example.com 才能找到它们。 -a 标志打印所有匹配的证书。 -Z 标志打印证书的 SHA-1 哈希,如果在按名称删除时多个证书匹配,则可以在 security delete-certificate -Z &lt;hash&gt; 中使用。
    • 这不仅对我有用,而且在 XCode 4 中也有效。此外,还有完全相同的 linsys 问题。谢谢!
    • 显然仍然是一个错误,因为我发现自己回到了这里,按照自己的答案查找并消除了错误的证书。仍然有效!
    • 是的,这行得通。我在编译时遇到了一些麻烦,因为我没有安装 Xcode 命令行工具,所以请确保你已经安装了这些工具,可以在 Xcode>Preferences>Downloads 选项卡中完成(至少在 Xcode 4.4.1 中)跨度>
    • Organizer 在刷新时崩溃,我运行了 readcert 但它没有输出,并且 Organizer 仍然崩溃: UNCAUGHT EXCEPTION (NSInvalidArgumentException): *** setObjectForKey: object cannot be nil (key: teamId) 我所在的每个人工作已更新到最新的 xCode,因此没有人可以重新创建团队配置文件,因为每个人的 Organizer 在刷新时都会崩溃。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我已向 Apple 发送了一份关于此问题的错误报告。我将尝试有关证书的事情,如果它有效,我也会报告这个,我希望 Apple 会努力。
    • 证书为我解决了这个问题。我已经删除了一个证书并尝试过,然后再次删除,直到找到错误的证书。
    • 信不信由你,这也为我做了。我刚刚删除了所有无效(也不受信任)证书,最后在最后一个,它停止崩溃了!
    • 我也有这个问题。但是,我已经删除了所有不受信任的证书以及任何看起来可能不正确的东西,但是当我转到“设备”选项卡时 Xcode 仍然崩溃(也在尝试进行临时构建时)。还有什么我应该寻找的吗?
    • 更新:任何没有说“这个证书是有效的”的东西都应该被删除。我有一个我专门设置为受信任的证书,但也需要在 Xcode 停止崩溃之前将其删除。并确保您选择了每个证书,而不是所有证书都在有问题的证书旁边显示一个红十字。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

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

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

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

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

      【讨论】:

        【解决方案5】:

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

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

        3/22/12 更新:Apple 今天发布了新版本的 XCode。来自发行说明:

        其他错误修复和稳定性改进

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

        2012 年 4 月 11 日更新

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

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

        在该文件夹中运行:

        rm -r *
        

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

        【讨论】:

          【解决方案6】:

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

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

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

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

          【讨论】:

          • 如果您有任何崩溃日志,请将其发送给我,以便我将其添加到我的苹果提交的错误中。
          • 嘿@InfinitePossibilities 我遇到了同样的问题。这是我的崩溃日志:pastebin.com/wLhFEu4q
          【解决方案7】:

          这里也一样。查看您的系统日志。对我来说,这似乎是一个虚假的 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 错误:未分配指针被释放

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

          【讨论】:

          • 我向 Apple 提交的 bug 已获批准,所以我希望尽快修复。
          【解决方案8】:

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

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

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

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

          【讨论】:

          • 试过了,还是有问题。
          • 我相信这是正确的解决方案,当管理器在尝试显示时崩溃,无论您尝试访问哪个选项卡。虽然问题是关于设备选项卡,但如果管理器在显示时经常崩溃,它最终会导致窗口首选项文件的垃圾,这就是这种情况下的解决方案。
          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

            【讨论】:

            • 这应该是对上述解决方案的评论
            【解决方案11】:

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

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

            1. 启动你的终端。

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

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

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

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

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

            【讨论】:

              【解决方案12】:

              以上方法我都试过了,还是不行,我找到的解决方法很简单:

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

              希望对您有所帮助。

              【讨论】:

                【解决方案13】:

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-02-24
                  • 2013-08-10
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-08-07
                  相关资源
                  最近更新 更多