2013-05-29 29 views
11
ứng dụng

My iOS sử dụng Cocoapods để quản lý thư viện như AFNetworking, SDWebImage, vvLàm thế nào để vá một thư viện nhập khẩu với Cocoapods

Một trong những thư viện này sẽ xảy ra để có một lỗi đó là được cố định trong phiên bản cạnh chảy máu nhưng nó có chưa được tuyên truyền cho phiên bản cocoapods. Tôi muốn tạo một bản vá cho thư viện này và có thể chia sẻ nó với nhóm của tôi. Cách được đề nghị để giải quyết vấn đề này là gì?

Một lưu ý phụ: Tôi hình dung rằng có thể đến lúc một tình huống tương tự có thể xảy ra khi tôi muốn chia sẻ thư viện. Nó sẽ là tốt đẹp nếu tôi sau đó đã có một cách để kết hợp các thay đổi của tôi vào các phiên bản mới như thư viện được cập nhật. Một luồng công việc tương tự có thể được sử dụng trong trường hợp đó không?

Trả lời

10

Đưa thư viện, áp dụng bản vá của bạn và trỏ đến ngã ba của bạn trong Podfile sẽ là lựa chọn tốt nhất của bạn.

Nếu thư viện chứa các podspec:

pod '<library', :git => 'https://github.com/yourname/<library>.git' 

Nếu thư viện không chứa podspec, bạn phải sao chép các podspec đến một con đường địa phương và điều chỉnh nó:

pod '<library>', :podspec => 'local/path/to/<library>.podspec' 
+0

Cảm ơn, tôi sẽ cố gắng! – Taum

+5

Bạn cũng có thể chỉ định đường dẫn cục bộ cho nhóm: 'pod 'AFNetworking',: path => '~/Documents/AFNetworking'', như đã thấy [trong tài liệu] (http://docs.cocoapods.org/podfile.html# pod). –

+0

@RomanB. Cảm ơn! điều này là thú vị, tôi cũng nên đề cập đến cho bất cứ ai đọc này thiết lập: đường dẫn trực tiếp liên kết đến các tập tin trên ổ cứng đó là rất tốt đẹp cho phát triển. – Taum

9

tôi thắng 't cho rằng đây là lựa chọn tốt nhất nhưng nó là một lựa chọn. Bạn có thể sử dụng hook cài đặt post trong Podfile để thực hiện lệnh patch. Tôi đã thực hiện nó bằng cách đặt những điều sau ở cuối Podfile của tôi.

post_install do |installer| 
    puts 'Patching SVGKit to compile with the ios 7 SDK' 
    %x(patch Pods/path/to/file.m < localpods/patches/fix.patch) 
end 

Lưu ý rằng nếu bạn có bất kỳ dấu cách nào trong đường, bạn sẽ cần thoát khỏi dấu gạch chéo đang thoát không gian cho vỏ. "\ " thay vì "\ ". Xem http://jungels.net/articles/diff-patch-ten-minutes.html để biết cách tạo bản vá nhanh chóng. Bởi vì tôi đã làm việc với 1 file đơn giản, tôi chỉ tạo ra một diff đơn giản thay vì một unified.

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