2009-12-04 5 views
11

Cette question est un peu différente des autres que j'ai trouvées ici. My In App StoreKit fonctionne, je peux énumérer les produits dans mon magasin avec succès. J'ai parcouru la documentation d'Apple et n'ai jamais vu ma question adressée (j'ai peut-être manqué).StoreKit pour retourner tous les ID de produit

Mon client (sans but lucratif) aimerait être en mesure d'accepter des dons via son application. Je voudrais leur laisser la possibilité d'ajouter de nouveaux événements de dons à la volée sans que les utilisateurs aient à mettre à jour leur application. Ce que je veux dire, c'est qu'ils peuvent avoir un message spécial «Aidez-nous à sponsoriser un événement lors de la prochaine Journée de l'arbre» ​​et acceptez les dons particuliers à cette cause.

Je lis actuellement des produits comme celui-ci:

SKProductsRequest *request= 
     [[SKProductsRequest alloc] initWithProductIdentifiers: 
      [NSSet setWithObjects: @"goldSponsor", @"silverSponsor"]; 

Cela signifie que si cet événement Arbor Day arrive, je vais devoir publier une mise à jour pour inclure le @ « arborSponsor » dans ma liste de demandes. Comment puis-je demander chaque produit sous mon lot?

J'ai essayé d'utiliser @ "com.thedomain. *" Et d'autres suppositions sans avoir de chance. Est-il possible de retourner toute la liste, est-ce qu'il me manque quelque chose de très simple? Merci!

Répondre

21

Vous devez malheureusement fournir tous les identifiants pour les produits pour lesquels vous souhaitez obtenir des informations pour autant que je puisse voir. Une façon de gérer cela est de stocker vos ID de produit sur un serveur distant, puis de demander au serveur de retirer l'ensemble actuel d'ID lors du chargement du magasin.

Cela vous permettrait d'ajouter ou de supprimer des produits du côté itunes des choses et de ne pas avoir à soumettre de mises à jour binaires à votre application.

Je pense que vous pourriez probablement trouver un juste milieu en mettant en cache la liste des produits dans l'application iphone et ensuite faire une demande rapide pour voir s'il y avait eu des changements afin que vous n'ayez même pas la liste complète chaque fois. Cela peut être fait en utilisant une API http simple du côté serveur ou même juste un fichier xml que vous arrêtez.

De l'In App Purchase Guide de programmation

Apple vous recommande de récupérer le produit identifiants de votre serveur, plutôt que de les inclure dans une propriété liste . Cela vous donne la flexibilité pour ajouter de nouveaux produits sans mettre à jour votre application.

+1

Merci!C'était ce dont j'avais peur. J'espère que cela me donnera des raisons de les pousser à avoir un serveur pour ça. – ryanday

2

J'ai le même problème mais je pense que j'ai un moyen de le résoudre en planifiant à l'avance avec les ID de produit. Au lieu de nommer chaque ID de produit quelque chose de spécial comme "goldSponsor", il suffit de les numéroter "1", "2", "3" ... pour autant que vous voulez ajouter. Définissez le nom de "Gold Sponsor" et la description de ce que vous voulez. Lorsque votre application démarre, demandez les N premiers identifiants de produit séquentiels. Si elles sont toutes retournées comme valides, demandez un autre N identifiant de produit jusqu'à ce que vous obteniez des ID invalides à quel moment vous avez terminé. Je prévois de le faire avec du contenu hébergé Apple. J'envisage également d'utiliser le champ de description du produit pour encoder des informations détaillées sur les données que je télécharge (dans mon cas, les coordonnées de coin d'une carte). J'utiliserai toujours l'intégralité de "com.company.product.1" pour chaque ID et les numérotant séquentiellement à partir de là.

+0

err ... mais n'est pas le moment que vous supprimez/ne clairs pour la vente aucun id votre logique cessera de travailler. –