Tôi gặp sự cố khi tải không gian làm việc của mình để biên dịch chính xác với Cocoapods. Có 3 dự án trong vùng làm việc, đều có mục tiêu riêng của họ:Định cấu hình Cocoapods bằng thư viện tĩnh hiện có và ứng dụng iOS
- libPods - Cocoapods thư viện tĩnh với tất cả các phụ thuộc bên ngoài
- libCommon - thư viện tĩnh của tôi, nơi tôi giữ tất cả các mã chia sẻ của tôi (điều khiển cơ sở, mạng mã, giao diện người dùng thông thường, vv)
- MyApp - ứng dụng iOS My
Cả libCommon và MyApp đòi hỏi sự phụ thuộc bên ngoài từ libPods. Ban đầu tôi nghĩ rằng nó sẽ làm việc như thế này:
- libPods xây dựng
- liên kết libCommon chống libPods và xây dựng
- liên kết MyApp với libCommon và xây dựng
Trong kịch bản này libCommon "sở hữu" các cụm và sau đó myApp chỉ liên kết với libCommon như tôi đã luôn luôn làm trước Cocoapods ... nhưng dường như các thư viện tĩnh không thích được liên kết với các thư viện tĩnh (tôi nhận được một loạt các lỗi thư viện động). Tôi đọc trên một vấn đề github một nơi nào đó mà thay vào đó tôi nên xây dựng libPods và libCommon và sau đó myApp nên liên kết với cả hai thư viện. Ngay bây giờ podfile của tôi trông giống như sau:
workspace 'MyApp.xcworkspace'
platform :ios, '5.0'
link_with ['Common', 'MyApp']
target 'MyApp' do
xcodeproj 'MyApp.xcodeproj'
pod 'AFNetworking', '1.1.0'
pod 'TTTAttributedLabel', '1.6.0'
pod 'JSONKit', '1.5pre'
pod 'Reachability', '3.1.0'
end
Với thiết lập này, MyApp sở hữu tất cả các cụm, và sau đó trong libCommon xây dựng các thiết lập tôi chỉ định đường dẫn đến các tiêu đề pod. Điều này xây dựng OK cho đến khi tôi cố gắng sử dụng một trong các lớp trong libCommon. Một khi tôi làm điều đó, tôi nhận được một trong những lỗi _OBJC_CLASS_$_Blah
(mà nói với tôi rằng mặc dù các tiêu đề có sẵn, nó vẫn không được liên kết đúng cách). Khi tôi cố gắng để tự liên kết libCommon trong "Xây dựng giai đoạn", tôi nhận được một loạt các lỗi biểu tượng trùng lặp (mà lá tôi tin rằng nó đã được liên kết?). Cái quái gì thế?
Cách để thực hiện việc này đúng cách và podfile của tôi sẽ trông như thế nào?
Tôi không có ý tưởng làm thế nào bạn đang rất nhanh chóng để trả lời cocoapods, Fabio, nhưng chỉ là một lưu ý rằng nó được nhiều đánh giá cao! Tôi đã có một vấn đề tương tự trước đây, và tùy chọn 'độc quyền' giải quyết nó. – Stew
Tôi đã thiết lập như bạn đã đề xuất và mục tiêu MyApp biên dịch thành công cho đến khi tôi cố gắng sử dụng một lớp từ Common (ví dụ: thêm dòng này: MyObject * objectFromCommon = [[MyObject alloc] init]; kết quả trong _OBJC_CLASS_ $ Lỗi _MyObject). Tuy nhiên, việc đánh dấu cú pháp/cú pháp là tốt, điều này khiến tôi tin rằng các tiêu đề có sẵn nhưng lib vẫn không được liên kết. Suy nghĩ? – user2393462435
@ user2393462435, bạn cần liên kết mục tiêu 'Common' với mục tiêu' MyApp' trong giai đoạn xây dựng khung theo cách thủ công (CocoaPods không quản lý mục tiêu của bạn). – Fabio