2010-02-16 28 views
14

Tôi đang cố gắng tìm ra cách để dễ dàng chuyển đổi các dịch vụ dữ liệu "giả" và các dịch vụ trực tiếp của chúng tôi. Về cơ bản, chúng tôi sẽ có các máy chủ trực tiếp với các dịch vụ web thực, nhưng vì lý do gì đó, một nhà phát triển có thể muốn tải dữ liệu từ các tệp tĩnh (các tệp url).Xcode - loại trừ các tệp trong cấu hình tùy chỉnh - cách tốt hơn?

Tôi thấy mình sẽ giải quyết vấn đề này bằng cách tạo các danh mục ghi đè các phương thức lấy dữ liệu, do đó để nguyên mã không bị ảnh hưởng (nó không có khái niệm về dữ liệu "giả"). Tôi không muốn xả mã của mình bằng #ifdef.

Tôi có thể đặt #ifdef ở đầu mỗi tệp có danh mục trong đó và tôi có thể đặt cờ tùy chỉnh trong cài đặt cấu hình nhưng tôi chỉ muốn có cách bao gồm hoặc loại trừ tệp tùy thuộc vào cấu hình. Điều đó có thể không? Làm thế nào để bạn giải quyết vấn đề này?

Trả lời

31

Xem http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html

Bí quyết là để xác định EXCLUDED_SOURCE_FILE_NAMES trong cấu hình bạn muốn loại trừ các tập tin từ đâu, và thiết lập giá trị của điều đó tùy chỉnh thiết lập một danh sách các tên tập tin xây dựng (hoặc một mô hình phù hơp với các và chỉ những tên tệp).

+7

Bingo. Đảm bảo ghi lại tài liệu này một cách cẩn thận vì đó là điều không rõ ràng đối với một người không quen thuộc với XCode ở cấp độ chi tiết đó. Và lưu ý rằng INCLUDED_SOURCE_FILE_NAMES ghi đè EXCLUDED_SOURCE_FILE_NAMES. –

+0

Cảm ơn! Điều đó rất hữu ích! – RPM

+0

Chỉ cần một mẹo: Có thể sử dụng thẻ hoang dã cho tên tệp. – Awsed

1

Tôi khuyên bạn nên tạo hai mục tiêu một trong số đó có danh mục mô hình được bao gồm và một danh mục khác không có.

Khi bạn muốn kiểm tra, chỉ cần tạo mục tiêu chứa danh mục giả. Mọi thứ khác có thể vẫn giống nhau.

+0

Bạn có thể căn cứ vào mục tiêu khác không? Tôi lo lắng rằng mọi người sẽ quên thêm các tệp mới vào cả hai (hoặc nhiều) mục tiêu. Ngoài ra, chúng tôi đã sử dụng các mục tiêu cho cái gì khác (iPad vs iPhone) - ý tưởng? –

+0

Tôi nghĩ rằng đề xuất của cdespinosa để tùy chỉnh các kịch bản xây dựng là cách duy nhất để làm cho nó 'tự động' theo một nghĩa nào đó. Nếu bạn sử dụng quy ước đặt tên cho tệp thì tập lệnh sẽ có thể bao gồm hoặc loại trừ chúng. Tuy nhiên, bạn sẽ có lúc nào đó trong quá trình của bạn luôn phải có bước thủ công để chỉ ra cho Xcode những tệp nào đi vào mục tiêu nào. Người liên kết không thể đọc được suy nghĩ của bạn. ;-) – TechZen

1

Nếu bạn muốn thêm tệp nhưng không muốn biên dịch tệp. Tới (cho tất cả các mục tiêu của bạn) dự án> xây dựng giai đoạn> biên dịch nguồn và đưa ra các tập tin mà bạn không muốn biên dịch.

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