her*_*ube 11 macos xcode spotlight symbolicate
今天是我第一次尝试 - 并且失败 - 象征着新买的MacBook上的崩溃日志(我们称这台机器为MB1).MB1预装了Mac OS X 10.9.我将跟踪失败符号的问题跟踪到Spotlight没有索引我的任何.dSYM
捆绑包(没有Spotlight索引,Apple的symbolicatecrash
脚本无法找到.dSYM
与崩溃日志匹配的捆绑包).我得出了我的结论,因为
mdfind "com_apple_xcode_dsym_uuids == *"
Run Code Online (Sandbox Code Playgroud)
不打印任何东西,虽然.xcarchive
我的~/Library/Developer/Xcode/Archives
文件夹中有几个包,但它们肯定包含.dSYM
我可以打印的UUID的子包dwarfdump --uuid
.我的.dSYM
项目的构建文件夹(DerivedData
)中也有几个包,但它们都没有被编入索引.
因此,简单易行的问题是:如何告诉Spotlight索引我的.dSYM包?
如果这个简单的问题没有简单的答案,这就是我在MB1上已经尝试过的:
~/Library/Developer/Xcode/Archives
(它们都没问题,文件夹为755,文件为644)mdimport ~/Library/Developer/Xcode/Archives
(没有效果)~/Library/Developer/Xcode/Archives
文件夹(也没有效果)mdutil -s /
是否为卷启用了索引(它是)mdutil -E /
(大概需要10-15分钟,但仍然没有效果)详细说明:在切换到MB1之前,我有一台较旧的MacBook(让我们称之为机器MB2),这是我的开发机器.在MB2上,我从未遇到任何象征性问题.MB2安装了Mac OS X 10.8,而我还在积极开发它,但我最近将MB2升级到Mac OS X 10.9.
今天,mdfind
在MB2上运行仍然给了我很多.dSYM
捆绑包,包括Archives
文件夹和项目的DerivedData
构建文件夹.这些都是来自Mac OS X 10.8天的旧文件,但显然Spotlight在操作系统升级中保留其索引.我认为在创建新文件时看看Spotlight的行为会很有趣,所以我做了以下事情:
mdfind
.这会.dSYM
在DerivedData
构建文件夹中找到中间包..dSYM
包并mdfind
再次运行.这次没有结果,即找不到文件夹中的.dSYM
包Archives
!.xcarchive
在步骤1中创建的捆绑包的副本,并将副本放在用户主目录的根目录中.跑mdfind
.这会.dSYM
在复制的.xcarchive
包中找到子包!在这一点上,我得出结论,因为这~/Library
是一个隐藏的文件夹,这是阻止Spotlight索引其中的东西的原因.这可以通过在内部创建常规文件~/Library
并搜索它(无命中),然后将文件移到外面~/Library
并再次搜索(1 次点击)来轻松确认.不幸的是,由于两个原因,这个理论在它的鼻子上落空了:
~/Library
已经隐藏在10.9之前的Mac OS X版本中,但这从未阻止Spotlight索引.dSYM
文件~/Library
:如果我取消隐藏文件夹chflags nohidden ~/Library
,则不会使常规文件对Spotlight可见.回到MB1:我尝试从上面重复步骤3,即.xcarchive
在用户主目录的根目录下复制捆绑包,然后运行mdfind
.令人惊讶的是,在MB1上,结果与MB2不同:mdfind
仍然没有发现任何.dSYM
捆绑!
在这一点上,我放弃并希望得到你的帮助.我的结论是,Mac OS X 10.9对我的问题负有某种责任,但对于我的生活,我无法弄清楚为什么会这样.如果它有帮助,这里有一些额外的配置细节:
xcode-select
).Homebrew也安装了.该系统是Mac OS X 10.9的全新安装.her*_*ube 13
窥视Xcode应用程序包会显示以下Spotlight导入程序:
caradhras:~ --> find /Applications/Xcode-5.0.2.app -name \*.mdimporter
/Applications/Xcode-5.0.2.app/Contents/Applications/Application Loader.app/Contents/Library/Spotlight/MZSpotlight.mdimporter
/Applications/Xcode-5.0.2.app/Contents/Library/Spotlight/uuid.mdimporter
Run Code Online (Sandbox Code Playgroud)
运行此命令
mdimport -g /Applications/Xcode-5.0.2.app/Contents/Library/Spotlight/uuid.mdimporter ~
Run Code Online (Sandbox Code Playgroud)
最后索引.xcarchive
用户主目录根目录中的bundle.它确实不是指数束中~/Library/Developer/Xcode/Archives
,不过,即使我明确地指向mdimport
此文件夹.
问题仍然存在:为什么uuid.mdimporter
不自动运行?
编辑
解决方案是重启机器(注销/登录可能已经足够),外部的存档包~/Library
现在已正确编入索引.我需要重启的原因可能是:
无论如何,在故障排除期间,我发现您可以通过运行来检查活动Spotlight导入程序列表mdimport -L
(请注意,不同的用户可以同时激活不同的Spotlight导入程序).不出所料,uuid.mdimporter
现在列出了重启后,重启之前没有.
这是我在谷歌搜索后发现的一个有用的Apple文档:Spotlight Importers故障排除.
最终解决方案
配置Xcode,以便存档文件夹位于~/Library
.在Xcode 6中,您可以在"位置"选项卡下的"首选项"对话框中执行此操作.
归档时间: |
|
查看次数: |
4348 次 |
最近记录: |