2011-07-20 32 views
6

Tôi đang thêm tài nguyên (rất nhiều .pngs và khác) vào dự án iPhone của tôi, kéo thư mục vào đó và chọn "Tạo thư mục tham chiếu cho bất kỳ Thư mục nào được thêm" để giữ cấu trúc thư mục. Chúng được thêm chính xác vào giai đoạn xây dựng Tài nguyên bản sao.Làm cách nào để buộc XCode 4 luôn cập nhật tài nguyên?

Vấn đề là, tôi đang lãng phí Rất nhiều thời gian bởi vì khi tôi tạo/xóa/cập nhật tài nguyên mới, nó thường sẽ bỏ qua các tệp đã thay đổi và gắn với phiên bản cũ hơn.

Có vẻ như nó chỉ cố gắng cập nhật tài nguyên khi chúng được thay đổi, nhưng không thể thấy các thay đổi. Trong trình giả lập có thể cập nhật thủ công các tệp trong ứng dụng .app, nhưng khi làm việc trên thiết bị, nó sẽ khiếu nại rằng dấu hiệu mã của một số tài nguyên đã thay đổi!

Cách đáng tin cậy duy nhất tôi đã tìm cách ép buộc cập nhật mọi thứ là xóa sản phẩm xây dựng, ứng dụng và ứng dụng thiết bị một số lần. mỗi thay đổi tài nguyên là lãng phí tôi một lượng thời gian điên rồ (nội dung trò chơi thay đổi thường xuyên hơn).

Vì vậy, trong ngắn hạn: làm cách nào để buộc XCode vô hiệu hoá "phiên bản" và chỉ cần xóa tất cả tài nguyên và sao chép tất cả chúng mỗi lần?

Cảm ơn!

EDIT: Tôi đã tìm thấy rằng việc xóa thư mục .app xây dựng trong "xây dựng" thư mục luôn buộc XCode để thêm tập tin mới ...

tôi vẫn không có đầu mối về nơi nó giữ các tập tin cũ khi tôi xóa thư mục đó, nhưng điều này là tốt hơn vì nó chỉ sao chép các tài nguyên mới như dự định. Vì vậy, một kịch bản đơn giản như

rm -rf "$CODESIGNING_FOLDER_PATH" 

Liệu các mẹo xóa thư mục tại từng xây dựng ...

Thật không may, XCode dường như chạy codesigning TRƯỚC bất cứ điều gì trong tab giai đoạn xây dựng được thực hiện, vì vậy nó cập nhật mục tiêu cũ, kịch bản xóa mục tiêu cũ, và sau đó nó bị treo phàn nàn rằng không tìm thấy Tài nguyên ký mã nào.

Vì vậy, ... Tôi phải gắn bó với việc xóa tệp theo cách thủ công hoặc có cách nào để chạy tập lệnh trước khi ký mã không?

Trả lời

0

Bạn có thể muốn sử dụng tùy chọn Làm sạch trong menu Sản phẩm (hoặc giữ phím shift và lệnh và nhấn K) sau khi cập nhật tài nguyên và trước khi bạn tạo ứng dụng đã cập nhật. Tôi đã nhận thấy rằng điều này đã giúp tôi vào những lúc tôi cập nhật tài nguyên hoặc cài đặt xây dựng do người dùng xác định.

+4

Thật không may đây chính xác là những gì tôi đang cố gắng tránh - làm điều này cũng xóa tất cả mã đã biên dịch, và buộc hoàn thành xây dựng lại ... Và bây giờ tôi đang sử dụng Bullet, việc xây dựng lại đòi hỏi rất nhiều thời gian. Điều tôi muốn chỉ là làm sạch tài nguyên, có thể tự động! – Tom89

1

Ok, cuối cùng tôi đã tìm thấy cách giải quyết (hơi xấu xí) chống lại điều này.

Trong dự án của bạn, tạo hai mục tiêu tổng hợp, hãy nói Xây dựng và làm sạch.

  • Trong trình dọn dẹp, thêm giai đoạn "Chạy tập lệnh" với rm -rf "$CODESIGNING_FOLDER_PATH" sẽ xóa ứng dụng tạm thời khỏi thư mục xây dựng.

  • Trong Clean Build, thêm Cleaner đầu tiên và sau đó là mục tiêu ứng dụng thông thường của bạn vào Target Dependencies.

  • Chọn Xây dựng sạch từ danh sách chạy, sau đó Chỉnh sửa sơ đồ và đặt mục tiêu ứng dụng của bạn làm tệp thực thi.Nhấn chạy và nó sẽ hoạt động :)
5

Tôi cũng gặp vấn đề này, về các tệp không được cập nhật khi tôi xây dựng dự án của mình (Dự án PhoneGap, nhưng điều đó không quan trọng).

Những gì tôi đã làm, đã thêm video này vào giai đoạn xây dựng của dự án của tôi:

find "${PROJECT_DIR}/www/." -exec touch -cm {} \; 

Điều đó sẽ đảm bảo các tập tin đang được nhặt được cập nhật khi XCode xây dựng dự án. Tất nhiên, bạn nên sửa đổi lệnh theo nhu cầu của bạn - nhu cầu của tôi là cập nhật thư mục www trên bản dựng, khi tôi đang chỉnh sửa tệp của mình bằng Visual Studio, đang chạy trong máy ảo.

+0

Tôi đang chỉnh sửa bóng đổ trong thư mục được liên kết và giải pháp này không hoạt động đối với tôi. – Justin

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