SDK para iOS
El SDK de Programmable Voice para iOS de Twilio te permite agregar llamadas de voz sobre IP (VoIP) a tus aplicaciones nativas de iOS.
Aviso de compatibilidad con iOS 14
Para tener compatibilidad con iOS 14, actualiza el SDK a la versión más reciente, el SDK 5.5.1 de Voice para iOS.
Aviso de compatibilidad con iOS 13
Es posible que las aplicaciones que utilizan las versiones 2.0.x, 3.x y 4.x no registren las llamadas entrantes cuando se ejecuten en iOS 13. Te recomendamos que actualices el SDK a la versión 5.0. Consulta este documento informativo y este issue (informe de problema) de GitHub para obtener más información. Consulta nuestras guías de migración cuando estés planificando la migración a nuestro SDK más reciente.
Si quieres obtener instrucciones paso a paso para empezar a utilizar el SDK de Programmable Voice para iOS, consulta los inicios rápido para realizar llamadas desde tus apps nativas de iOS en Objective-C y Swift.
Los SDK de Programmable Voice se publican según el control de versiones semántico, por lo que siempre debes tener en cuenta las versiones principal y secundaria de los SDK para mantener la compatibilidad de la API con tu código. En el caso de las versiones 1.0 y posteriores, las versiones secundarias no corromperán las integraciones existentes, pero durante un período beta los incrementos en las versiones secundarias en el rango 0.x representan cambios en la API que sí generarán errores. Las versiones a nivel de parche (0.0.x) representan cambios durante un período beta que no generarán errores.
Autenticación y autorización
En los SDK de Programmable Voice, utilizamos un nuevo mecanismo de autenticación y autorización para que el servidor de aplicaciones proporcione a tus clientes acceso a tus aplicaciones de voz. Logramos esto proporcionando a tu app un Access Token (token de acceso) que controla la sesión de autenticación de la aplicación cliente con tu cuenta en la nube de Twilio. Los Access Tokens (tokens de acceso) son diferentes de los tokens de capacidad utilizados en las versiones anteriores de Twilio Client. El uso de un token de capacidad en el SDK de Programmable Voice no funcionará. Los tokens de acceso, al igual que los tokens de capacidad, son tokens JWT, pero utilizan un formato nuevo y más flexible que se utiliza en todos los nuevos SDK de Twilio.
Consola de administración
Las herramientas de desarrollo y las opciones de configuración de Programmable Voice se encuentran en el panel de control de Programmable Voice. Utiliza la consola para crear apps TwiML, actualizar credenciales push, ver registros y mucho más.
Los SDK de Programmable Voice se publican según el control de versiones semántico, por lo que siempre debes tener en cuenta las versiones principal y secundaria de los SDK para mantener la compatibilidad de la API con tu código. En el caso de las versiones 1.0 y posteriores, las versiones secundarias no corromperán las integraciones existentes, pero durante un período beta los incrementos en las versiones secundarias en el rango 0.x representan cambios en la API que sí generarán errores. Las versiones a nivel de parche (0.0.x) representan cambios durante un período beta que no generarán errores.
Requisitos previos
- Xcode 12.0+
- Los proyectos Swift deben usar Swift 4.0 o superior
- Compatibilidad con iOS 11.0+
Instalación
El marco de Voice para iOS se puede instalar usando Swift Package Manager, CocoaPods, Carthage o de forma manual, como prefieras.
Swift Package Manager
Puedes agregar Programmable Voice para iOS agregando el repositorio https://github.com/twilio/twilio-voice-ios
como un paquete Swift.
En Build Settings (Configuración de compilación), también deberás modificar Other Linker Flags
(Otras marcas de vinculación) para incluir -ObjC
.
A partir de la última versión de Xcode (actualmente 12.4), existe un problema conocido con el consumo de marcos binarios distribuidos a través de Swift Package Manager. La solución actual a este problema es agregar una fase Run Script Phase
(Fase de ejecución de script) a las Build Phases
(Fases de compilación) del proyecto de Xcode. Esta fase Run Script Phase
(Fase de ejecución de script) debe ir después de la fase de compilación Embed Framework
(Incluir marco). Esta nueva Run Script Phase
(Fase de ejecución de script) debe contener el siguiente código:
find "${CODESIGNING_FOLDER_PATH}" -name '*.framework' -print0 | while read -d $'\0' framework
do
codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}"
done
CocoaPods
Es fácil instalar el marco de Voice cuando gestionas tus dependencias mediante CocoaPods. Solo tienes que agregar esto a tu Podfile
:
source 'https://github.com/cocoapods/specs'
target 'TARGET_NAME' do
use_frameworks!
pod 'TwilioVoice', '~> 6.4.1'
end
Luego, debes ejecutar pod install --verbose
para instalar las dependencias en tu proyecto.
Carthage
Apoyamos las integraciones usando marcos binarios de Carthage. Puedes agregar el SDK de Voice para iOS agregando la siguiente línea a tu Cartfile
:
binary "https://raw.githubusercontent.com/twilio/twilio-voice-ios/Releases/twilio-voice-ios.json"
Luego, ejecuta carthage bootstrap --use-xcframeworks
(o carthage update --use-xcframeworks
si estás actualizando tus SDK)
En la pestaña de configuración General de la aplicación de destino, en la sección Frameworks, Libraries, and Embedded Content
(Marcos, bibliotecas y contenidos incluidos
), arrastra y suelta TwilioVoice.xcframework
desde la carpeta Carthage/Build de tu disco.
Instalación manual
TwilioVoice.xcframework
se distribuye como un marco dinámico de iOS que puedes arrastrar y soltar en tus proyectos existentes.
Una vez que hayas descargado y desempaquetado XCFramework, navega a la página de configuración General de tu proyecto de Xcode. Arrastra y suelta TwilioVoice.xcframework
en la sección Frameworks, Libraries, and Embedded Content (Marcos, bibliotecas y contenido incluido). Asegúrate de que la opción "Copy items if needed" (Copiar elementos de ser necesario) esté activada y presiona Finish (Finalizar). Asegúrate de que la opción "Embed & Sign" (Incluir y firmar) esté seleccionada.
En Build Settings (Configuración de compilación), también deberás modificar Other Linker Flags
(Otras marcas de vinculación) para incluir -ObjC
.
Te recomendamos que revises nuestra Guía de primeros pasos para hacerte una idea de cómo funcionan en conjunto todos estos componentes. La app de inicio rápido está configurada para gestionar las dependencias con CocoaPods, pero también puedes instalar los marcos de forma manual, como se describe anteriormente.
Carthage
Actualmente, Carthage no es un mecanismo de distribución compatible con Twilio Voice. En este momento, Carthage no funciona con .xcframeworks
como se documenta aquí. Una vez que Carthage sea compatible con binarios de .xcframeworks
, se volverá a incluir Carthage como sistema de distribución.
Biblioteca estática
Voice también está disponible como una biblioteca estática.
Una vez que hayas descargado la biblioteca estática, arrastra y suelta los archivos libTwilioVoice.a
, libboringssl.a
y la carpeta include
en tu proyecto de Xcode. Esto agregará las bibliotecas estáticas a la sección Frameworks, Libraries, and Embedded Contents (Marcos, bibliotecas y contenidos incluidos)
.
Hay algunas cosas más que tendrás que agregar para que la biblioteca funcione correctamente con tu app:
- Agrega
-ObjC
a Other Linker Flags (Otras marcas de vinculación) - Agrega estos marcos a la sección Linked Frameworks and Libraries (Marcos y bibliotecas vinculados):
SystemConfiguration
,AudioToolbox
,AVFoundation
,CoreTelephony
,PushKit
yCallKit
.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.