Tôi đang sử dụng CocoaPods trên một ứng dụng nơi không gian làm việc, bao gồm một dự án ứng dụng chính và một số thư viện tĩnh như các dự án phụ. Các thư viện tĩnh được liên kết vào dự án chính tại thời gian biên dịch và tồn tại chủ yếu như một phương tiện để đóng gói và sắp xếp mã.Quản lý các phụ thuộc trong các thư viện tĩnh với cocoapods
Một vấn đề nảy sinh khi CocoaPods liên kết các phụ thuộc vào các thư viện tĩnh của các tiểu dự án. Nếu hai hoặc nhiều thư viện tĩnh có cùng phụ thuộc, chúng không thể được liên kết với nhau trong dự án chính, vì làm như vậy sẽ dẫn đến các biểu tượng trùng lặp.
Cách giải quyết hiện tại của tôi là tạo mục tiêu "giả" trong mỗi tiểu dự án và đặt mục tiêu đó làm mục tiêu liên kết trong tệp pod. Mục tiêu thực sự sử dụng tệp xcconfig được tạo bởi CocoaPods, không có bất kỳ phụ thuộc nào được liên kết.
Trong khi điều này thực sự hiệu quả và id là giải pháp đơn giản nhất tôi có thể tìm thấy, nó vẫn mang gánh nặng không cần thiết mục tiêu trong mỗi dự án, ví dụ:
xcodeproj 'MyApp/MyApp.xcodeproj'
target :'MyApp' do
xcodeproj 'MyApp/MyApp.xcodeproj'
pod 'MBProgressHUD', '0.9'
link_with 'PodDummy'
end
Một bất lợi nữa là tất cả các phụ thuộc vẫn cần được chỉ định trong dự án chính để chúng được liên kết với tệp thực thi cuối cùng.
Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể sử dụng CocoaPod trong dự án thư viện tĩnh mà không liên kết phụ thuộc vào nhị phân? Hoặc là tốt hơn: Tôi có thể chỉ định phụ thuộc chỉ trong các tiểu dự án thư viện tĩnh, và có CocoaPods tìm ra những gì cần phải được liên kết trong dự án chính, giải quyết các bản sao trong quá trình này không? Không.
Tôi đang nghĩ đến việc chỉ bao gồm dự án chính trong tệp pod và việc các dự án con theo cách thủ công tham chiếu đến thư mục "Pods" cho tiêu đề.
Dường như đã có một số cuộc thảo luận về vấn đề này trong quá khứ, nhưng tôi không thể thấy điều gì, nếu có, đến từ nó. các cuộc thảo luận liên quan là:
- https://github.com/CocoaPods/CocoaPods/issues/1335
- https://github.com/CocoaPods/CocoaPods/issues/840
- iOS Static Library + CocoaPods and the duplicate symbols error
- Kiwi and CocoaPods with a static shared library
Cảm ơn hoặc câu trả lời. Tôi không phát triển các nhóm, chỉ đơn thuần cố gắng sử dụng các nhóm với một dự án sử dụng nhiều tiểu dự án liên kết thành một tệp thực thi duy nhất. Các tiểu dự án có các phụ thuộc riêng của họ - một số là duy nhất cho mỗi dự án và một số dự án khác được sử dụng trong nhiều dự án phụ. Vấn đề là sử dụng cocoapods để quản lý các phụ thuộc này, đồng thời tránh các ký tự trùng lặp phát sinh khi các phụ thuộc được liên kết vào tệp thực thi. –