2012-12-31 26 views
19

CocoaPods câu hỏi:CocoaPods/Podspec và * .framework

Tôi đã tạo ra một khuôn khổ đi kèm với một thư viện tĩnh bên trong, tùy thuộc vào AFNetworking và một bó tài nguyên (dựa trên hai hướng dẫn để tạo FWKs http://www.blackjaguarstudios.com/blog/programming/2012/11/22/xcode-45-creating-ios-framework-and-hold-my-hand-im-3-years-oldhttps://github.com/bclubb/iOS-Framework)

Tôi muốn tạo podspec để mọi người chỉ thêm một dòng trong Podfile của họ, trong đó, trên cài đặt nhóm, hãy thêm khung của tôi và AFNetworking, nếu cần.

Điều này có khả thi không?

+0

Mọi thứ đều có thể. ;) –

Trả lời

24

Tôi thực sự đã thực hiện điều này rất nhiều tại văn phòng của mình. Chúng tôi có rất nhiều mã nguồn riêng được sử dụng lại khá nhiều. CocoaPods đã giúp các dự án mới bắt đầu nhanh hơn và làm cho chúng dễ dàng hơn nhiều để cập nhật.

Mặc dù có thể thêm khung công tác của bạn vào podspec, tôi đã thấy dễ dàng hơn khi chỉ chuyển thư viện tĩnh và tiêu đề qua CocoaPod thay vì lo lắng về khung công tác.

Bạn sẽ phải cập nhật podspec của bạn dựa trên dự án của bạn, nhưng đây là những phần quan trọng:

s.source_files = 'StaticLib/Headers/*.h' 
s.preserve_paths = 'StaticLib/libYourLibrary.a' 
s.library = 'YourLibrary' 
s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/ProjectFolder/LibraryFolder' }  

s.dependency = 'AFNetworking' 

này sẽ sao chép thư viện tĩnh của bạn trên cũng như mang trên AFNetworking với pod của bạn quá. Điều này sẽ làm cho lib tĩnh của bạn nhỏ hơn nhiều (không phải xây dựng nó trong) và tăng tốc độ người dùng có thể nhập pod của bạn nhanh như thế nào.

Nếu bạn phải sử dụng khung công tác, các nội dung tương tự từ trên vẫn được áp dụng, nhưng bạn có thể có một số chỉnh sửa nhỏ để thực hiện. Tất cả một khung công tác là một cấu trúc thư mục khá đẹp cho một thư mục tĩnh và các tiêu đề tĩnh, vậy tại sao lại bận tâm với các công cụ bổ sung. Nguồn là tất cả vẫn được xây dựng vào lib lib lPods.a anyway. Hy vọng điều này sẽ giúp bạn ra ngoài.

+0

Cảm ơn, chỉ biết rằng nó sẽ đẩy tôi điều tra thêm =) – Pasta

+0

Tôi đã thử với repo này: https://github.com/BugsterIO/BugsterIO-iOS và dòng sau trong podfile: pod 'BugsterIO' ,: podspec => "https://raw.github.com/BugsterIO/BugsterIO-iOS/0.8/BugsterIO.podspec" . Nhưng nó không hoạt động. Bất kỳ ý tưởng? – Pasta

+0

Lỗi là: Biểu tượng không xác định cho kiến ​​trúc i386: "_OBJC_CLASS _ $ _ Bugster", được tham chiếu từ: – Pasta

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