# Configura tu proyecto

Haz estos pasos una vez para cada app. Al final, tu app se compila con el paquete `MoneiTapToPay`, en local y en la integración continua (CI).

## Solicita el permiso de Apple[​](#apple-entitlement "Enlace directo al Solicita el permiso de Apple")

Tap to Pay en el iPhone necesita un permiso (entitlement) de Apple para tu equipo de desarrollo. MONEI no da este permiso. Solicítalo a Apple con el [formulario de solicitud del permiso de Tap to Pay en el iPhone](https://developer.apple.com/contact/request/tap-to-pay-on-iphone/). Consulta las directrices de Apple en la página para desarrolladores de [Tap to Pay en el iPhone](https://developer.apple.com/tap-to-pay/).

1. Solicita el permiso de **desarrollo** para tu equipo, para cada app que acepta pagos. Lo necesitas antes de probar en un dispositivo.
2. Crea y prueba tu flujo de pago con él.
3. Solicita el permiso de **publicación**. Apple pide capturas de pantalla o un vídeo de tu flujo de pago.

Apple revisa cada solicitud. Ten en cuenta esta revisión antes de tu fecha de lanzamiento.

## Envía los datos de tu app a MONEI[​](#app-details "Enlace directo al Envía los datos de tu app a MONEI")

Envía estos datos a MONEI antes de probar en un dispositivo:

* Tu Team ID de Apple.
* El bundle ID de cada app que acepta pagos.

Las extensiones de app que nunca aceptan pagos (por ejemplo, una extensión de widget) no necesitan el permiso, y no envías sus bundle IDs.

## Añade el paquete[​](#add-package "Enlace directo al Añade el paquete")

El paquete es público. Swift Package Manager descarga los binarios desde la publicación de cada versión. No necesitas una cuenta de GitHub ni un token de GitHub.

* Xcode
* Package.swift

1. En Xcode, selecciona **File > Add Package Dependencies**.

2. Introduce la URL del paquete:

   ```
   https://github.com/MONEI/monei-tap-to-pay-ios
   ```

3. Define la regla de dependencia como **Exact Version** e introduce `0.2.0`.

4. Añade el producto `MoneiTapToPay` al target de tu app.

Package.swift

```
dependencies: [

  .package(url: "https://github.com/MONEI/monei-tap-to-pay-ios", exact: "0.2.0")

],

targets: [

  .target(name: "YourApp", dependencies: [

    .product(name: "MoneiTapToPay", package: "monei-tap-to-pay-ios")

  ])

]
```

Usa una versión exacta para las versiones 0.x, porque una versión menor 0.x puede cambiar la API. A partir de 1.0.0, usa `from:`. Consulta [versiones y compatibilidad](https://docs.monei.com/es/monei-pay/in-app-tap-to-pay/test-and-go-live.md#versions).

Usa `0.1.1` o posterior. Las versiones anteriores descargan sus binarios a través de la API de GitHub, que necesita autenticación de GitHub.

## Configura el target de tu app[​](#configure-target "Enlace directo al Configura el target de tu app")

### Añade el permiso[​](#entitlement-key "Enlace directo al Añade el permiso")

Añade esta clave al archivo `.entitlements` del target de tu app:

YourApp.entitlements

```
<key>com.apple.developer.proximity-reader.payment.acceptance</key>

<true/>
```

### Añade la descripción de uso de la ubicación[​](#location "Enlace directo al Añade la descripción de uso de la ubicación")

El SDK necesita la ubicación del dispositivo para aceptar pagos. Añade `NSLocationWhenInUseUsageDescription` a `Info.plist`:

Info.plist

```
<key>NSLocationWhenInUseUsageDescription</key>

<string>Usamos tu ubicación para aceptar pagos con tarjeta con Tap to Pay en el iPhone.</string>
```

Sin esta clave, iOS no pide permiso al usuario, y `prepare` y `acceptPayment` lanzan `locationDenied` inmediatamente.

### Usa el nombre "Tap to Pay en el iPhone"[​](#naming "Enlace directo al Usa el nombre \"Tap to Pay en el iPhone\"")

Usa el nombre "Tap to Pay en el iPhone" en tu interfaz, como exigen las Human Interface Guidelines de Apple.

## Declara los detalles de privacidad de la App Store[​](#privacy "Enlace directo al Declara los detalles de privacidad de la App Store")

En App Store Connect, declara estos tipos de datos. Decláralos todos para la funcionalidad de la app, y no para seguimiento:

| Tipo de dato         | Vinculado al usuario |
| -------------------- | -------------------- |
| Ubicación aproximada | No                   |
| Ubicación precisa    | No                   |
| ID del dispositivo   | Sí                   |

## Configura la integración continua[​](#ci "Enlace directo al Configura la integración continua")

La resolución estándar de Swift Package Manager funciona en la integración continua. No necesitas ningún secreto.

## Preguntas frecuentes[​](#common-questions "Enlace directo al Preguntas frecuentes")

### La resolución del paquete falla. ¿Qué compruebo?[​](#resolution-fails "Enlace directo al La resolución del paquete falla. ¿Qué compruebo?")

Comprueba estos puntos:

* La URL del paquete es `https://github.com/MONEI/monei-tap-to-pay-ios`.
* La versión es `0.1.1` o posterior. Las versiones anteriores necesitan autenticación de GitHub.

### ¿Puede MONEI solicitar el permiso de Apple por mí?[​](#entitlement-by-monei "Enlace directo al ¿Puede MONEI solicitar el permiso de Apple por mí?")

No. Apple da el permiso a tu equipo de desarrollo, y tu app lo usa. Solicítalo a Apple.
