Existe-t-il un moyen d'utiliser API iTunes pour rechercher des informations sur la base de l'application unique bundleId? J'ai une application iphone, je veux utiliser l'API pour vérifier si l'utilisateur a la dernière version. Utiliser la recherche est nul, car son flou (peut renvoyer beaucoup de résultats). Je préfère ne pas avoir à répéter l'ensemble de résultats à la recherche de mon bundleId ..
Je ne cherche pas un moyen de le faire du côté de l'appareil (pas l'objectif C). Je voudrais faire du code côté serveur sur mon serveur qui se cache lorsque/if Apple fait un changement d'API.
Apple a changé son API et supprimé le code de langue de l'URL, vous ne devez donc que le bundleId
pour l'application que vous recherchez. Par exemple:
De plus, vous pouvez ajouter le paramètre country à la requête, pour obtenir des résultats pour l'App Store d'un pays spécifique.
Par exemple:
http://iTunes.Apple.com/lookup?bundleId=com.Yelp.yelpiphone&country=de
La description, la note des utilisateurs et d'autres champs peuvent changer entre les différents pays de l'App Store.
Il s'avère que vous pouvez utiliser l'ID Apple au lieu de l'ID de bundle car il est également unique par application. Le "Apple ID" correspond à "trackId" dans le service http://iTunes.Apple.com/lookup .
Vous pouvez utiliser un ID de bundle avec API de recherche . Remplacez simplement id
par bundleId
, comme suit:
http://iTunes.Apple.com/lookup?bundleId=com.facebook.Facebook
EDIT: Comme l'a déclaré @Roman Blachman, la logique du code pays a changé. Si vous souhaitez limiter vos résultats à un pays spécifique, utilisez l'exemple suivant.
http://iTunes.Apple.com/lookup?bundleId=com.facebook.Facebook&country=us
Vous pouvez utiliser la bibliothèque iVersion pour voir si l'utilisateur dispose de la dernière version de l'application depuis l'application.
iVersion
Bibliothèque pour vérifier dynamiquement les mises à jour des applications Mac/iPhone App Store à partir de l'application et informer les utilisateurs de la nouvelle version. Peut également informer les utilisateurs des nouvelles fonctionnalités de l'application lors du premier lancement après une mise à niveau.
Merci à toutes les réponses ci-dessus. Voici le code en 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)
}