Para empezar necesitas tomar algunas decisiones sobre el proyecto que vas a construir. ¿Vas a alojar tu propio servidor XMPP? ¿Usarás eJabberd, OpenFire, Prosody o algún otro servidor XMPP? ¿Quiere pagar a una empresa para que le aloje el servidor? Si quieres usar una solución alojada, a menudo te proporcionarán algún tipo de SDK.
Si quieres ir por el camino del código abierto, construirlo tú mismo, puedo recomendar encarecidamente el XMPPFramework de Robbie Hanson. Tiene todo lo que necesitas para interactuar con el servidor.
Estuve trabajando en un proyecto de un cliente y terminamos usando este plugin comercial de código abierto. Está basado en XMPPFramework pero incluye una implementación completa de XMPP basada en eJabberd y tiene muchas de las características estándar: integración de listas, presencia, MUC, etc… Se engancha al SDK de chat gratuito (con licencia MIT) para iOS. Me gusta porque es totalmente de código abierto y se basa en XMPPFramework que es algo así como un estándar de la industria.
Aunque estas bibliotecas están escritas en Objective-C, sólo puede importarlas en un proyecto SWIFT utilizando un archivo de cabecera puente.