iOS - 了解应用商店国家

Mel*_*rne 8 app-store ios swift

我想在我的应用程序中(通过代码)知道我的用户在哪个应用程序商店(如英国/法国/西班牙等)。

我已经读到我们可以用语言环境做到这一点:https : //developer.apple.com/documentation/foundation/nslocale/1643060-countrycode

但我想用 Apple Store 来做。出于法律目的,我不想为欧洲人显示与美国人相同的内容。

有人已经做到了吗?谢谢 !

ban*_*isa 13

如果您使用的是 iOS 13+,这将为您提供商店的 3 个字母国家/地区代码:

import StoreKit

let country = SKPaymentQueue.default().storefront?.countryCode
Run Code Online (Sandbox Code Playgroud)

有关其用法的更多信息可以在SKStoreFront 文档中找到。

更新:有时,此方法返回 nil,这就是为什么 storefront 是可选的。所以它不是100%可靠。我与数千名用户一起使用,并且 95% 的时间都可以正常工作。但我不完全确定在什么情况下它为零。


D. *_*nco 8

您无法限制特定国家/地区的 IAP(因此您没有有关所使用的 Apple Store 的信息)。您可以做的是通过检查国家/地区 ID 来禁用/启用项目。

有不同的检查方法,对我来说最好的方法是检查用户运营商 ID。

例如:

func checkCellularNumber() -> Bool {
    let networkInfo = CTTelephonyNetworkInfo()
    guard let info = networkInfo.subscriberCellularProvider else {return false}
    if let carrier = info.isoCountryCode {
        print("Carrier code = \(carrier)");
        return true
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)


小智 8

从 iOS13SKStorefront类属性countryCode可用于获取代表与 App Store 店面关联的国家/地区的三字母代码。

对于低于 13 的 iOS 版本,唯一可行的解​​决方案是priceLocaleSKProduct.

  • 即使我的应用程序中没有应用内购买功能,我也可以使用它吗? (2认同)