Saya menggunakan CocoaPods dengan proyek Xcode 4 saya dan saya memiliki tiga target untuk proyek saya (default, satu untuk membangun versi lite dan satu untuk membangun versi demo). Semua target menggunakan pustaka yang sama, tetapi CocoaPods hanya menambahkan pustaka statis dan jalur pencarian ke target utama. Podfile saya terlihat seperti ini:
platform :ios, '5.0'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
Satu-satunya cara saya membuat ini berfungsi adalah menentukan setiap target secara individual dengan semua pod terdaftar lagi.
platform :ios, '5.0'
target :default do
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :lite do
link_with 'app-lite'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :demo do
link_with 'app-demo'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
Apakah ada cara yang lebih baik untuk melakukan ini?
Jawaban:
CocoaPods 1.0 telah mengubah sintaks untuk ini. Sekarang terlihat seperti ini:
Usang Pre CocoaPods 1,0 jawabannya:
Ya ada cara yang lebih baik! Lihat di
link_with
mana Anda dapat melakukanlink_with 'MyApp', 'MyOtherApp'
untuk menentukan beberapa target.Saya menggunakan ini dengan tes unit seperti
link_with 'App', 'App-Tests'
(waspadalah terhadap ruang dalam nama target).Contoh:
Pembaruan 2017
Anda dapat menggunakan abstract_target
sumber
Saya pikir solusi yang lebih baik adalah
Referensi dari: http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
sumber
link_with
Jika Anda ingin beberapa target berbagi pod yang sama, gunakan abstract_target.
atau hanya
sumber: https://guides.cocoapods.org/using/the-podfile.html
sumber
Cara termudah adalah dengan menggunakan target abstrak, di mana setiap pod yang ditentukan akan dihubungkan dengan semua target.
sumber
realTarget
masuk ke dalamsomeNameForAbstractTarget
daripada di luarnya?