有没有办法使用iTunes API根据独特的应用bundleId查找信息?我有一个iPhone应用程序,我想使用API检查用户是否有最新版本。使用搜索很糟糕,因为它模糊(可以返回大量结果)。我宁愿不必遍历结果集来寻找我的bundleId ..
我不是在设备方面寻找一种方法(不是客观的c)。我想在我的服务器上制作服务器端代码,当苹果进行API更改时,它会隐藏。
答案 0 :(得分:45)
Apple更改了他们的API,并从网址中删除了语言代码,因此您应该只为您要查找的应用bundleId
。
例如:
此外,您可以将国家/地区参数添加到查询中,以获取特定国家/地区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更新的库 应用程序内的应用程序,并通知用户有关新的应用程序 发布。也可以先通知用户应用程序中的新功能 他们在升级后推出的时间。
答案 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)
}