У мене є якась дивна поведінка з IAP (Sandbox). Спочатку я думав, що помилився, але потім завантажив інший проект (див. Зображення) з IAP, і він демонструє таку саму поведінку. У своєму додатку я надаю можливість придбати оновлення. Я користувач натискає кнопку "Купити", з'являється попереджувальний перегляд, який запитує, чи хоче він придбати оновлення за 1,99 євро. Якщо користувач хоче цього, процес закупівлі починається, і з’являється інший перегляд попередження, що є підтвердженням для покупки. Але це підтвердження показує іншу ціну (2,34 євро). Хтось має уявлення, чому це так?
Спасибі заздалегідь!
Відповіді:
0 для відповіді № 1Інформація у другому спливаючому вікні правильнаодин. І спливаюче вікно, яке ви показуєте спочатку, має якусь недійсну інформацію. Ціна 1,99 - це фактично ціна в доларах США. І символ "€" повинен бути з'єднаний вами в рядку.
Це відбувається через дві причини:
- Якщо на пристрої немає входу в систему Apple Id (для покупок у програмі). Тому
SKProduct
сprice
нерухомість буде мати ціну в доларах США. - Коли пристрій увійшов за допомогою Apple ID, який належить користувачеві, що не є вашою країною.
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
об'єкт, не записуючи себе €.