我已经安装了 XCode 4.3。我已经看到在首选项常规选项卡中,有“iOS 设备发现”选项卡。也许它以前也在那里,但我现在才注意到。所以我检查了它,在此之后我可以做任何事情,但是当我尝试访问组织者的设备选项卡时,XCode 不断崩溃。
任何解决方法的线索?
更新:我已经删除它并从 Mac App Store 重新安装它,但它没有帮助
更新:我已将错误提交给 Apple,他们将其标记为重复,之后他们将两者都关闭了。所以,我希望我们能从苹果那里得到解决方案。
我不能完全相信这一点。我在这里找到了它,并在我需要的最后添加了一点。
使用以下内容创建 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 中的一切又恢复了。
同样的问题。我刚刚在我的系统上创建了一个新用户。有了它,我在管理器窗口中打开设备没有问题......奇怪......
编辑:我删除了钥匙串中的一个证书,为我解决了这个问题。这是一个不可信的证书。也许这会对你有所帮助。
请注意,“有害”证书可能根本不是开发证书或与开发/供应相关。确保检查“证书”,而不仅仅是钥匙串中的“我的证书”。罪魁祸首可能是任何证书,例如公司签署的 SSL 证书等。
我解决了这个问题。我不知道它是否是最好的解决方案,但五天后我很高兴 Xcode 再次工作。
我通过做两件事解决了这个问题。在 Lion 下重置我的钥匙串并撤销我现有的配置文件。
因此,首先,在 Lion (http://support.apple.com/kb/TS1544) 下重置您的钥匙串。这将使 Organizer 启动而不会崩溃。
不幸的是,现在您无法部署您的软件,因为您杀死了钥匙串中的所有证书。因此,现在您需要撤销所有开发人员证书 (developer.apple.com/membercenter) 并从管理器中删除配置文件。然后告诉主办方刷新。
它将恢复您所有生病的档案,但也会创建至少一个健康的档案。
新版本的 Xcode 试图提供帮助,并希望为您处理所有证书需求。因此,启动一个 Xcode 项目,并将代码签名设置为新的配置文件。编译,一切都会重新开始。
正如我所说,可能不是最好的解决方案,但从钥匙串和额外的 prefs 文件中删除旧证书对我没有任何帮助。如果一切都失败了,试试这个食谱,它可能会有所帮助。
同样的问题。不开心。我很难相信苹果会在这样的状态下发布这个。XCode 今天在我身上崩溃了至少 25 倍。
终于想通了。我的问题在于我的开发设备而不是 XCode。我将设备恢复为出厂默认设置。现在插入设备时 XCode 不会崩溃。
在重置设备之前,我尝试删除设备上的所有证书。但是,XCode 仍然崩溃。这是我在重置设备之前在设备上采取的唯一其他步骤。
2012 年 3 月 22 日更新:Apple 今天发布了新版本的 XCode。从发行说明:
额外的错误修复和稳定性改进
希望这可以解决大多数人的问题。
2012 年 4 月 11 日更新
我开始再次遇到 XCode 问题。一位同事建议我为我的项目清除 XCode 缓存,该缓存位于此处:
~/Library/Developer/Xcode/DerivedData/your_app_name-abunchofletters
在该文件夹中运行:
rm -r *
插入我的开发设备时,XCode 不再崩溃。
这不是真正的修复,但如果您打开活动监视器,过滤 bash,并继续关闭/强制关闭该进程,xCode 将恢复意识。
我删除了所有不可信的旧证书。即使这样做了,我的 Xcode 4.5 在打开管理器时也崩溃了。
硬重置 Xcode 解决了我的问题。
启动你的终端。
键入“defaults delete com.apple.Xcode”,然后按“Enter”。这将删除设置的自定义设置。
有时,如果您安装了多个版本的 Xcode,默认捆绑包标识符可能会有所不同。您可以通过按 Tab 按钮允许终端显示可能性来检查捆绑标识符列表。
键入“rm -rf ~/Library/Application\ Support/Xcode”,然后按“Enter”。这也会删除配置文件夹。
现在打开一个 Xcode,它会显示你的协议页面。这样,我的 Xcode 就按预期工作了。
我希望它可能对某人有所帮助。
同样在这里。查看您的系统日志。对我来说,这似乎是一个虚假的 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 的错误:未分配指针被释放
有趣的是,紧随其后的是一个试图启动时间机器备份的备份进程。也许相关 - 我会密切关注它。
再次在这里.. 我注意到我的 iphone 在这些崩溃后会醒来 - 它通过 wifi 同步。
我以为它昨天解决了问题,直到我今天开始工作..我不能这样工作..我已经在寻找替代方案。
我今天可以强制它崩溃(对于与 Apple 不同的东西)文件 > 打开 > 并选择所有工作所在的编程文件夹..繁荣!每次..
底线:预计今天不会发布 Apple 应用程序......
每当我转到“设备”选项卡时,我在 Xcode 5.0 上都会遇到同样的错误。通过查看找到了解决方案Applications->Utilities->Console
。它试图写入只读设备日志数据库,这意味着它无法实例化该数据库的对象模型 (ORM) 和上下文。崩溃描述为“无法在没有托管对象上下文的情况下执行操作”。
删除~/Library/Developer/Xcode/iOS Device Logs/*
并~/Library/Developer/Xcode/iOS Device Logs*.db
意味着它在启动时使用正确的权限重新创建了(现在为空的).db 文件,现在一切正常。
如果上述解决方案不起作用,请尝试使用时间机器安装以前版本的 xcode。真的有用,苹果更新正在制造问题。
我尝试按照其他人的建议删除证书,甚至重置我的钥匙串。但是,这没有任何影响,并且打开管理器总是会导致崩溃/挂起。
我的解决方法是删除一些 Xcode 设置文件。具体来说,我删除了以下内容:
~/Library/Developer/Xcode/UserData/IDEOrganizerWindowController.xcuserstate
~/Library/Developer/Xcode/UserData/IDEPreferencesController.xcuserstate
~/Library/Developer/Xcode/UserData/KeyBindings
这个 Xcode 问题的解决方案似乎有所不同,但我没有看到其他人发布此解决方案,所以我希望它对其他人有所帮助。请记住,在进行此操作之前,我已经完成了钥匙串重置,因此我不排除使用此解决方案重置钥匙串。
我尝试了以上所有方法,但我发现的解决方案非常简单:
转到~/Library/Developer/
,在这个文件夹里面有一个文件夹Xcode
,我所做的就是重命名现有的文件夹并重新打开Xcode
,然后Xcode
创建一个新的文件夹名称Xcode
,一切又开始工作了。
希望有帮助。