Como posso informar ao Spotlight para indexar meus bundles .dSYM?
Hoje foi a primeira vez que tentei - e falhei - para simbolizar um log de travamento em um MacBook recém-comprado (vamos chamar essa máquina de MB1). O MB1 veio com o Mac OS X 10.9 pré-instalado. Eu acompanhei o problema da falta de simbolização até o Spotlight não indexando nenhum dos meus.dSYM
pacotes (sem o índice Spotlight, o da Applesymbolicatecrash
script não consegue localizar o.dSYM
pacote que corresponde ao log de falha). Eu cheguei a minha conclusão porque
mdfind "com_apple_xcode_dsym_uuids == *"
não imprime nada, embora eu tenha vários.xcarchive
pacotes no meu~/Library/Developer/Xcode/Archives
pasta, e eles definitivamente contêm.dSYM
sub-pacotes cujo UUID eu posso imprimir comdwarfdump --uuid
. Eu também tenho um par de.dSYM
pacotes dentro da pasta de compilação do meu projeto (DerivedData
), mas nenhum deles é indexado.
A pergunta curta e fácil, portanto, é: Como posso dizer ao Spotlight para indexar meus pacotes .dSYM?
Caso não haja uma resposta fácil para essa pergunta fácil, aqui está o que eu já experimentei no MB1:
Verifique as permissões de arquivos e pastas em~/Library/Developer/Xcode/Archives
(todos estão OK, 755 para pastas, 644 para arquivos)Corremdimport ~/Library/Developer/Xcode/Archives
(não tem efeito)Em "Preferências do Sistema> Spotlight> Privacidade", primeiro adicione e remova~/Library/Developer/Xcode/Archives
pasta (também não tem efeito)Verificar commdutil -s /
essa indexação está ativada para o volume (é)Apagar e reconstruir o índice inteiromdutil -E /
(leva talvez 10-15 minutos, mas ainda não tem efeito)Para entrar em mais detalhes: Eu tenho um MacBook antigo (vamos chamar essa máquina MB2) que era minha máquina dev antes de eu mudar para o MB1. No MB2 nunca tive problemas em simbolizar. O MB2 tinha o Mac OS X 10.8 instalado enquanto eu ainda estava ativamente desenvolvendo nele, mas recentemente atualizei o MB2 para o Mac OS X 10.9.
Hoje, correndomdfind
no MB2 ainda me dá um monte de.dSYM
feixes, ambos doArchives
pasta e do projetoDerivedData
criar pasta. Estes são todos arquivos antigos do Mac OS X 10.8 dias, mas aparentemente o Spotlight mantém seu índice através de upgrades de sistema operacional. Eu pensei que seria interessante ver como o Spotlight se comporta quando novos arquivos são criados, então eu fiz o seguinte:
mdfind
. Isso encontra o intermediário.dSYM
pacote dentro doDerivedData
criar pasta.Excluir o intermediário.dSYM
empacotar e executarmdfind
novamente. Não há resultados desta vez, ou seja, o.dSYM
pacote dentro doArchives
pasta NÃO é encontrada!Faça uma cópia do.xcarchive
pacote criado na etapa 1 e coloque a cópia na raiz do diretório inicial do usuário. Corremdfind
. Isso encontra o.dSYM
sub-pacote dentro do copiado.xcarchive
agrupar!Neste ponto, eu pulei para a conclusão de que, porque~/Library
é uma pasta oculta, isto é o que impede que o Spotlight indexe coisas dentro dele. Isso pode ser facilmente confirmado, criando um arquivo regular dentro~/Library
e procurando por ele (sem ocorrências), em seguida, movendo o arquivo para fora de~/Library
e pesquisando novamente (1 hit). Infelizmente, esta teoria cai de cara por causa de dois motivos:
~/Library
já estava oculto nas versões do Mac OS X anteriores a 10.9, mas isso nunca impediu a indexação do Spotlight.dSYM
arquivosO sinalizador "oculto" não é tudo o que impede o Spotlight de indexar~/Library
: Se eu mostrar a pasta comchflags nohidden ~/Library
, isso não torna o arquivo regular visível para o Spotlight.De volta ao MB1: tentei repetir o passo 3 acima, ou seja, fazer uma cópia do.xcarchive
pacote na raiz do diretório inicial do usuário, em seguida, executemdfind
. Surpreendentemente, no MB1, o resultado é diferente do MB2:mdfind
ainda não encontra.dSYM
pacotes, seja qual for!
Neste momento, desisto e espero sua ajuda. Minha conclusão é que o Mac OS X 10.9 é de alguma forma responsável por meus problemas, mas pela minha vida não consigo entender por que isso acontece. Caso isso ajude, aqui estão alguns detalhes adicionais de configuração:
MB1: Xcode 5.0.2 e Xcode 4.6 estão instalados, 5.0.2 é o padrão (configurado comxcode-select
). Também instalado é o Homebrew. O sistema é uma instalação limpa do Mac OS X 10.9.MB2: Xcode 4.5, 4.6 e 5.0 são instalados, 4.6 é o padrão. Também está instalado o MacPorts. O sistema é uma instalação de atualização do Mac OS X 10.9 (instalada anteriormente.