วิธีดูพา ธ ของไฟล์ใน XCode


1

ฉันพยายามดีบักโครงการ iPhone ของนักพัฒนาคนอื่น ฉันใช้ XCode 4.2 บน Mac OS X Lion

ตอนนี้เมื่อฉันพยายามรวบรวมโครงการฉันได้รับข้อผิดพลาดว่าไฟล์บางไฟล์หายไป ไฟล์เหล่านี้จะแสดงเป็นสีแดงใน Project Navigator อย่างไรก็ตามฉันไม่สามารถหาเส้นทางเดิมที่ไฟล์เหล่านี้ควรจะเป็น

ตัวอย่างเช่นสมมติว่าชื่อโครงการคือ Project1 ผู้พัฒนามีโฟลเดอร์ที่มีไลบรารี่ที่แชร์นอกโฟลเดอร์ของโปรเจ็กต์และเขาใช้มันในโครงการ เมื่อฉันโหลดโครงการใน XCode ฉันจะเห็นว่ามีอีกโฟลเดอร์หนึ่งชื่อ SharedLibs แต่ไฟล์ทั้งหมดในนั้นเป็นสีแดง (เนื่องจากโฟลเดอร์นั้นหายไปจากฮาร์ดไดรฟ์ของฉัน)

มีวิธีในการคลิกที่ไฟล์สีแดงหรือบางสิ่งบางอย่างเพื่อหาเส้นทางเดิมของพวกเขา? เนื่องจากไฟล์ที่ขาดหายไปนั้นเป็นไลบรารีของบุคคลที่สามทั่วไปฉันต้องการสร้างโฟลเดอร์ในเส้นทางที่ถูกต้องและเติมด้วยไลบรารีที่ขาดหายไป

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือใด ๆ


1
ถ้าเพียง แต่ไฟล์หายไปคุณสามารถคลิกขวาและเลือกแสดงในตัวค้นหา มันจะเปิดโฟลเดอร์ที่ไฟล์ควรอยู่
Daniel Beck

ฉันคิดว่านี่อาจเป็นได้ ฉันไม่รู้ว่าฉันมองข้ามตัวเลือกนี้อย่างไร
JoeM

คำตอบ:


2

คุณสามารถคลิกขวาที่องค์ประกอบใด ๆ และเลือกแสดงในตัวค้นหา มันจะแสดงการจับคู่ที่ดีที่สุดที่เป็นไปได้ที่มีอยู่เช่นโฟลเดอร์หลักทันทีหากไฟล์หายไปเท่านั้นโฟลเดอร์หลักถ้าโฟลเดอร์หลักทันทีหายไป ฯลฯ


หรือคุณสามารถใช้ความสามารถของ AppleScripting ของ Xcode เพื่อกำหนดเส้นทางของรายการในโครงการของคุณ

เปิด AppleScript Editor และวางต่อไปนี้:

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 Application ที่สร้างขึ้นใหม่ที่ชื่อ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
ใช่ฉันรู้ว่านี่เป็นแบบเรียกซ้ำได้อย่างชัดเจน ฉันไม่สามารถโน้มน้าวให้ AppleScript รู้จักประเภท Xcode ที่ส่งผ่านเป็นพารามิเตอร์ในฟังก์ชันที่ฉันเขียนไว้เพื่อทำเช่นนั้น ทำงานกับมัน
Daniel Beck

2

ไฮไลต์ไฟล์สีแดงใน Project Navigator ที่ด้านอื่นของหน้าต่างในแผงเครื่องมือให้เลือกตัวตรวจสอบไฟล์ ที่ด้านบนคุณมีข้อมูลประจำตัวและประเภท ส่วนย่อยที่สองเกี่ยวข้องกับเส้นทางของไฟล์ ป๊อปอัปจะให้วิธีการต่างๆในการดูเส้นทาง (ตัวเลือก "สัมพันธ์กับ" และตัวเลือกเส้นทางแบบสัมบูรณ์) ทางด้านขวาคุณมีไอคอน "หน้าต่าง" ขนาดเล็กซึ่งคุณสามารถคลิกเพื่อเลือกไฟล์ (เมื่อคุณทราบตำแหน่งที่ถูกต้องแล้ว) ไอคอนลูกศรขวาจะนำคุณไปยังไฟล์หากมี (เหมือนกับที่แสดงใน Finder)

คุณอาจได้รับเบาะแสว่าที่นั่นพยายามค้นหาพวกเขาหรือคิดว่าพวกเขาอยู่ที่ไหน

คุณอาจต้องการตรวจสอบสิ่งที่พาเนลนี้พูดถึงเกี่ยวกับกลุ่มที่มีไฟล์สีแดงอยู่คุณสามารถตั้งค่าตำแหน่งเริ่มต้นสำหรับไฟล์ใหม่ที่เพิ่มในกลุ่มที่กำหนดได้ที่นี่ หมายเหตุ: เมื่อเส้นทางถูกตั้งค่าสำหรับกลุ่มและคุณมีไฟล์อยู่ในนั้นคุณควรปล่อยให้การตั้งค่าเส้นทางนั้นอยู่คนเดียว หากทุกอย่างในกลุ่มเป็นสีแดงการตั้งค่าเส้นทางที่เหมาะสมในโฟลเดอร์ของกลุ่มสามารถแก้ไขไฟล์สีแดงทั้งหมดในนัดเดียว

และฉันก็ไม่สามารถบอกได้อย่างแน่นอน แต่ดูเหมือนว่าจะจำไว้ว่าการทำเช่นนี้จะรักษาความผูกพันที่คุณตั้งไว้ก่อนที่ไฟล์จะหายไป สมมติว่าพวกเขาตรงกับสิ่งที่โครงการคิดว่าควรจะมี


0

อืมมม อย่างไรก็ตามคุณสามารถรับไฟล์จากบุคคลและเพิ่มลงในโครงการของคุณโดยคลิกขวาที่โฟลเดอร์ "SharedLibs" และเลือก "เพิ่มไฟล์ลงใน Project1" นั่นจะได้ผล


มีวิธีทราบว่าโฟลเดอร์ SharedLibs อยู่หรือไม่ มีหลายโฟลเดอร์ที่มีชื่อเดียวกันกับโฟลเดอร์หลัก ปัญหาหลักคือโฟลเดอร์จำนวนมากที่อยู่นอก PRoject1 dir ได้ถูกรวมเข้าไปในโครงการและบางส่วนมีชื่อเหมือนกัน
JoeM

ไม่ต้องพูดถึงว่าไฟล์เหล่านี้อยู่บนเซิร์ฟเวอร์ระยะไกลและฉันลังเลที่จะเพิ่มไฟล์ใหม่ กระนั้นโครงการก็ค่อนข้างใหญ่ (สองสามกิ๊ก) และฉันไม่อยากดาวน์โหลดถ้าไม่ต้องทำ
JoeM

1
คุณสามารถใช้แสดงใน Finder (Xcode 4) หรือเปิดเผยใน Finder (Xcode 3.x) หวังว่าจะช่วย
thandasoru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.