2013-07-28 14 views
6

Dış kütüphanelere birkaç bağımlılık ile yönetilen bir XCode çalışma alanına sahip olmak için Cocoapod. Bunlardan biri olan MTDates, NSDate ve NSDateComponents önek yöntemleri ile ya da belirli bir önişlemci makrosu tanımlanmışsa öntanımlı değildir (istediğim şey budur).Bir cocoapod bağımlılığı için önişlemci makrolarının belirtilmesi, onu engellemeden,

Derlenmiş kitaplığın önbelleğe alınmamış yöntemleri sağlamasını sağlamak için önişlemci makro tanımını koyabildiğim birkaç yer var, ancak projeyi güncellemek için Cocoapod sorusunu sorar bildirmez hepsi sıfırlanacak gibi görünüyor. Bu yapılandırmaların kapsül özellikleri tarafından çalıştırıldığını düşünmeme izin verin. Bunlar:

  • pod hedef inşa ayarları
  • Cocoapod en Hedefler pod özel .xcconfig dosya Dosyalar
kütüphanenin kendi versiyonunu yönetmek için gerektirecektir pod spec değiştirme

Destek, Yeni bir sürüm geldiğinde, cocoapods yeteneğini güncellemek için yeteneği kaybederek. Bu yüzden sorum şu: cocoapod bağımlılığı için bir önişlemci makrosu belirtmek için, kapsülü bozmadan ve kapsülün özelliklerini değiştirmeden bir yol var mı?

Düzenleme:

köşede görünmektedir bu konuda bir open issue vardır.

cevap

8

Bu özellik şimdi kullanılabilir. Belirli bir yapılandırmaya dayalı bir makro eklemek için, Pod Dosyası'nızın altına koyabileceğiniz şeylerin bir örneği.

post_install do |installer_representation| 
    installer_representation.project.targets.each do |target| 
    if target.name == "Pods-TweaksBuildConfigurationsDemo-Tweaks" 
     target.build_configurations.each do |config| 
     if config.name == 'QA' 
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'FB_TWEAK_ENABLED=1'] 
     end 
     end 
    end 
    end 
end 
+1

cocoapods sürümünü kullanma 1.0.0.beta.3 installer_representation.project –

+7

yerine installer_representation.pods_project kullanmalıyım Bir makro tanımlamak için 10 satır kod eklemeniz gerekiyor? Bu korkunç. – iosdude

1

Cocoapods belgelerine baktığımda bunun henüz mümkün olduğunu sanmıyorum, bence yapabileceğiniz şey kapsül türlerini kopyalamaktır - istediğiniz değişiklikleri yapın (örn. s.prefix_header_contents = #define symbolToDefine) ve ardından yerel özelliklere ekleyin. farklı bir adla ve pod dosyanızda bunu kullanın. Maalesef yeni bir sürüm çıktığında, içeri girip etiket numarasını (ve değişikliklere bağlı olarak başka şeyler) değiştirmeniz gerekir.

+0

Çok teşekkürler, bu sorumu yanıtlıyor. Devam edip, bu işlevselliklerin ustalaşmasına yol açıp açmayacağını görmek için bir konu açacağım. – matehat