2012-05-23 3 views
9

Ich habe ein Testbenutzerkonto, das zum Testen von App-Käufen gut geeignet ist.Löschen eines Einkaufs in einem In-App-Kauftest Benutzerkonto

Ich möchte einen Kauf von diesem Konto "löschen", damit ich den Kauf mehrere Male testen kann. Gerade jetzt, wenn ich versuche zu kaufen, sagt es logisch, dass der Testbenutzer das fragliche Produkt bereits gekauft hat.

Kann ich einen Einkauf von einem Testbenutzerkonto löschen, sodass ich den gleichen Kauf mehrmals testen kann. Ich würde es hassen, wenn ich jedes Mal einen neuen Testbenutzer erstellen müsste, wenn ich den Kauf testen möchte.

BEARBEITEN: Jedes Mal, wenn ich versuche zu kaufen, bekomme ich einen Dialog mit "Sie haben dies bereits gekauft. Tippen Sie auf OK, um es erneut kostenlos herunterzuladen".

+0

Kann ich noch einmal klären: 1) Ist das In-App-Kauf oder Kauf im App Store? 2) Wenn dies In-App-Kauf ist, wie weiß die App, dass Sie den Artikel gekauft haben? Der Staat muss irgendwo gespeichert werden. – nhahtdh

+0

Hilft diese Frage: http://stackoverflow.com/questions/7604578/how-can-ri-set-sandboxed-in-appurchases-oni-ios-for-testing? – borrrden

+0

Ich kenne nur 3 Möglichkeiten, um Daten zu speichern: iCloud, auf dem Gerät und App eigenen Server. – nhahtdh

Antwort

8

Wenn Sie es wirklich sauber testen möchten, müssen Sie einen anderen Testbenutzer erstellen. Ich sehe jedoch nicht die Notwendigkeit dafür. Das erneute Laden eines In-App-Kaufs ist ein nahezu identischer Code-Flow. Die tatsächliche Kauf- und Verifizierungslogik ist nicht Teil Ihrer Anwendung, und ein Benutzer, der mehrmals etwas kauft, ist nicht etwas, was passieren sollte (es sei denn, Sie geben an, dass es sich um diese Art von Verbrauchsmaterial handelt). Wenn es für das Redownloading verwendet wird, kann davon ausgegangen werden, dass es für den ersten Kauf funktioniert.

Sie haben keinen Zugriff auf diese Daten. Wenn Apple einen Weg zum Zurücksetzen von Käufen aufzeigte, riskierten sie, sich einem Sicherheitsrisiko auszusetzen, da ich annahm, dass ihr Sandbox-Server-Code praktisch identisch mit ihrem Produktionscode ist (andernfalls wäre die Sandbox bedeutungslos). Da sich die Daten auf den Apple-Servern befinden, die mit einem iTunes-Konto verknüpft sind, können sie sich über mehrere Geräte erstrecken.

Eine alternative Idee wäre, den In-App-Kauf von Ihrem iTunes Connect zu löschen und einen neuen zu erstellen.

+3

** [...] "Redownload eines In-App-Kaufs ist ein nahezu identischer Code-Flow." [...] ** Ich wollte nur reinhören und erwähnen, dass diese Aussage zwar für einen bestimmten Transaktions-Handler gilt. .es gilt nicht unbedingt für den App-Code selbst, da ein Erstkauf wesentlich anders behandelt werden könnte als ein Altkauf. – Questor

+1

Was ist mit Quittungsüberprüfungscode? Sie müssen Szenarien testen, in denen kein Produkt vorhanden ist und umgekehrt mit Ihrer Code-Empfangsprüfung. –

+0

@theReverend Dies könnte etwas sein, das Sie zum Nachdenken brauchen (d. H. Zu Testzwecken haben Sie eine Methode, die jedes Mal JA zurückgibt und eine, die jedes Mal NEIN zurückgibt). – borrrden

1

Wenn der Typ Ihres In-App-Kaufs Verbrauchsmaterial ist, können Sie Ihre App einfach neu installieren. Wenn Ihr In-App-Kauf nicht-cosumable ist, müssen Sie zusätzliche Testbenutzer erstellen.

+0

Dürfen wir den IAP-Typ von 'Consumable' in' Non-Consumable' ändern, bevor er in Appstore freigegeben wird? Es wäre die Lösung zum Testen. – brigadir

+0

Wir können den IAP-Typ in iTunesConnect nicht ändern, nachdem wir sie erstellt haben. Wir können einfach zusätzliche 'verbrauchbare' IAPs für Testzwecke erstellen. –