El marco incrustado de firma no funciona en Xcode 11.2.1

18

Tengo una pequeña aplicación de prueba de concepto, donde estoy tratando de incrustar (y firmar) un marco (Alamofire) dentro de mi marco (AequumPOCFramework.framework), sin embargo, cuando intento implementarlo en mi dispositivo, sigue dando yo el error

.... no es válido para su uso en el proceso mediante Validación de biblioteca: el archivo asignado no tiene cdhash, ¿está completamente sin firmar? El código debe ser al menos ad-hoc firmado.

Si solo trato de implementar mi propio marco, sin tener Alamofire incrustado en él, todo funciona bien.

El error completo en la implementación en mi iphone es:

dyld: Biblioteca no cargada: @ rpath / Alamofire.framework / Alamofire Referenciada desde: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCworkFOCeFeme.FemeworkfOCFrame. : no se ha encontrado ninguna imagen adecuada. Encontré: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/ firma / código privado / firma: código privado / firma / código privado /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) no es válido para su uso en el proceso. , completamente sin firmar? El código debe ser al menos ad-hoc firmado.

¿Qué estoy haciendo mal?

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

geekyaleks
fuente
2
Teniendo el mismo problema aquí. Actualmente investigando este problema. ¡Mantenme informado si ya encontraste una solución!
Mattk90
2
Me alegra ver que no soy el único ... Si me entero, te lo haré saber. Además, avíseme si avanza.
geekyaleks
Ya puedo decirte que tiene que ver con el proceso de firma del marco. Entonces, el problema es que Xcode dice que la firma del marco incrustado es incorrecta o no es la misma que la de su propio marco. Actualmente estoy cavando más profundo. Consulte este artículo para obtener una buena introducción al tema: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90
2
Sí, algo está mal con este proceso de firma ... Por ahora, estoy incluyendo mi marco Alamofire en mi propio marco, lo firmo y lo incrusto allí, Y lo firmo y lo incrusto en la propia aplicación. Sé que este tipo de apesta, pero esto me permitirá al menos seguir codificando, y espero que pronto salga una solución real.
geekyaleks
1
Gracias por una respuesta muy completa ... He decidido que por ahora, solo firmaré el marco "incrustado / incrustado" en la propia aplicación, espero que aparezca otra respuesta en el futuro cercano ...
geekyaleks

Respuestas:

15

Los marcos anidados no son compatibles con iOS (ver notas técnicas ). La única solución legítima en este momento es vincular los marcos "incrustados" directamente a una aplicación de alojamiento.

* XCFramework es principalmente una agregación de binarios específicos de plataforma y, desafortunadamente, no tiene nada que ver con los marcos de incrustación.

berec
fuente
¿Alguna noticia sobre el tema? Estoy enfrentando el mismo problema: mi marco A está usando mi marco B y necesito que la aplicación final solo incluya el marco A y no pueda acceder al marco B
Silvia
@Silvia Si realmente necesitas ocultar B, entonces creo que puedes convertirlo en Biblioteca estática.
berec
0

También debes incorporar Alamofire a tu proyecto.

Por ejemplo, está utilizando Carthage y el Cartfile de su marco tiene la biblioteca Alamofire. También debes usar el mismo Carfile para tu aplicación principal. Además, debe realizar otras acciones de Cartago (vincular biblioteca, agregar script de ejecución) para la aplicación principal.

Yusuf Demirci
fuente
Sí, también lo descubrí, sin embargo, no era mi objetivo tener todos mis Frameworks expuestos al desarrollador final. Esperaba tener todo bien empaquetado dentro de un marco (mi marco). Gracias ..
geekyaleks