¿Cómo decir (en time de ejecución) si una biblioteca estaba vinculada utilizando cocoapods o no?

Sé que probablemente esto sea imposible, pero ¿hay alguna huella dejada por cocoapods que puede señalar (en time de ejecución) si se instaló una biblioteca usando cocoapods o no?

Actualmente puedo averiguar si CocoaPods se usó o no al get la list de nombres de classs y luego search una class con el prefijo PodsDummy_Pods_ . Pero no tengo forma de saber si una biblioteca determinada estaba vinculada o no con CocoaPods.

Editar

Como aclaración: tengo acceso al código fuente de la biblioteca, pero no tengo control sobre el proyecto final. La biblioteca se distribuye como un binary (biblioteca estática), y nos gustaría saber si los usuarios lo instalaron usando CocoaPods o no.

Creo que esto depende principalmente de si tienes el control de la biblioteca.

Si no lo haces, no, no. Esas classs de PodsDummy- existen a un nivel objective, por lo que solo indican que se ha utilizado CocoaPods. Sin embargo, no le dirá si una biblioteca específica usó CocoaPods.

Para las bibliotecas de código fuente, CocoaPods puede agregar banderas de compilation adicionales que pueden exponer API o cadenas adicionales que puede search de la misma manera. Ya hay una bandera de compilation "COCOAPODS" agregada, por lo que podría usar eso.

Para una biblioteca binaria, es posible pero un poco complicado. En teoría: podría agregar un símbolo al lib / framework que se puede descubrir en el time de ejecución, luego en el command prepare_command que podría eliminarse. No sé qué command haría eso, pero quizás ar , strip o lipo .

Una de las posibles soluciones es colocar todas las bibliotecas de Pods en un package por separado. Tu proyecto puede tener varios packages. Como resultado puede preguntar en el package de time de ejecución (para: type (of: self)) en Swift o [NSBundle bundleForClass: [self class]] en ObjC

Parece imposible detectar esto automáticamente, por lo que lo resolvimos haciendo esto: hemos agregado un resource_bundle personalizado en el Podfile, y luego comprobamos si está allí o no en time de ejecución, si está allí, estamos seguros de que la biblioteca estaba instalada usando CocoaPods.