iOS 内购中的本地化测试. How to test 'priceLocale'?

本文解决了App内购系统在不同国家显示对应货币符号的问题,通过调整测试账号的国家设置,实现了SKProductsRequest返回数据的本地化,确保全球用户看到正确的货币格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在啃了不少文档之后, 内购的东西终于理顺了, 也理清楚了, 可以搞UI了, 因为app不仅在国内用, 还要在国外用, 所以根据国家不同显示不同的货币符号和对应的价格就很有必要了(例如 $0.99, ¥666). SKProductsRequest中始终返回的是中文, 包括localizedTitle,localizedDescription等都是, 修改系统语言, 修改系统区域, nothing happened, 还是原来那个样子, 看SKProduct文档, 看NSLocale文档, 还是没有关于这个问题的描述…

想一遍流程, 想起来添加测试(沙盒测试员)账号的时候有一个国家选项, 试试呗, 然后添加了一个选择了美国国籍的测试账号, 登上测试机, 返回正确, 就是美国对应的描述. 所以SKProductsRequest返回的数据是根据测试账号所在地区决定的.

最后苹果官方推荐的方法, 价格可以直接转换为对应加上货币符号的字符串(0.99 -> $0.99):

   	 NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
       [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
       [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
       [numberFormatter setLocale:pro.priceLocale];
       
       NSString *formattedString = [numberFormatter stringFromNumber:pro.price];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值