# Instalar el framework del SDK

Esta guía te indica cómo añadir la biblioteca estática del SDK de Get Mini a tu proyecto de Xcode. Configurarás los **Build Settings**, enlazarás los frameworks requeridos y verificarás que la instalación funciona correctamente.

## Requisitos

Antes de empezar, asegúrate de tener:

- **Xcode 12.0** o posterior instalado en tu Mac
- **iOS 11.0** o posterior establecido como tu **Deployment Target** mínimo
- **Paquete del SDK** de Get Mini que contiene `libTPVPC-SDK.a` y los archivos de cabecera (`.h`)
- **Familiaridad básica** con los build settings de Xcode

<Callout type="note">

El SDK no soporta CocoaPods ni Swift Package Manager. Se requiere integración manual.

</Callout>

## Pasos de instalación

Sigue estos pasos para integrar el SDK en tu proyecto de Xcode.

### Paso 1: Añadir archivos de la biblioteca a tu proyecto

Crea una carpeta dedicada para los archivos del SDK y añádelos a tu proyecto de Xcode:

1. Crea una carpeta llamada `mPOS-SDK` en el directorio de tu proyecto
2. Copia `libTPVPC-SDK.a` y todos los archivos de cabecera (`.h`) en esta carpeta
3. Arrastra la carpeta `mPOS-SDK` al **Project Navigator** de tu Xcode
4. Cuando se te solicite, marca **Copy items if needed** y selecciona tu app target

### Paso 2: Configurar los Header Search Paths

Indica a Xcode dónde encontrar los archivos de cabecera del SDK:

1. Selecciona tu proyecto en el Project Navigator
2. Elige tu **App Target** y ve a **Build Settings**
3. Busca **Header Search Paths**
4. Añade `$(SRCROOT)/mPOS-SDK` y establécelo como **recursive**

### Paso 3: Añadir los Linker Flags requeridos

El SDK requiere linker flags específicos para cargarse correctamente. En **Build Settings**, busca **Other Linker Flags** y añade los tres flags:

| Flag | Propósito |
| :---- | :---- |
| `-ObjC` | Carga las categorías de Objective-C desde la biblioteca estática |
| `-lstdc++` | Enlaza la biblioteca estándar de C++ para la lógica interna del SDK |
| `-lsqlite3` | Habilita la persistencia de datos locales (SDK v3.4+) |

<Callout type="warning">

La falta de linker flags provocará bloqueos (crashes) de "Selector not recognized" o "Symbol not found".

</Callout>

<Callout type="note">

Añade estos flags tanto en el **Build Settings** del proyecto como en el de los Targets, tal y como indica el manual del SDK.

</Callout>

### Paso 4: Enlazar los frameworks del sistema

Añade los frameworks de iOS requeridos en **General > Frameworks, Libraries, and Embedded Content**:

- `ExternalAccessory.framework` - Para la comunicación con el PIN pad a través de Bluetooth
- `CoreBluetooth.framework` - Para el descubrimiento y conexión de dispositivos
- `Security.framework` - Para operaciones criptográficas
- `UIKit.framework` - Para componentes de UI

### Paso 5: Verificar la instalación

Prueba que el SDK está correctamente integrado importando las cabeceras en tu código.

**Para proyectos de Objective-C**, añade las importaciones a tu archivo de implementación:

```
#import "CommonUtils.h"
#import "RedsysPinpadManager.h"
```

**Para proyectos de Swift**, crea o actualiza tu **Bridging Header** (`ProjectName-Bridging-Header.h`) con las mismas importaciones, y luego verifica en Swift:

```
func checkSDKInstallation() {
    print("SDK Version: \(CommonUtils.getVersion())")
}
```

Compila tu proyecto (⌘+B) para confirmar que la importación se realiza correctamente sin errores.

## Resolución de problemas

**Headers Not Found**

Verifica que **Header Search Paths** en Build Settings incluye `$(SRCROOT)/mPOS-SDK` establecido como **recursive**.

**Undefined Symbol Errors**

Comprueba que los tres linker flags (`-ObjC`, `-lstdc++`, `-lsqlite3`) están presentes en **Other Linker Flags**.

**Crash During Device Scan**

Faltan protocolos de External Accessory en Info.plist. Consulta [Configurar Permisos de iOS](/es/get-mini/ios-sdk/first-steps/configure-ios-permissions) para ver las cadenas de protocolo obligatorias.

## Próximos pasos

Ahora que la biblioteca está enlazada, configura los permisos de tu aplicación para permitir la comunicación con el hardware:

* [Configurar Permisos de iOS](/es/get-mini/ios-sdk/first-steps/configure-ios-permissions) - Configura las cadenas de protocolo obligatorias y los permisos de Bluetooth
* [Inicio rápido: Tu primera venta](/es/get-mini/ios-sdk/first-steps/ios-sdk-quickstart) - Inicializa el manager y comienza a probar