如何以编程方式检查应用商店地区/国家/地区?

Posted

技术标签:

【中文标题】如何以编程方式检查应用商店地区/国家/地区?【英文标题】:How Can I check programmatically app store region/country? 【发布时间】:2012-07-09 06:04:18 【问题描述】:

有办法检查吗? 我有一个应用程序 URL,如果用户有英国应用商店,我不想打开它。不幸的是,这个应用程序在许多国家都可以使用,所以当我在链接上加上“gb”时,它会被重定向到用户的本地区域。

【问题讨论】:

为什么你希望链接只有在英国商店才有效? 你可以做一个CoreLocation检查 @DustinRowland :问题是应用商店地区/国家不依赖于位置。 @Dusting:您不应该使用 CoreLocation,因为用户可能在其他国家/地区拥有帐户(例如在旅行时)。 【参考方案1】:

对于 ios 13+,请检查 SKStoreFront 类。它有一个countryCode,返回属于用户当前 App Store 区域的国家代码。

斯威夫特

if let storefront = SKPaymentQueue.default().storefront 
    print(storefront.countryCode) // Returns an Alpha-3 country code (USA, GBR etc.)

对象 C

[SKPaymentQueue defaultQueue].storefront.countryCode; // Returns an Alpha-3 country code (USA, GBR etc.)

您应该能够通过将 StoreKit 框架添加到您的项目来访问 SKStoreFront 实例,即使您的应用不提供任何购买。

欲了解更多信息,请查看:https://developer.apple.com/documentation/storekit/skstorefront

【讨论】:

【参考方案2】:

您可以使用应用内购买Store Kit 来实现此目的。

使用 SKProductsRequest 请求产品列表,然后检查返回的 SKProduct 的 priceLocale 以查看用户的 AppStore 是否是英国的。

【讨论】:

如果应用中没有应用内购买怎么办?

以上是关于如何以编程方式检查应用商店地区/国家/地区?的主要内容,如果未能解决你的问题,请参考以下文章

为特定国家/地区编写应用商店描述

如何将我在 iTunes 中的应用更改为我所在国家/地区的特定连接?

Google play 如何知道应用安装的国家/地区?

申请已批准 - 待定开发者版本 - 您所在的国家/地区目前无

确定 Play 商店国家/地区

在 AppStore 上,如何按地区以不同方式更新我的应用程序?