1

Я пытаюсь отладить проект iPhone другого разработчика. Я использую XCode 4.2 на Mac OS X Lion.

Теперь, когда я пытаюсь скомпилировать проект, я получаю сообщение об ошибке, в котором говорится, что некоторые файлы отсутствуют. Эти файлы отображаются красным в Project Navigator. Однако я не могу найти исходный путь, где эти файлы должны быть.

Например, допустим, имя проекта - Project1. Разработчик имел папку с общими библиотеками вне папки этого проекта, и он использовал их в своем проекте. Когда я загружаю проект в XCode, я вижу, что там есть еще одна папка с именем SharedLibs, но все файлы внутри нее красные (поскольку эта папка отсутствует на моем жестком диске).

Есть ли способ нажать на красные файлы или что-то, чтобы узнать их первоначальный путь? Поскольку отсутствующие файлы являются общими сторонними библиотеками, я хочу создать папку по правильному пути и заполнить ее недостающими библиотеками.

Заранее благодарю за любую помощь.

3 ответа3

2

Вы можете щелкнуть правой кнопкой мыши по любому элементу и выбрать Показать в Finder. Он будет отображать наилучшее из возможных совпадений, например, ближайшую родительскую папку, если отсутствует только файл, его родительскую папку, если отсутствует непосредственная родительская папка, и т.д.


Кроме того, вы можете использовать возможности AppleScripting XCode для определения полного пути элементов в вашем проекте.

Откройте редактор AppleScript и вставьте следующее:

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

Измените имя проекта ("Fooo") и запустите его, и проверьте вывод. Он будет содержать полные пути ко всем пройденным элементам. Однако это зависит от структуры вашего проекта - он будет проходить только группы (папки) четырех верхних уровней и их ссылки на файлы / папки.

Это выходные данные для недавно созданного проекта приложения какао с именем 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

Конечно, вы можете настроить скрипт в соответствии со структурой вашего проекта и перейти к иерархии элементов к отсутствующим элементам. В этом случае полный путь к файлу отображается как вывод в 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
1

Выделите красный файл в Project Navigator. На другой стороне окна на панели "Утилиты" выберите "Инспектор файлов". В верхней части у вас есть личность и тип. Второй подраздел посвящен пути к файлу. Всплывающее окно предоставит вам различные способы просмотра пути (различные параметры "Относительно" и параметр "Абсолютный путь"). Справа у вас есть маленький значок "окна", по которому вы можете щелкнуть, чтобы выбрать файл (как только вы выяснили, где находятся нужные). Значок со стрелкой вправо приведет вас к файлу, если он там есть (почти то же самое, что Показать в Finder).

Вы можете получить некоторые подсказки о том, где он пытается их искать, или в последний раз думали, что они были найдены.

Сначала вы можете проверить, что эта панель говорит о группе, в которой находятся красные файлы. Здесь вы можете установить местоположение по умолчанию для новых файлов, добавляемых в данную группу. Примечание. После того, как путь задан для группы, и у вас есть несколько файлов, лучше оставить этот путь в покое. Если все в группе красного цвета, то установка правильного пути к папке группы может исправить все красные файлы за один снимок.

И я не могу сказать наверняка, но мне кажется, что я помню, что при таком способе сохранятся все привязки, которые вы установили до исчезновения файлов. Предполагая, что они соответствуют тому, что проект думает, должно быть там.

0

Ммм нет Однако вы можете получить файлы у этого человека и добавить его в свой проект, щелкнув правой кнопкой мыши папку "SharedLibs" и выбрав "Добавить файлы в Project1". Это сработает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .