Estoy usando SwiftyStoreKit para manejar IAP en mi aplicación. El problema es que los precios de los productos IAP siempre se mostrarán en USD como este: $9.99. No importa en qué país la gente pruebe la aplicación.
Estoy tratando de cambiar la configuración regional en el Simulador de esta manera (en la ventana de edición del esquema). El uso de la ubicación personalizada no me dará otra moneda, mientras que Locale.current muestra la configuración regional modificada.
Probando ambos:
product.localizedPriceY directamente desde el objeto del producto (que en realidad es LocalizedPrice como extensión de SKProduct)
let numberFormatter = NumberFormatter() numberFormatter.numberStyle = .currency numberFormatter.locale = product.priceLocale let price = numberFormatter.string(from: product.price)precio todavía $ 9.99 aquí en Dinamarca o Japón
¿Me estoy perdiendo alguna configuración local mágica en las propiedades del proyecto?
El precio y la configuración regional del precio están determinados por la asociación de tiendas de la cuenta de compra, no por la configuración regional del dispositivo.
es decir, alguien con una cuenta vinculada a la tienda de EE. UU. siempre verá $ US, ya que así es como se le cobrará, independientemente de dónde se encuentre físicamente en el mundo o de la ubicación de su dispositivo.
Para probar la internacionalización del precio, deberá usar un probador de sandbox con un territorio de App Store apropiado.
Si ejecuta la aplicación antes de iniciar sesión con un probador de Sandbox, verá el precio en dólares estadounidenses de forma predeterminada. Además, tenga en cuenta que realmente no puede probar IAP en el simulador; Necesitas usar un dispositivo real.
Las cuentas de sandbox se manejaron de manera diferente desde iOS 12. Cuando ejecuta una compilación de desarrollo desde Xcode, la aplicación le solicitará un ID de Apple de sandbox falso tan pronto como inicie una compra. Después de ese primer inicio de sesión, la aplicación conocerá la configuración regional correcta y, por lo tanto, podrá mostrar los precios apropiados para sus compras dentro de la aplicación. Antes de eso, siempre mostrará los precios en USD.