2009-09-17 38 views
10

Tôi có một số tài nguyên trong ứng dụng iPhone và khi chúng được biên dịch, tất cả chúng đều được thêm vào thư mục gốc của tài nguyên trong ứng dụng bất kể cấu trúc nhóm Xcode. Điều này là tốt cho hầu hết mọi thứ, tuy nhiên có một tập hợp các tập tin mà tôi cần phải có cấu trúc trong thư mục trong thư mục tài nguyên của ứng dụng.Thư mục xây dựng và tài nguyên Xcode

Hiện tại, tôi đã thêm thư mục của mình vào Xcode bằng cách sử dụng "Thêm tệp hiện có ... -> Tạo tham chiếu thư mục cho thư mục đã thêm". Điều này là tốt và các biểu tượng thư mục trong Xcode là màu xanh thay vì màu vàng. Vấn đề của tôi là Xcode không nhận thấy và các tập tin mới hoặc thay đổi trong các thư mục đó và do đó khi tôi xây dựng dự án của tôi, không có hình ảnh mới hoặc thay đổi nào nằm trong tài nguyên của ứng dụng đích. Cách duy nhất tôi có thể làm cho nó hoạt động là làm sạch, và sau đó xây dựng, điều này khá khó chịu khi tôi thực hiện các thay đổi và biên dịch lại đôi khi một vài lần!

Cấu trúc thư mục của tôi trong tài nguyên mà tôi muốn giữ trong ứng dụng bao gồm nhiều tệp và thư mục lồng nhau.

Có cách nào để Xcode nhận ra tất cả các tệp và thư mục đã thay đổi hoặc mới không?

Cảm ơn,

Mike

Trả lời

10

Vấn đề của tôi là Xcode không nhận thấy và mới hoặc thay đổi các tệp trong các thư mục đó và do đó khi tôi tạo dự án của mình, không có hình ảnh mới hoặc thay đổi nào nằm trong tài nguyên của ứng dụng đích.

Đây là lỗi lâu đời; nó cắn tôi nhiều lần trong khi làm việc trên Adium. Vui lòng gửi nó trong RadarWeb. Và nhờ lời nhắc nhở; Tôi đã gửi báo cáo lỗi của riêng mình dưới dạng x-radar: // problem/7232149 (visible to the public in OpenRadar). Bạn nên đề cập đến số lỗi này trong báo cáo lỗi của riêng bạn.

Để giải quyết sự cố, bạn có thể nhấp chuột phải vào tham chiếu thư mục và chọn "Chạm" để thông báo cho Xcode biết thư mục đã thay đổi.

+0

Cảm ơn thông tin đó. Tôi không thể tin rằng họ đã không giải quyết nó! Tôi thậm chí thấy rằng việc chạm vào các thư mục dường như không hoạt động, có lẽ vì có một số liên quan đến làm tổ. –

+1

Michael Waterfall: Có; bạn cần chạm vào thư mục cụ thể mà bạn đã thêm vào dự án của mình. Chạm vào bất kỳ thứ gì trong đó, bao gồm bất kỳ thư mục con nào, sẽ không hoạt động (hoặc ít nhất nó không phải là lần cuối cùng tôi thử nó, một số thời gian trước đây). –

+0

Tôi muốn thêm một cách giải quyết khác. Tôi cố gắng chọn cảm ứng như Peter Hosey nói, nhưng không giúp được gì. Những gì tôi đã làm là để sao chép các thư mục ra khỏi thư mục dự án, xóa và di chuyển vào thùng rác thư mục cũ, khởi động lại xcode và thêm thư mục sao chép các tập tin với các tùy chọn thư mục như bình thường. – Pacu

-1

nếu bạn muốn duy trì một cấu trúc thư mục, nó là tốt nhất để làm điều đó trong thư mục tài liệu. Khi khởi chạy ứng dụng ban đầu, hãy sao chép các tệp từ gói vào thư mục tài liệu trong hệ thống phân cấp bạn muốn.

EDIT: sau khi làm rõ, có vẻ như bạn có thể chỉ cần thêm một số đường dẫn tìm kiếm tiêu đề vào dự án của bạn. Mở ngăn thông tin đích, đi đến phần xây dựng và thêm thư mục gốc của cấu trúc của bạn vào danh sách đường dẫn tìm kiếm tiêu đề. Kiểm tra đệ quy và bạn nên tốt hơn

+0

Vấn đề là của thư mục không tồn tại trong gói mà không sử dụng tài liệu tham khảo thư mục và xây dựng dự án theo cách đó. Và đó là tòa nhà tôi đang gặp vấn đề. Xử lý các thư mục trong gói là tốt. Tôi chỉ cần Xcode để nhận ra bất kỳ tệp và thư mục mới nào trong các tệp của dự án của tôi trên mọi bản dựng để nó biên dịch chúng thành mục tiêu mà không phải làm sạch và xây dựng lại mọi lúc. –

+0

tôi nghĩ bạn nên chơi với đường dẫn tìm kiếm tiêu đề – coneybeare

+1

Đường dẫn tìm kiếm tiêu đề dành cho #include, không phải tài nguyên. –

4

tôi đã có vấn đề đầu tiên của bạn mình ngày hôm nay và tôi tìm thấy bài viết tuyệt vời này, mà nói về vấn đề thứ hai cũng: http://majicjungle.com/blog/?p=123

+0

Cảm ơn bạn đã liên kết tuyệt vời. Tôi đã thử sử dụng tập lệnh nhưng dường như không chạm vào bất kỳ tệp nào trong thư mục con. Bất kỳ ý tưởng làm thế nào để có được nó để liên lạc các tập tin đệ quy trong thư mục con? –

3

Tôi cũng bị lỗi này cắn. Câu trả lời đã được đưa ra ở đây là một trợ giúp tuyệt vời.

Tôi tìm thấy câu trả lời trong chủ đề này hữu ích khác nữa, nhưng tôi không chắc chắn nếu nó thực sự là một điều an toàn để làm (có vẻ như để tạo ra một AppID mới hoặc một cái gì đó):

iphone simulator resources not updating

Đây là những ghi chú cá nhân của tôi mà tôi đã thực hiện để giải quyết vấn đề này.

1) Open the project in Xcode 
2) Right-click the folder reference (BLUE folder) in the navigator 
    at its root and pick "Remove Reference" 
3) Close Xcode all the way 
4a) Warning, this step might cause other problems in your project. 
4b) Open the folder browser/Finder 
4c) Navigate to: /users/USERNAME/Library/Application Support/ 
      /iPhone Simulator/version/Applications/THISPROJFOLDER 
4d) Delete this whole THISPROJFOLDER. The name of the folder may be all 
    numbers, but this clears the Xcode "Cache" so it will rebuild things 
5) Find the actual folder where you store your pictures that were referenced, 
    and move the folder elsewhere and rename it. 
6) Now open Xcode 
7) In Xcode, select Product -> Clean. It should clean successfully. 
8) Now run the program through Xcode. It should run, but (hopefully) crash or 
    otherwise fail because it doesn't detect the resource files you removed. 
9) Now go standard Xcode usage and add the files back to the folder you want, 
    and add a reference to that folder in the Xcode navigator. Run the program 
    again, and it should detect the UPDATED PDFfiles/Imagefiles. 

EDIT: Được rồi, tôi đi theo "câu trả lời" hướng dẫn từ bài Peter Hosey của trên, và làm việc quá. Có lẽ tốt hơn so với giải pháp của tôi ở đây, bởi vì bước 4 của tôi (bắt buộc) dường như để lấy lại một khóa ứng dụng hoặc một cái gì đó.

Vì vậy, đây là cách tôi cố định nó trong Xcode 4.0 sau bài Phêrô:

1) Open your project in Xcode 
2) Select the main project root item in the Navigator 
3) Select "Build Phases" in the main pane 
4) Select "Add Build Phase" button -> "Add Run Script" 
5) Reposition he "Run Script" entry bar in the screen, 
    and move it to just-before the Copy Bundle Resources area 
6) Edit the run-script you just added in the main pane: 
    : Set Shell to: /bin/sh (its the default, or try /bin/tsch) 
    : Set the script line to: touch -cm ${SRCROOT}/MyDocs 
    (Set it to your folder root area, matching the Blue Folder 
    area in your Navigator) 
7) Save it all and select "Product -> Clean" to clean project 
+0

Bất cứ ai cũng có thể giúp đỡ khi sử dụng điều này tôi nhận được một lỗi nói ..../bin/sh /: thông dịch viên xấu: không phải là một thư mục – LmC

Các vấn đề liên quan