Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iTunesAPI,按包ID查找?_Iphone_Ios_Mobile_Itunes - Fatal编程技术网

Iphone iTunesAPI,按包ID查找?

Iphone iTunesAPI,按包ID查找?,iphone,ios,mobile,itunes,Iphone,Ios,Mobile,Itunes,是否有任何方法可用于根据唯一的应用程序绑定ID查找信息?我有一个iphone应用程序,我想使用API检查用户是否有最新版本。使用搜索很糟糕,因为它很模糊(可以返回很多结果)。我不想在结果集上迭代寻找我的bundleId 我不是在寻找一种在设备端实现这一点的方法(不是目标c)。我想在我的服务器上生成服务器端代码,当/如果apple更改API时隐藏该代码。您可以使用该库,查看用户是否在应用程序中拥有最新版本的应用程序 版本 用于动态检查Mac/iPhone应用商店更新的库 应用程序中的应用程序,并通

是否有任何方法可用于根据唯一的应用程序绑定ID查找信息?我有一个iphone应用程序,我想使用API检查用户是否有最新版本。使用搜索很糟糕,因为它很模糊(可以返回很多结果)。我不想在结果集上迭代寻找我的bundleId

我不是在寻找一种在设备端实现这一点的方法(不是目标c)。我想在我的服务器上生成服务器端代码,当/如果apple更改API时隐藏该代码。

您可以使用该库,查看用户是否在应用程序中拥有最新版本的应用程序

版本

用于动态检查Mac/iPhone应用商店更新的库 应用程序中的应用程序,并通知用户新的 释放。还可以在第一时间通知用户应用程序中的新功能 它们在升级后启动的时间


事实证明,您可以使用“Apple ID”而不是捆绑ID,因为每个应用程序都是唯一的。“Apple ID”映射到服务中的“trackId”。

您可以在搜索API中使用捆绑ID。只需将
id
替换为
bundleId
,如下所示:

编辑: 正如@Roman Blachman所说,国家代码逻辑已经改变。如果要将结果限制在特定国家,请使用以下示例


苹果已经更改了API,并从URL中删除了语言代码,因此您应该只为您正在寻找的应用程序添加
bundleId
。 例如:

此外,您可以将country参数添加到查询中,以获取特定国家/地区应用商店的结果

例如:


说明、用户评级和其他字段可能会在不同的应用商店国家/地区之间发生变化。

感谢所有上述答案。以下是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)
    }

对不起,我应该说我想在服务器端(不是objective c)用某种方法来实现它。我想在我的服务器上编写服务器端代码,当/如果苹果修改API时隐藏这些代码。我也会更新我的问题。事实证明他确实有一些服务器端代码(),但是他迭代了一个结果数组。所以一定不能通过bundle找到查找的方法。你在寻找一种方法来判断苹果何时从5.0升级到5.1吗?不。假设我在市场上有10个应用程序。所有应用程序当前都是v1.0。我为应用程序1发布了2.0版,其他应用程序仍然是1.0版。我希望能够利用web服务查找商店中存在的App 1的最新版本,以便通知用户升级。我不是一个iOS开发者,事实证明我可以只使用苹果id(iTunesLookupAPI中的“trackId”)。下面所有答案都是q。iVersion可以通过直接从设备上点击Apple服务来工作,或者你可以将其指向自己的web服务,然后在服务器端进行查找。您可以查看源代码来了解它在做什么,它基本上是对服务进行查询,返回JSON数据。知道这个服务是什么时候发布的吗?谢谢,不用客气。我不知道这个功能是什么时候引入的。我想知道为什么这会给我带来错误。这是另一个备选查询-itunes.apple.com/lookup?id=大约昨天,我们所有的请求都要求查找国家/地区是有效的。尽管您不必指定国家/地区代码作为参数,但我认为搜索不会搜索所有国家/地区代码。例如,请查看和之间的差异,这正是我要查找的!不幸的是,“bundleId”参数不区分大小写,因此在开发人员选择对其iOS和mac应用程序使用相同的捆绑ID但大小写不同的情况下,它无法区分媒体类软件(即iOS应用程序)和mac软件(mac应用商店应用程序)。e、 g.iOS应用程序com.palasoftware.MathBoard和Mac应用程序com.palasoftware.MathBoard。此外,添加任何其他参数以指定媒体类型或实体类型对此问题没有影响。