Como visualizar o caminho do arquivo no XCode?

1

Estou tentando depurar o projeto do iPhone de outro desenvolvedor. Eu estou usando o XCode 4.2 no Mac OS X Lion.

Agora, quando tento compilar o projeto, recebo um erro dizendo que alguns arquivos estão faltando. Esses arquivos são exibidos em vermelho no Navegador do Projeto. No entanto, não consigo encontrar o caminho original onde esses arquivos devem estar.

Por exemplo, digamos que o nome do projeto seja Projeto1. Um desenvolvedor tinha uma pasta com bibliotecas compartilhadas fora da pasta deste projeto e ele as usou em seu projeto. Quando eu carrego o projeto no XCode, eu vejo que há outra pasta chamada SharedLibs, mas todos os arquivos dentro dele estão vermelhos (como essa pasta está faltando no meu disco rígido).

Existe uma maneira de clicar em arquivos vermelhos ou algo para descobrir seu caminho original? Como os arquivos ausentes são bibliotecas gerais de terceiros, eu quero criar a pasta no caminho correto e preenchê-la com as bibliotecas ausentes.

Agradecemos antecipadamente por qualquer ajuda.

    
por JoeM 12.01.2012 / 08:52

3 respostas

2

Você pode clicar com o botão direito em qualquer elemento e selecionar Mostrar no Finder . Ele exibirá a melhor correspondência possível que existe, por ex. a pasta pai imediata se apenas o arquivo estiver faltando, sua pasta pai se a pasta pai imediata estiver faltando, etc.

Como alternativa, você pode usar os recursos do AppleScripting do Xcode para determinar o caminho completo dos itens em seu projeto.

Abra o AppleScript Editor e cole o seguinte:

set out to ""
tell application "Xcode"
    tell project "Fooo"
        repeat with g1 in groups
            set c1 to name of g1
            repeat with g2 in groups of g1
                set c2 to c1 & " » " & name of g2
                repeat with g3 in groups of g2
                    set c3 to c2 & " » " & name of g3
                    repeat with g4 in groups of g3
                        set c4 to c3 & " » " & name of g4
                        repeat with r4 in file references of g4
                            set out to out & c4 & " » " & name of r4 & "  ——— " & full path of r4 & "
"
                        end repeat
                    end repeat
                    repeat with r3 in file references of g3
                        set out to out & c3 & " » " & name of r3 & "  ——— " & full path of r3 & "
"
                    end repeat
                end repeat
                repeat with r2 in file references of g2
                    set out to out & c2 & " » " & name of r2 & "  ——— " & full path of r2 & "
"
                end repeat
            end repeat
            repeat with r1 in file references of g1
                set out to out & c1 & " » " & name of r1 & "  ——— " & full path of r1 & "
"
            end repeat
        end repeat
        repeat with r0 in file references
            set out to out & " » " & name of r0 & "  ——— " & full path of r0 & "
"
        end repeat
    end tell
end tell
out

Altere o nome do projeto ( "Fooo" ), execute-o e verifique a saída. Ele conterá os caminhos completos para todos os itens percorridos. Depende da estrutura do seu projeto - ele só irá percorrer grupos (pastas) dos quatro principais níveis e suas referências de arquivos / pastas.

Esta é a saída para um projeto recém-criado Cocoa Application chamado Cocoa :

Cocoa » Document.xib » en  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/en.lproj/Document.xib
Cocoa » MainMenu.xib » en  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/en.lproj/MainMenu.xib
Cocoa » Supporting Files » InfoPlist.strings » en  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/en.lproj/InfoPlist.strings
Cocoa » Supporting Files » Credits.rtf » en  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/en.lproj/Credits.rtf
Cocoa » Supporting Files » Cocoa-Info.plist  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/Cocoa-Info.plist
Cocoa » Supporting Files » main.m  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/main.m
Cocoa » Supporting Files » Cocoa-Prefix.pch  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/Cocoa-Prefix.pch
Cocoa » Document.h  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/Document.h
Cocoa » Document.m  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/Cocoa/Document.m
CocoaTests » Supporting Files » InfoPlist.strings » en  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/CocoaTests/en.lproj/InfoPlist.strings
CocoaTests » Supporting Files » CocoaTests-Info.plist  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/CocoaTests/CocoaTests-Info.plist
CocoaTests » CocoaTests.h  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/CocoaTests/CocoaTests.h
CocoaTests » CocoaTests.m  ——— /Users/danielbeck/Library/Autosave Information/Cocoa/CocoaTests/CocoaTests.m
Frameworks » Other Frameworks » AppKit.framework  ——— /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/AppKit.framework
Frameworks » Other Frameworks » CoreData.framework  ——— /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreData.framework
Frameworks » Other Frameworks » Foundation.framework  ——— /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Foundation.framework
Frameworks » Cocoa.framework  ——— /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Cocoa.framework
Frameworks » SenTestingKit.framework  ——— /Developer/Library/Frameworks/SenTestingKit.framework
Products » Cocoa.app  ——— /Users/danielbeck/Library/Developer/Xcode/DerivedData/Cocoa-crnllmegeptunwfweqdljydsrsnq/Build/Products/Debug/Cocoa.app
Products » CocoaTests.octest  ——— /Users/danielbeck/Library/Developer/Xcode/DerivedData/Cocoa-crnllmegeptunwfweqdljydsrsnq/Build/Products/Debug/CocoaTests.octest

É claro que você pode ajustar o script à estrutura do seu projeto e percorrer a hierarquia do item até os itens que faltam. Nesse caso, o caminho completo do arquivo é exibido como saída no AppleScript.

tell application "Xcode"
    tell project "Fooo"
        tell group "Frameworks"
            tell group "Other Frameworks"
                full path of file reference "aaa"
            end tell
        end tell
    end tell
end tell
    
por 12.01.2012 / 11:10
1

Realce um arquivo vermelho no Navegador do Projeto. Do outro lado da janela, no Painel de Utilitários, selecione Inspetor de Arquivos. No topo você tem identidade e tipo. A segunda subseção lida com o caminho do arquivo. O pop-up fornecerá várias maneiras de visualizar o caminho (várias opções "Relativo a" e uma opção Caminho absoluto). À direita, você tem um pequeno ícone de "janela", no qual você pode clicar para escolher o arquivo (uma vez que você descobriu onde estão os corretos). O ícone de seta para a direita levará você ao arquivo se estiver lá (praticamente a mesma coisa que Show in Finder).

Você pode ter algumas pistas de onde está tentando procurá-las ou por último que elas foram localizadas.

Você pode primeiro querer verificar o que este painel diz sobre o grupo em que os arquivos vermelhos estão. Você pode definir o local padrão para novos arquivos adicionados a um determinado grupo aqui. Nota: Quando o caminho estiver definido para um grupo e você tiver alguns arquivos, é melhor deixar essa configuração de caminho sozinha. Se tudo no grupo estiver vermelho, a configuração do caminho correto na pasta do grupo pode corrigir todos os arquivos vermelhos de uma só vez.

E eu não posso dizer com certeza, mas parece que me lembro de que fazer isso dessa maneira preservará todas as ligações que você configurou antes dos arquivos desaparecerem. Supondo que eles correspondam ao que o projeto acha que deveria estar lá.

    
por 27.06.2012 / 09:28
0

Umm, não. No entanto, você pode obter os arquivos da pessoa e adicioná-lo ao seu projeto clicando com o botão direito do mouse na pasta "SharedLibs" e selecionando "Add files to Project1". Isso vai funcionar.

    
por 12.01.2012 / 09:35