Тестирование валюты и цены покупок в приложении на iOS

#ios #swift #in-app-purchase

#iOS #swift #покупка в приложении

Вопрос:

Я пытаюсь протестировать покупку в приложении с другой валютой и ценой. Прямо сейчас он всегда показывает мне INR. Я сменил страну своего устройства на США. Также я изменил страну своего Apple ID на США. Тем не менее, он показывает цену в индийских рупиях. Apple отклонила приложение, потому что они получают всплывающее сообщение об ошибке, в котором говорится, что цена и валюта равны нулю. На скриншоте, который они отправили, показана цена покупки в приложении в долларах США. Итак, я хочу повторить свою проблему и хочу отладить цену покупки в приложении в долларах США.

Итак, мой вопрос в том, как получить. Цена покупки в приложении в долларах США при тестировании из Индии?

Ниже приведен мой код для получения цены из StoreKit.

 SwiftyStoreKit.retrieveProductsInfo([value]) { result in
        if let product = result.retrievedProducts.first {
            let priceString = product.localizedPrice!
            
            print("Product: (product.price) (product.localizedDescription), price: (priceString)")
            Loader.shared.stopAnimatingLoader()
            responseHandler(product.localizedPrice!,Int(truncating: product.price), true)
  

Я также попытался использовать приведенный ниже код для получения информации о ценах из SKProduct, но он предоставляется в местной валюте вместо долларов США.

 let numberFormatter = NumberFormatter()
                numberFormatter.formatterBehavior = .behavior10_4
                numberFormatter.numberStyle = .currency
                numberFormatter.locale = product.priceLocale
                let formattedPrice = numberFormatter.string(from: product.price)
  

Комментарии:

1. Не могли бы вы показать свой код для получения и отображения цены?

2. Добавлен соответствующий код.

3. Вы не должны использовать цену продукта напрямую, как в последней строке. Вы должны использовать product priceLocale для передачи цены через NumberFormatter и использовать только результирующую строку.

4. Хорошо, позвольте мне попробовать с помощью NumberFormatter и свяжусь с вами

5. Ну, предположительно, это то, что SwiftyStoreKit делает, чтобы получить локализованную цену. Но в вашем коде вы также получаете цену непосредственно в виде числа; это неправильно.