我想找出用户的App Store位置.这意味着他们在美国,澳大利亚(澳大利亚)商店.以下代码使用.
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
Books = response.products;
if ([SKPaymentQueue canMakePayments] && [response.products count]>0) {
}
for (SKProduct *book in Books) {
NSLocale *locat=[NSLocale currentLocale];
NSString *strlocate=[locat objectForKey:NSLocaleCountryCode];
NSLog(@"\n\n\n Device country== %@ \n\n\n",strlocate);
NSLocale* storeLocale = book.priceLocale;
NSString *storeCountry = (NSString*)CFLocaleGetValue((CFLocaleRef)storeLocale, kCFLocaleCountryCode);
NSLog(@"\n\n\n store country== %@ \n\n\n",storeCountry);
}
}
Run Code Online (Sandbox Code Playgroud)
我想要明智的是,如果图书等级是一个意味着US $ 0.99 AUD 0.99 JPY 85,基于应用商店价格矩阵表.
我在模拟器中测试过.我在系统中的iTunes,appstore和safari应用程序中更改了国家/地区名称.但我只得到美国国家代码.
编辑:设置 - >常规 - >国际 - >区域格式 - >国家/地区
我在设备中测试过:设备国家/地区仅更改.商店国家显示美国国家代码和价格.我想在开始购买时间之前存储国家/地区代码.
一旦基于货币波动改变价格多少天?是否为已知/更新提供任何api /查询波动的价格?
我的inapp操作成了一堂课.在inapp操作之前,我想向用户显示本地价格,在inapp操作中反映相同的价格效果.
我显示从我的服务器获取的书籍免费和付费书籍列表.因为我显示每个项目的价格.那些项目价格在处理appstore时会显示美元价格.如果appstore显示价格,我也想显示.所以我想从我的服务器发送国家代码到我的服务器响应该国家相关的价格表和货币符号..
在将方案设置为另一种语言的情况下运行应用程序不会影响测试中从 iTunes 收到的 SKProduct。我\xe2\x80\x99发现影响更改的唯一方法是在 iTunes Connect 中为您可能想要测试的每种...每种...语言创建一个新的沙盒测试用户。
\n\n然后 - 您不应该通过“设置”在您的设备上使用该用户登录。运行您的应用程序并在询问时使用测试用户登录。
\n\n这成功地让我的手机默认使用不同国家/地区的应用商店。
\n\n但是,当我将每个 SKProduct\xe2\x80\x99s .localizedTitle、.localizedDescription 和 .price 打印到控制台时,只有价格被转换为不同的国家/地区\xe2\x80\x99s 数字。标题和描述仍然是英文(I\xe2\x80\x99m 在美国开发)。所有语言均在 iTunes Connect 中设置。
\n\n当我点击购买应用内商品时,系统弹出的窗口是英文:“确认您的应用内购买”,然后是“您想以 ___ 购买一个 ____ 吗?” “取消”和“购买”按钮均为英文。第一个空白由我在 iTunes Connect 中设置的显示名称填充。但仍然使用英文版本。第二个空白处填写价格,该价格以测试用户商店的语言显示。[单独问题:日语显示日元符号和价格。西班牙显示欧元符号和价格。墨西哥显示美元符号和比索价格。]
\n\n因此,只有价格适用于我的沙盒测试者帐户。有人知道如何在测试期间获得不同国家\xe2\x80\x99s 语言的标题吗?我不仅想确保它对于我本地化应用程序的每个国家/地区的人们来说都是正确的,我\xe2\x80\x99d 喜欢将 SKProducts\' 标题设置为我的应用程序中按钮上的标签启动应用内购买。我可以通过 Localized.strings 文件设置这些,但更愿意从 SKProduct 中提取它,因为我已经通过 iTunes Connect 输入了该信息。
\n\n谢谢你的帮助!
\n