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
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. Consulta las directrices de Apple en la página para desarrolladores de Tap to Pay en el iPhone.
- Solicita el permiso de desarrollo para tu equipo, para cada app que acepta pagos. Lo necesitas antes de probar en un dispositivo.
- Crea y prueba tu flujo de pago con él.
- 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.
Las extensiones de app que nunca aceptan pagos (por ejemplo, una extensión de widget) no necesitan el permiso.
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
-
En Xcode, selecciona File > Add Package Dependencies.
-
Introduce la URL del paquete:
https://github.com/MONEI/monei-tap-to-pay-ios -
Define la regla de dependencia como Exact Version e introduce
0.7.0. -
Añade el producto
MoneiTapToPayal target de tu app.
dependencies: [
.package(url: "https://github.com/MONEI/monei-tap-to-pay-ios", exact: "0.7.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.
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
Añade el permiso
Añade esta clave al archivo .entitlements del target de tu app:
<key>com.apple.developer.proximity-reader.payment.acceptance</key>
<true/>
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:
<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. Desde el SDK 0.5.0, las llamadas lanzan setupIncomplete inmediatamente. Las versiones anteriores lanzan locationDenied.
Añade tu Team ID de Apple
El motor de pagos del SDK usa tu Team ID de Apple para certificar tu app. Añade el Team ID a Info.plist con la clave PRODUCT_TEAM_IDENTIFIER:
-
En los ajustes de compilación del target de tu app, añade un ajuste definido por el usuario
PRODUCT_TEAM_IDENTIFIER. Dale como valor tu Team ID de Apple. El Team ID tiene 10 caracteres. Está en tu cuenta de Apple Developer, en Membership details. Usa el equipo que firma la app. -
Añade esta entrada a
Info.plist:Info.plist<key>PRODUCT_TEAM_IDENTIFIER</key><string>$(PRODUCT_TEAM_IDENTIFIER)</string>
Si Xcode genera el Info.plist de tu target (no hay archivo Info.plist), añade un archivo Info.plist solo con esta entrada. Después, da como valor al ajuste de compilación Info.plist File (INFOPLIST_FILE) su ruta. Xcode combina el archivo con las claves generadas. Los ajustes de compilación INFOPLIST_KEY_ no pueden añadir esta clave.
El valor tiene que estar en el Info.plist de la app compilada. Sin esta clave, la configuración del lector falla.
Comprueba la configuración
Desde el SDK 0.5.0, el SDK comprueba el entitlement, la descripción de uso de la ubicación y PRODUCT_TEAM_IDENTIFIER en un iPhone compatible antes de iniciar el lector. Si falta un elemento o es incorrecto, prepare, acceptPayment, isAccountLinked y linkAccount lanzan setupIncomplete(fix:). fix te dice qué debes cambiar, por ejemplo el Team ID que firma la app. Imprime el error durante el desarrollo para leerlo. La app no puede corregirlo mientras se ejecuta: corrige la app y vuelve a compilarla.
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
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
La resolución estándar de Swift Package Manager funciona en la integración continua. No necesitas ningún secreto.
Preguntas frecuentes
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.1o posterior. Las versiones anteriores necesitan autenticación de GitHub.
¿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.