2013-09-30 18 views
5

Tôi có một dự án Xcode về cơ bản là một ứng dụng duy nhất được tích hợp vào một số mục tiêu gần như giống hệt nhau. Tôi đã di chuyển gần như tất cả các thiết lập cấu hình xây dựng ở những nơi trung tâm, nhưng tôi không thể tìm ra cách di chuyển liên kết với một thư viện tĩnh (libMantle.a) đến xcconfig. Tôi đã thử các cờ -framework-l, như tôi đang sử dụng cho nhiều thư viện khác, nhưng chúng không hoạt động. Có cách nào để có được một file .a ra khỏi cửa sổ Link Binary with Libraries, vì vậy tôi không cần phải giữ tất cả các mục tiêu đồng bộ một cách thủ công?Liên kết nhị phân với thư viện tĩnh trong xcconfig

Trả lời

2

Đã tìm ra ...

Giả sử bạn muốn liên kết với tệp libGoogleAnalyticsServices.a. Về cơ bản có ba thứ bạn nên có trong tệp .xcconfig để làm việc đó.

Trước tiên, bạn muốn đảm bảo rằng bạn có đường dẫn đến thư viện trong đường dẫn tìm kiếm của mình. Sau đó, bạn cần phải vượt qua hai cờ để làm cho trình liên kết hài lòng -L với đường dẫn đến thư mục và -l với thư viện.

Đưa nó tất cả cùng nhau sẽ giúp bạn có một cái gì đó như:

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics" 
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices 

(Bạn sẽ cần phải điều chỉnh cho đường dẫn tương đối của bạn)

Điều hữu ích nhất trong việc này được sắp xếp ra là Log Navigator (lệnh + 8 trong Xcode). Bằng cách đặt thư viện tĩnh trong bảng Xây dựng giai đoạn Link Binary With Libraries và thực hiện xây dựng thành công, bạn có thể xem chi tiết về bước trình liên kết trong nhật ký và xem cách nó chuyển thư viện Analytics đến trình biên dịch. Từ đó nó chỉ sao chép những lá cờ trong xcconfig.

+0

Tôi có thể hỏi cách bạn xử lý các tệp nguồn cho các mục tiêu khác nhau không? Bạn có thêm chúng vào tập tin xcconfig không? Điều đó thậm chí có thể? – vinzenzweber

+0

Các tệp xcconfig mục tiêu cụ thể trở nên khá lộn xộn, vì không có cách nào thực sự tốt để thực hiện nó. Tôi hiếm khi có các dự án có mục tiêu có sự phụ thuộc thư viện khác nhau đáng kể. Cụ thể bạn đang cố gắng làm gì? – farski

+0

Tôi có một dự án với 9 mục tiêu. Tôi chỉ cần những mục tiêu đó để thiết lập một macro tiền xử lý ONE SINGLE cho mỗi mục tiêu. Chủ yếu là thay đổi URL API cơ sở cho các môi trường khác nhau (phát triển, dàn dựng, sản xuất). Vì vậy, tôi rất thích có một tệp chỉ định cấu hình cơ sở xây dựng bao gồm tất cả các tệp nguồn và tài nguyên để sao chép. – vinzenzweber

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