【问题标题】:Programmatically detect which app store the app was downloaded from以编程方式检测应用是从哪个应用商店下载的
【发布时间】:2014-04-24 20:49:18
【问题描述】:

我还没有找到关于这个的帖子,所以我必须问:有没有办法以编程方式检测应用程序是从哪个应用商店下载的? (即:德国应用商店)

我不想要求位置权限来检测用户位置,但如果无法检测应用商店,那么我可能必须这样做。

【问题讨论】:

  • 您找到更好的解决方案了吗?因为人们可能不会将区域设置设置为他们的居住国家/地区,而是更喜欢他们的偏好。

标签: ios


【解决方案1】:

如果您有应用内购买,您可以查看SKProductpriceLocale,它会为您提供用户当前登录的商店(货币和国家/地区)。

Apple 在 10:30 在WWDC2014 Session 303 Optimizing In-App Purchases 推荐了这个。

【讨论】:

    【解决方案2】:

    我认为您会使用用户的当前语言环境来检测他们所在的国家/地区……但有时它可能会失败,所以我不太确定检测 AppStore 的不是 100% 有效的方法是否适用你。

    你需要打电话

    [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]
    

    另外,请参阅以下主题中的讨论,其中一些是旧的,但也可能会帮助您找到替代解决方案Link1Link2

    【讨论】:

    • 谢谢,这就是我要找的:D
    • @OnesAndZeros 很高兴知道它很有帮助!你能接受我的回答有效吗?谢谢!
    • 它通常相同,但并非总是如此。您正在返回系统语言设置,而不是应用商店县设置。他们不必匹配
    • 这不是正确的解决方案。您正在检查系统语言设置,而不是应用商店国家/地区设置。他们经常匹配,但并非总是如此。有许多用户出于各种原因使用其他商店(例如,获取本地商店中不可用的内容)。
    • 抱歉,投反对票,因为它不是给定问题的解决方案。地区/国家代码可能与 App Store 不同。就我而言,他们是意大利和德国。 AFAIK,无法检测 App Store 区域。
    【解决方案3】:

    NSLocale 的答案是错误的,因为系统语言设置不必与应用商店国家/地区匹配。一些用户在国外商店购买是因为有更多的内容可用。 使用 StoreKit/SKProduct 可能有效,但仅适用于商店中分发的应用程序。

    如果您在 Mac 上,您可以直接解析 Mac App Store 的配置文件,如下所示: https://github.com/core-code/CoreLib/blob/master/Mac/JMHostInformation.m 在“appStoreCountryCode”方法中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2013-07-05
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多