2013-09-25 22 views
7

Tôi đã có một dự án với một vài mục tiêu. Có một tệp xcconfig được liên kết với dự án và một số tệp xcconfig được liên kết với các mục tiêu.PodPxcconfig của CocoaPods 'mâu thuẫn với những cái hiện có

Bây giờ tôi muốn kết hợp thư viện của bên thứ ba thông qua CocoaPods. Sau $ pod install CocoaPods đã làm hỏng dự án ban đầu vì nó liên kết tệp xcconfig riêng của mình Pds.xcconfig với mục tiêu của dự án ban đầu. Điều này hoàn toàn bỏ qua và ghi đè các thiết lập được xác định trong xcconfig gốc liên quan đến dự án, và chuyển đổi tệp xcconfig gốc liên quan đến (các) đích. Do đó, dự án đã kết thúc hơi say.

Ví dụ, Cocoapods định nghĩa sau đây trong Pods.xcconfig của nó được gắn liền với mỗi mục tiêu:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1

Tôi có configs khác nhau cho mỗi cấu hình, ví dụ cho gỡ lỗi tập tin cấu hình osx.debug.xcconfig định nghĩa

GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0

Cách tiếp cận hợp lý và khả thi để giải quyết xung đột như vậy là gì?

Chỉnh sửa:

Tôi đã tìm kiếm qua danh sách các vấn đề về CocoaPods trên GitHub. Dường như có một số lượng lớn các vấn đề liên quan đến tệp xcconfig, một số trong số chúng hơn 2 năm. Họ được thảo luận, và sau đó đóng cửa, nhưng - như nó xảy ra với tôi - vấn đề vẫn chưa được giải quyết.

IMHO, đây là vấn đề cơ bản và cơ bản: có dự án sử dụng tệp xcconfig. Sau đó, người ta muốn bao gồm một thư viện của bên thứ ba thông qua CocoaPods. Sau khi thực hiện pod install, dự án bị hỏng.

Vì vậy, có chuyện gì với điều này?

Trả lời

0

Bạn vẫn có thể ăn bánh và (một phần) ăn bánh. tập tin xcconfig mục tiêu của bạn có thể bao gồm các cocoapods một:

#include "../Pods/Pods.xcconfig" 
MY_SETTING = YES 
... 

Tuy nhiên, phần bạn vẫn không thể ăn là khi bạn muốn xác định những lá cờ đã được thiết lập trong Pods.xcconfig. Tôi không thể tìm thấy cách để thêm vào đường dẫn mà Cocoapod đã được đặt trong tệp được bao gồm, ví dụ: bạn muốn này:

HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes 

Tuy nhiên dòng này chỉ đơn giản là giảm con đường Cocoapods tìm kiếm tiêu đề, chỉ để lại MyOtherIncludes :-(

Một workaround cho điều này nên để di chuyển MyOtherIncludes đến file xcconfig của dự án, trong đó Thật không may, điều này không hiệu quả đối với tôi, YMMV

+0

Thật không may, các cài đặt xây dựng không thể mở rộng hoặc sửa đổi là điều thiết yếu: GCC_PREPROCESSOR_DEFINITIONS, HEADER_SEARCH_PATHS, OTHER_CFLAGS và OTHER_LDFLAGS. Thủ phạm cũng có thể là Xcode vì tệp xcconfig không thể xử lý các khai báo như vậy: 'HEADER_SEARCH_PATHS = $ (HEADER _SEARCH_PATHS) MyOtherIncludes'. Để làm cho công việc đó có thể sẽ phá vỡ hành vi hiện tại như thế nào Xcode của tập tin xcconfig cài đặt sửa đổi các cài đặt xây dựng cơ bản. – CouchDeveloper

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