plugin guide from cocoapod actualizar ios xcode dependencies cocoapods

ios - guide - podfile



Cómo usar CocoaPods con múltiples subproyectos de Framework (1)

Antes que nada, ¡he activado use_framework! en Podfile.

Suponga que el proyecto principal es MAIN_APP, y dos subproyectos son FRAMEWORK_A y FRAMEWORK_B.

MAIN_APP requiere FRAMEWORK_A y FRAMEWORK_B, y FRAMEWORK_B también requiere FRAMEWORK_A.

Todos los proyectos / objetivos están utilizando CocoaPods para administrar bibliotecas de terceros.

Por ahora, mi Podfile se ve así:

target :MAIN_APP do project ''MAIN_APP'' pod ''PodA'' end target :FRAMEWORK_A do project ''FRAMEWORK_A'' pod ''PodB'' end target :FRAMEWORK_B do project ''FRAMEWORK_B'' pod ''PodC'' end

Agregué manualmente FRAMEWORK_A para construir las configuraciones de FRAMEWORK_B, y ambos FRAMEWORK_A y FRAMEWORK_B para construir las configuraciones de MAIN_APP.

Todo el código se compila bien, pero cuando se ejecuta MAIN_APP se bloquea porque no puede cargar Framework of PodB.

Sé que también puedo agregar manualmente PodB a MAIN_APP y FRAMEWORK_B, pero ¿es posible definir este tipo de dependencia de destino en Podfile?

Por cierto, cuando la pod install , recibí la advertencia:

[!] El archivo Podfile contiene objetivos marco, para los cuales el archivo Podfile no contiene objetivos host (objetivos que incrustan el marco).

Si este proyecto es para hacer el desarrollo del marco, puede ignorar este mensaje. De lo contrario, agregue un objetivo al Podfile que incruste estos marcos para que este mensaje desaparezca (por ejemplo, un objetivo de prueba).

Como sé, puedo usar un objetivo anidado para objetivos de host como:

target :FRAMEWORK_A target :MAIN_APP end end

Así que CocoaPods configurará MAIN_APP para usar FRAMEWORK_A y heredará dependencias de pod de FRAMEWORK_A. Pero parece que no puedo hacerlo con múltiples dependencias como:

target :FRAMEWORK_A target :MAIN_APP end end target :FRAMEWORK_B target :MAIN_APP end end

Debido a que el objetivo: MAIN_APP no se puede declarar dos veces.

¿Hay alguna solución mejor en lugar de definir dependencias de pod como una función en Podfile e incluir en todos los objetivos?


Esta es una gran pregunta y he tenido problemas con una situación similar. Este es mi archivo PodFile:

platform :ios, ''8.0'' workspace ''mygreatapp.xcworkspace'' project ''app/MyGreatApp/MyGreatApp.xcodeproj'' project ''platform/MyGreatFramework/MyGreatFramework.xcodeproj'' abstract_target ''This can say whatever you want'' do target ''MyGreatApp'' do project ''app/MyGreatApp/MyGreatApp.xcodeproj'' pod ''AFNetworking'', ''~> 2.6.0'' pod ''PromiseKit'', ''~> 1.5'' pod ''PromiseKit/Join'' pod ''KVOController'', ''~> 1.0'' pod ''FLAnimatedImage'', ''~> 1.0'' pod ''Crashlytics'', ''~> 3.3'' pod ''SSZipArchive'' end target ''MyGreatAppTests'' do project ''app/MyGreatApp/MyGreatApp.xcodeproj'' pod ''OCMock'', ''~> 3.1'' end target ''MyGreatFramework'' do project ''platform/MyGreatFramework/MyGreatFramework.xcodeproj'' pod ''SSZipArchive'' end target ''MyGreatFrameworkTests'' do project ''platform/MyGreatFramework/MyGreatFramework.xcodeproj'' pod ''OCMock'', ''~> 3.1'' end post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings[''ENABLE_BITCODE''] = ''NO'' end end end end

Como puede ver, no estoy usando frameworks y utilizo un abstract_target para agruparlo todo. Desearía que este tipo de dependencias fuera más fácil de hacer en CocoaPods. Sé que esto realmente no responde a su pregunta, pero podría ser útil, no obstante.