Es específicamente porque estás haciendo pinning. Esto le permitiría trabajar independientemente de si tuviera un certificado autofirmado o un CA firmado. Básicamente, incluye el certificado con la aplicación y le dice a la aplicación específicamente "este certificado es válido".
Si bien esto impide la conexión a un certificado diferente y debería permitir el uso de un certificado autofirmado, también complica la revocación de un certificado de manera bastante severa, ya que la aplicación tendría que actualizarse antes de poder actualizar el certificado del lado del servidor. .
Personalmente, evitaría usar una biblioteca que requiera esto. Incluso si quisiera hacer un certificado autofirmado, la mejor manera de hacerlo es configurar su propia CA y decirle a la aplicación que confíe en el certificado raíz de la CA. Entonces todavía puede hacer la revocación normal y cambiar el certificado.
La biblioteca con la que está trabajando puede o no puede admitir esto, pero esa parte sería una pregunta de programación en lugar de una de seguridad.