iTunes api,按包ID查找?

时间:2012-01-12 17:19:46

标签: iphone ios mobile itunes

有没有办法使用iTunes API根据独特的应用bundleId查找信息?我有一个iPhone应用程序,我想使用API​​检查用户是否有最新版本。使用搜索很糟糕,因为它模糊(可以返回大量结果)。我宁愿不必遍历结果集来寻找我的bundleId ..

我不是在设备方面寻找一种方法(不是客观的c)。我想在我的服务器上制作服务器端代码,当苹果进行API更改时,它会隐藏。

5 个答案:

答案 0 :(得分:45)

Apple更改了他们的API,并从网址中删除了语言代码,因此您应该只为您要查找的应用bundleId。 例如:

  

http://itunes.apple.com/lookup?bundleId=com.yelp.yelpiphone

此外,您可以将国家/地区参数添加到查询中,以获取特定国家/地区App Store的结果。

例如:

  

http://itunes.apple.com/lookup?bundleId=com.yelp.yelpiphone&country=de

不同App Store国家/地区之间的说明,用户评分和其他字段可能会发生变化。

答案 1 :(得分:8)

事实证明,您可以使用“Apple ID”代替捆绑ID,因为它也是每个应用的唯一身份。 “Apple ID”映射到http://itunes.apple.com/lookup服务中的“trackId”。

答案 2 :(得分:6)

您可以将包ID与搜索API 一起使用。只需将id替换为bundleId,如下所示:

http://itunes.apple.com/lookup?bundleId=com.facebook.Facebook

编辑: 正如@Roman Blachman所说,国家代码逻辑已发生变化。如果要将结果限制为特定国家/地区,请使用以下示例。

http://itunes.apple.com/lookup?bundleId=com.facebook.Facebook&country=us

答案 3 :(得分:3)

您可以使用库iVersion来查看用户是否在应用中拥有最新版本的应用。

  

<强> iVersion

     

用于动态检查Mac / iPhone App Store更新的库   应用程序内的应用程序,并通知用户有关新的应用程序   发布。也可以先通知用户应用程序中的新功能   他们在升级后推出的时间。

     

https://github.com/nicklockwood/iVersion

答案 4 :(得分:0)

感谢上述所有答案。这是Swift 4.2中的代码

guard let info = Bundle.main.infoDictionary,
            let identifier = info["CFBundleIdentifier"] as? String,
      let url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(identifier)") else { return }
    do {
      let data = try Data(contentsOf: url)
      guard let json = try JSONSerialization.jsonObject(with: data, options: [.allowFragments]) as? [String: Any] else {
        return
      }
      if let result = (json["results"] as? [Any])?.first as? [String: Any],
        let version = result["version"] as? String {
        print("version in app store", version)
      }
    } catch let erro as NSError {
      print(erro.description)
    }