paint-brush
Implemente pruebas gratuitas en su aplicación con StoreKit 2: guía paso a pasopor@namaswic
678 lecturas
678 lecturas

Implemente pruebas gratuitas en su aplicación con StoreKit 2: guía paso a paso

por Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Demasiado Largo; Para Leer

Con StoreKit 2, Apple ha introducido herramientas mejoradas para ayudarte a comprobar la elegibilidad de un usuario para las ofertas de lanzamiento. En este artículo, te guiaremos en la implementación de pruebas gratuitas en tu aplicación, junto con fragmentos de código para verificar la elegibilidad del usuario. Y asegúrate de estar atento a los "**Consejos profesionales**" que aparecen a lo largo del artículo, donde comparto algunas ideas personales de mi experiencia.
featured image - Implemente pruebas gratuitas en su aplicación con StoreKit 2: guía paso a paso
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Ofrecer una prueba gratuita es una excelente manera de alentar a los usuarios a probar las funciones premium de su aplicación, lo que aumenta las posibilidades de convertirlos en suscriptores de pago. Con StoreKit 2, Apple ha presentado herramientas mejoradas para ayudarlo a verificar la elegibilidad de un usuario para las ofertas de lanzamiento. En este artículo, lo guiaremos en la implementación de pruebas gratuitas en su aplicación, junto con fragmentos de código para verificar la elegibilidad del usuario. También cubriremos escenarios de prueba tanto para usuarios elegibles como para usuarios no elegibles. ¡Y asegúrese de estar atento a los " Consejos profesionales " dispersos a lo largo del artículo, donde comparto algunas ideas personales de mi experiencia!


Cómo configurar pruebas gratuitas para su aplicación en App Store Connect

Antes de comenzar a codificar, asegúrese de configurar los ajustes de compra dentro de la aplicación en App Store Connect:

  1. Inicie sesión en App Store Connect y vaya a la sección "Mis aplicaciones".
  2. Seleccione su aplicación y navegue a la pestaña "Funciones" .
  3. En “Compras dentro de la aplicación”, crea un nuevo producto de suscripción renovable automáticamente .
  4. Define los detalles de tu suscripción, incluidos los precios y un período de prueba gratuito (por ejemplo, 7 días) configurando una oferta introductoria.
  5. Guarde sus cambios.

¿Cómo configurar una vista de Suscripción y verificar si el usuario es elegible para una prueba gratuita?

Lo haré más sencillo mostrándole el fragmento de código para calcular la elegibilidad de prueba del usuario.

Cree una vista SwiftUI para mostrar la oferta de prueba gratuita y gestionar las interacciones de los usuarios. Dejaré muchos comentarios en el fragmento de código para guiarlo.


 import StoreKit2 // StoreManager is responsible to communicate with Storekit Framework provided by Apple for monetization class StoreManager: ObservableObject { @Published var message: String = "" // We will use this property to display the right message to the user @Published var products: [Product] = [] // This will be responsible to store the products fetched that we defined // in App Store Connect // Fetch products from the App Store func fetchProducts() { Task { do { // product_id is the id that you would have defined in App Store Connect. let storeProducts = try await Product.products(for: ["product_id"]) products = storeProducts } catch { message = "Failed to fetch products: \(error.localizedDescription)" } } } // Initiate purchase func purchase() { guard let product = products.first else { // There is a possibility of products not being fetched from App Store Connect. // Pro Tip: From experience, even though we defined the products on App Store Connect, it is possible // that the products are not found post attempting to fetch. So, it is important to handle this case. message = "No product available." return } Task { do { let result = try await product.purchase() switch result { case .success(let verification): switch verification { case .verified: message = "Purchase successful!" case .unverified: message = "Could not verify the purchase." } case .userCancelled: message = "Purchase cancelled." case .pending: message = "Purchase is pending." @unknown default: message = "Unknown result." } } catch { message = "Purchase failed: \(error.localizedDescription)" } } } // Check if the user is eligible for a free trial func checkTrialEligibility() async -> Bool { guard let product = products.first else { return false } do { // So when you define a auto renewable subscriptions, there are usually bond in a group. The group can again be // found in App Store Connect let eligibility = try await product.subscription?.isEligibleForIntroOffer(for groupID: 111111) return eligibility ?? false } catch { message = "Error checking trial eligibility: \(error.localizedDescription)" return false } } }


 import SwiftUI import StoreKit struct SubscriptionView: View { @StateObject private var storeManager = StoreManager() @State private var isEligibleForFreeTrial = false var body: some View { VStack { Text("Unlock Premium Features") .font(.title) .padding() Text("Get a 7-day free trial of our premium subscription.") .multilineTextAlignment(.center) .padding() Button(action: { storeManager.purchase() }) { // Based on user status, we can display the text Text(isEligibleForFreeTrial ? "Start Free Trial" : "Start Subscription") .bold() .frame(width: 200, height: 50) .background(Color.blue) .foregroundColor(.white) .cornerRadius(10) } Text(storeManager.message) .padding() } .onAppear { storeManager.fetchProducts() checkTrialEligibility() } } private func checkTrialEligibility() { Task { isEligibleForFreeTrial = await storeManager.checkTrialEligibility() } } }

Pruebe los estados de elegibilidad de la prueba gratuita en Xcode

Apple proporciona herramientas sólidas para probar diferentes estados de usuario (por ejemplo, elegible o no elegible para una prueba gratuita) utilizando StoreKit Testing en Xcode :

  • Crear un archivo de configuración de StoreKit:
    • Vaya a Archivo > Nuevo > Archivo... > Archivo de configuración de StoreKit en Xcode.

    • Configure sus productos de suscripción, incluidos los períodos de prueba y los estados de elegibilidad.


  • Consejo profesional : también puedes crear un nuevo archivo de configuración para sincronizar el archivo de configuración desde App Store Connect y de esa manera no necesitarás configurar todos los productos.


  • Simular diferentes escenarios:

    • En el Editor de esquemas, en Opciones , seleccione el archivo de configuración de StoreKit.
    • Ejecute su aplicación en el entorno de prueba de StoreKit para simular diferentes escenarios:
      • Elegible para prueba gratuita:

        Para simular un usuario de prueba gratuito, asegúrese de no tener ninguna transacción en el administrador de transacciones.

        Para ver el administrador de transacciones, vaya a DepurarStoreKitAdministrar transacciones


  • No elegible para prueba gratuita:

    Para simular que un usuario no es elegible para una prueba gratuita, puede agregar manualmente una suscripción desde el administrador de transacciones. Puede tocar el botón Agregar en la pantalla del administrador de transacciones y luego seleccionar la transacción que desea agregar. Aquí, estoy intentando configurar una suscripción mensual para el usuario. Después de agregar esa transacción y ejecutar la aplicación nuevamente, debería ver que la elegibilidad para la prueba está marcada como falsa.


    Consejo profesional: También puedes incluir un UUID con la compra y usar este campo para almacenar el ID del usuario. De esta manera, puedes asegurarte de qué usuario realizó la compra en tu aplicación. Esta información se puede recuperar más tarde del historial de transacciones del usuario.

Realizar pruebas en Sandbox

Las pruebas en Sandbox te permiten probar las compras y suscripciones dentro de la aplicación en un entorno que imita el entorno de producción de la App Store y, al mismo tiempo, te dan la libertad de simular un par de casos extremos, como compras interrumpidas, uso compartido familiar y simulación de compras realizadas fuera de la aplicación o en otro dispositivo. También te permite


Pero antes de nada, aquí se explica cómo configurar y utilizar las pruebas sandbox:

  1. Crear una cuenta de probador de Sandbox:

    • Vaya a App Store Connect > Usuarios y acceso > Probadores de Sandbox .
    • Cree una nueva cuenta de probador de sandbox proporcionando una dirección de correo electrónico única, una contraseña y otros detalles requeridos.
  2. Iniciar sesión con la cuenta de Sandbox Tester:

    • En su dispositivo de prueba, vaya a Configuración > App Store > Cuenta Sandbox .
    • Inicie sesión con las credenciales de probador de sandbox que creó.
  3. Ejecute su aplicación en modo Sandbox:

    • Cree y ejecute su aplicación en un dispositivo físico (las pruebas sandbox no funcionan en el simulador).
    • Intente iniciar la prueba gratuita o realizar una compra utilizando la cuenta de prueba del entorno de pruebas. La transacción se realizará en el entorno de pruebas, lo que le permitirá probar el flujo completo, incluida la elegibilidad para pruebas gratuitas, el éxito de la compra, la cancelación y otros estados.
  4. Pruebe diferentes escenarios:

    • Usuario nuevo: use la cuenta de Sandbox para una primera compra a fin de verificar que la prueba gratuita se ofrece correctamente. Para usar la misma cuenta de Sandbox para intentos consecutivos de control de calidad, puede restablecer la elegibilidad del usuario y también borrar todas las transacciones de la cuenta de Sandbox. Puede hacerlo desde App Store Connect o desde Configuración.
    • Compra cancelada: prueba cómo la aplicación maneja cuando un usuario cancela la compra durante el flujo.
    • Falla de red: simule problemas de red desconectando y volviendo a conectar la red para ver cómo la aplicación maneja las transacciones fallidas.
    • Prueba gratuita no apta: esto es un poco complicado, pero no imposible. Primero, debes ir a Configuración → App Store → Hacer clic en la cuenta de sandbox → Pulsar Administrar. Aquí deberías poder agregar una transacción manualmente a la cuenta de sandbox para el usuario. Ahora, deberías poder probar la no elegibilidad de la prueba para el usuario.



Consejo profesional: Una cuenta de Apple no puede tener varias suscripciones activas, por lo que dos usuarios diferentes no pueden realizar compras independientes en la aplicación con el mismo ID de Apple. Asegúrate de comprobar si tu aplicación es compatible con este caso de usuario.

Referencias

https://developer.apple.com/documentation/storekit

https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode/

https://developer.apple.com/app-store-connect/