2013-05-29 13 views
11

Benim iOS uygulaması Cocoapods ile ithal bir kütüphane yama nasılvb AFNetworking, SDWebImage olarak kütüphaneleri yönetmek için Cocoapods kullanır

bu kütüphanenin

Bir kanama kenar sürümünde düzeltildi oluyor bir hata var olur ama vardır Henüz cocoapods sürümüne yayılmamış. Bu kütüphane için bir yama yapmak ve ekibimle paylaşabilmek istiyorum. Bununla başa çıkmak için önerilen yol nedir?

Bir yan notta: Bir kütüphaneyi çatallamak isteyeceğim benzer bir durumun meydana gelebileceği bir zaman geleceğini düşünebilirim. Kitaplığım güncellendikçe değişikliklerimi yeni sürümlere dahil etmenin bir yolu olsaydı iyi olurdu. Benzer bir iş akışı bu durumda kullanılabilir mi?

cevap

10

Kitaplığı geçersiz kılmak, yama uygulamanız ve Podfile'daki çatala işaret etmek en iyi seçeneğiniz olacaktır.

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

Teşekkürler, bunu deneyeceğim! – Taum

+5

Ayrıca, kapsüller için yerel yolu da belirtebilirsiniz: 'pod' AFNetworking ',: path =>' ~/Documents/AFNetworking ', dokümanlardaki gibi (http://docs.cocoapods.org/podfile.html#) kapsül). –

+0

@RomanB. Teşekkürler! Bu ilginç, aynı zamanda bu ayarı okuyan herkes için bahsetmeliyiz: yol, doğrudan geliştirme için çok güzel olan sabit diskteki dosyaya bağlantılar. – Taum

9

kazandığım: kütüphane podspec içermiyorsa

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

, yerel bir yola podspec kopyalayıp ayarlamak gerekir: kütüphane podspec içeriyorsa

Bunun en iyi seçenek olduğunu iddia et ama bu bir seçenek. Düzeltme komutunu çalıştırmak için Podfile'daki yükleme sonrası kancasını kullanabilirsiniz. Bunu, Podfile'ımın altına yerleştirerek yaptım. Eğer yolunda herhangi bir boşluk varsa kabuk için yer kaçtığı ters eğik çizgi kaçış gerekeceğini

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 

Not. "\ " yerine "\ ". Yama oluşturmanın hızlı bir yolu için http://jungels.net/articles/diff-patch-ten-minutes.html'a bakın. 1 basit dosya ile çalıştığım için, yalnızca bir birleşik değil, basit bir fark yarattım.

İlgili konular