2011-12-01 42 views
8

Tôi bao gồm thư viện của bên thứ ba (nguồn) với thư viện tĩnh của mình. Nó chỉ dành cho thiết bị (vì nó bao gồm một số thường trình lắp ráp ARM) và tôi không muốn xây dựng nó cho trình mô phỏng (tôi chỉ muốn ứng dụng của mình biên dịch ở đó để tôi có thể kiểm tra GUI).Biên dịch các tệp khác nhau cho thiết bị/mô phỏng trong XCode

  • Tạo mục tiêu khác cho trình mô phỏng không phải là một tùy chọn vì dự án của tôi tham chiếu thư viện của tôi dưới dạng phụ thuộc và sẽ là một cơn ác mộng để duy trì.
  • Thêm #if (TARGET_OS_IPHONE) cho các tệp đó không phải là tùy chọn vì đây không phải là nguồn gốc của tôi và tôi muốn cập nhật chúng dễ dàng để cập nhật (có hơn 200 tệp ở đó và tôi không sửa đổi tất cả trong số họ)

Tôi đang tìm cách (tương tự #if (TARGET_OS_IPHONE) trong tệp nguồn) sẽ hoạt động từ bản thân IDE (để tôi có thể loại trừ tệp khỏi quá trình xây dựng thực tế dựa trên kiến trúc mục tiêu của tôi). Điều duy nhất tôi tìm thấy là một tùy chọn để loại trừ/bao gồm một tệp từ một mục tiêu - nhưng không phải cho một kiến ​​trúc cụ thể.

Có cách nào để đặt điều kiện kiến ​​trúc cho mỗi tệp cụ thể không?

+0

Ngôn ngữ nào có giao diện của thư viện, Obj-C, C++ hoặc đồng bằng C? Và có bao nhiêu phương thức chứa giao diện? – Kay

+0

Tôi thực sự có một số thư viện, hầu hết trong C++ và ít trong Obj-C. Tất cả đều không cần thiết cho trình mô phỏng (tất cả đều liên quan đến xử lý âm thanh/video), nhưng ít nhất tôi muốn dự án xây dựng đúng trên trình mô phỏng vì nó nhanh hơn để kiểm tra giao diện người dùng ở đó. –

+0

Có vẻ như không có giải pháp dễ dàng. Nếu có thể, hãy cố gắng tách tất cả các cuộc gọi đến thư viện ở một hoặc nhiều mặt tiền được tạo bởi các nhà máy trừu tượng tùy thuộc vào mục tiêu. Sau đó, sử dụng các đối tượng giả cho mã x86 – Kay

Trả lời

1

Đặt cược tốt nhất của bạn là tách thư viện của bên thứ ba thành mục tiêu mới xây dựng nó dưới dạng khung tĩnh. Đặt nó như là một phụ thuộc cho dự án của bạn, và sau đó thiết lập các khung tĩnh để được điều kiện liên kết như mô tả của Apple ở đây: http://developer.apple.com/library/ios/documentation/Xcode/Conceptual/ios_development_workflow/115-Configuring_Applications/configuring_applications.html#//apple_ref/doc/uid/TP40007959-CH19-SW7

Bạn có thể thêm một mục tiêu mới bằng cách chọn Dự án trong điều hướng dự án và sau đó nhấn Thêm mục tiêu ở cuối ngăn Trình chỉnh sửa. Bạn có thể thiết lập một thư viện liên lạc ca cao tĩnh và sau đó gán các tệp .m hoặc .c có liên quan chỉ thuộc về mục tiêu đó. Sau đó chọn mục tiêu của ứng dụng và thêm khung tĩnh trong phần "Phụ thuộc mục tiêu" của tab Xây dựng giai đoạn.

+0

Đây chính xác là những gì tôi đang tìm kiếm, cảm ơn! –

+0

Liên kết được cập nhật cho tài nguyên này là gì? – Tobias

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