Имам някакво странно поведение с IAP (Sandbox). Отначало си помислих, че съм направил грешка, но след това заредих друг проект (виж изображения) с IAP и той показва същото поведение. В моето приложение предоставям възможността да си купя ъпгрейд. Ако потребителят натисне бутона "Купете", се появява предупредителен изглед, който пита дали потребителят иска да купи ъпгрейд за € 1,99. Ако потребителят желае това, процесът на покупка започва и се появява друг изглед за предупреждение, който е потвърждение за покупката. Но това потвърждение показва друга цена (2,34 евро). Някой има ли представа защо е това?
Благодаря предварително!
Отговори:
0 за отговор № 1Информацията от второто изскачащо съобщение е вярнаедин. И изскачащото, което показвате в началото, има някаква невалидна информация. Цената 1,99 е всъщност USD цена. И символът "€" трябва да бъде свързан от вас в низ.
Това се случва по две причини:
- Когато устройството не е регистрирано в Apple Id (за покупки в приложението). Следователно
SKProduct
"сprice
имотът ще има цена в USD. - Когато устройството е влязло в системата с идентификатор на Apple, който принадлежи на потребител от друга страна, освен вашата.
SKProduct
"сprice
имота ще има цена на тази страна.
Можете да форматирате низа, който работи за всяка страна. Ето кодов фрагмент, който ще създаде такъв низ за вас.
public extension SKProduct {
public var localizedPrice: String? {
let numberFormatter = NumberFormatter()
numberFormatter.locale = self.priceLocale
numberFormatter.numberStyle = .currency
return numberFormatter.string(from: self.price)
}
}
Можеш да използваш localizedPrice
собственост сега SKProduct
обект без да си пишете €.