2009-12-04 8 views
11

Diese Frage ist ein wenig anders als die anderen, die ich hier gefunden habe. Mein In App StoreKit funktioniert, ich kann Produkte in meinem Shop erfolgreich auflisten. Ich habe die Apple-Dokumentation gelesen und meine Frage nie gesehen (ich habe sie vielleicht verpasst).StoreKit, um alle Produkt IDs zurückzugeben

Mein Kunde (gemeinnützig) möchte Spenden über seine App annehmen können. Ich möchte sie in die Lage versetzen, spontan neue Spendeereignisse hinzuzufügen, ohne dass die Nutzer ihre App aktualisieren müssen. Was ich meine ist, dass sie ein spezielles "Helfen Sie uns, eine Veranstaltung an diesem bevorstehenden Tag der Arbeit zu sponsern" haben und Spenden für diesen Fall annehmen.

ich zur Zeit lese Produkte wie folgt aus:

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

Das bedeutet, wenn das Arbor Day Ereignis kommt, werde ich ein Update zur Ausgabe müssen die umfassen @ „arborSponsor“ in meinem Anforderungsliste. Wie kann ich jedes Produkt unter meinem Paket anfordern?

Ich habe versucht mit @ "com.thedomain. *" Und einige andere Vermutungen ohne Glück. Ist es möglich, die ganze Liste zurückzugeben, fehlt mir etwas sehr einfaches? Vielen Dank!

Antwort

21

Sie müssen leider alle IDs für Produkte angeben, für die Sie Informationen erhalten möchten, soweit ich sehen konnte.

Eine Möglichkeit, dies zu umgehen, besteht darin, Ihre Produkt-IDs auf einem Remote-Server zu speichern und anschließend eine Anforderung an den Server zu senden, die aktuellen IDs beim Laden des Geschäfts abzurufen.

Das würde Ihnen erlauben, Produkte von der itunes Seite der Dinge hinzuzufügen oder zu entfernen und keine binären Aktualisierungen Ihrer App einzureichen.

Ich denke, Sie könnten wahrscheinlich ein glückliches Medium finden, indem Sie die Liste der Produkte in der iPhone App zwischenspeichern und dann einfach eine schnelle Anfrage machen, um zu sehen, ob es irgendwelche Änderungen gegeben hätte, so dass Sie nicht einmal die vollständige Liste bekommen müssten jedes Mal.

Dies könnte mit einer einfachen http API auf der Serverseite oder auch nur eine XML-Datei, die Sie herunterziehen.

Von dem In-App-Kauf Programming Guide

Apple empfiehlt Sie Produkt Identifikatoren von Ihrem Server abrufen, sondern als sie in einer Eigenschaft Liste darunter. Dies gibt Ihnen die Flexibilität neue Produkte ohne Aktualisierung Ihre Anwendung hinzuzufügen.

+1

Danke!Das war, wovor ich Angst hatte. Hoffentlich gibt mir das Grund, sie dazu zu bringen, einen Server dafür zu bekommen. – ryanday

2

Ich habe das gleiche Problem, aber ich denke, ich habe einen Weg, es zu lösen, indem ich mit den Produkt-IDs vorausschaue. Anstatt jede Produkt-ID etwas wie "goldSponsor" zu nennen, nummerieren Sie einfach "1", "2", "3" ... für so viele, wie Sie hinzufügen möchten. Setzen Sie den Namen auf "Gold Sponsor" und die Beschreibung auf was auch immer Sie wollen. Wenn Ihre App gestartet wird, fordern Sie die ersten N sequenziellen Produkt-IDs an. Wenn sie alle als gültig zurückgegeben werden, fordern Sie weitere N Produkt-IDs an, bis Sie ungültige IDs erhalten, an denen Sie fertig sind.

Ich plane dies mit Apple gehosteten Inhalten zu tun. Ich erwäge auch, das Beschreibungsfeld für das Produkt zu verwenden, um detaillierte Informationen über die Daten zu speichern, die ich herunterlade (in meinem Fall die Eckkoordinaten einer Karte). Ich werde weiterhin die vollständige "com.company.product.1" für jede ID verwenden und sie von dort fortlaufend nummerieren.

+0

err ... aber nicht der Moment, den Sie löschen/unklar für den Verkauf einer ID Ihre Logik wird aufhören zu arbeiten. –

Verwandte Themen