Estoy usando CocoaPods con mi proyecto Xcode 4 y tengo tres objetivos para mi proyecto (el predeterminado, uno para construir una versión lite y otro para construir una versión demo). Todos los objetivos usan las mismas bibliotecas, pero CocoaPods solo agrega la biblioteca estática y las rutas de búsqueda al objetivo principal. Mi podfile se ve así:
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'
La única forma en que conseguí que esto funcionara fue especificar cada objetivo individualmente con todos los pods enumerados nuevamente.
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
¿Hay una mejor manera de hacer esto?
Respuestas:
CocoaPods 1.0 ha cambiado la sintaxis para esto. Ahora se ve así:
ANTICUADO CocoaPods 1.0 ACTUALIZADA:
Sí, hay una mejor manera! Mira
link_with
dónde puedes hacerlink_with 'MyApp', 'MyOtherApp'
para especificar múltiples objetivos.Lo uso con pruebas unitarias como
link_with 'App', 'App-Tests'
(cuidado con los espacios en los nombres de los objetivos).Ejemplo:
Actualización 2017
Puedes usar abstract_target
fuente
Creo que la mejor solución es
Referencia de: http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
fuente
link_with
y upvote su respuesta :)Si desea que varios objetivos compartan los mismos pods, use un abstract_target.
o solo
fuente: https://guides.cocoapods.org/using/the-podfile.html
fuente
La forma más fácil es usar un objetivo abstracto, donde cada pod especificado se vinculará con todos los objetivos.
fuente
realTarget
entrar adentro ensomeNameForAbstractTarget
lugar de afuera?