Einkäufe aus der IOS In-App-Kauf-Sandbox für einen Testbenutzer löschen
Hat jemand irgendwelche Ideen auf, wie ein reset und/oder löschen der IOS-in-app-Kauf sandbox? Ich habe eine app, die ich testen mit der sandbox und ich möchte beim testen von neuen Anschaffungen, ohne zu müssen, erstellen Sie einen neuen test-Benutzer jedes mal, wenn ich etwas kaufe. Wenn ich dies nicht tun, dann habe ich (natürlich) immer die Meldung bekommen, dass die in-app-Kauf Artikel wurde bereits gekauft, wenn ich auf meine app kaufen-button.
InformationsquelleAutor der Frage RandomIOSDeveloper | 2011-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
IMO gibt es 3 Dinge, die Sie tun können, um das testen von nicht-Verbrauchsmaterialien erträglich:
Können Sie haben viele test-Konten, die in Zusammenhang mit einer E-Mail. Gmail beispielsweise ermöglicht Ihnen das hinzufügen von "plus" - saite auf die E-Mail -erstellen Sie Aliase für eine Adresse: so
[email protected]
und[email protected]
beide wirklich nur gehen, um[email protected]
. Wahrscheinlich auch anderen E-Mail-hosts das gleiche zu tun. Wenn Sie eine test-Konto Sie müssen sich vorstellen: Vorname, Nachname, E-Mail-Adresse, Passwort, geheime Frage, geheime Antwort, das Datum der Geburt und im iTunes store Land. Sie können genau die gleichen Daten (einschließlich Passwort) für[email protected]
und[email protected]
und Sie haben zwei test-accounts. Schließlich, in Ihrem[email protected]
Posteingang erhalten Sie zwei Verifizierungs-E-Mails von Apple zur Bestätigung der beiden test-accounts.Sagen, dass Sie einen non-consumable mit Produkt-ID @"Extra_Levels". Statt zu schreiben @"Extra_Levels" in allen Methoden (requestProduct, purchaseProduct, ...), schreiben Sie einfach
PRODUCT_ID1
und auf einige header-Datei setzen#define PRODUCT_ID1 @"Extra_Levels"
(ohne Semikolon!), dann wird der Präprozessor die Suche PRODUCT_ID1 und ersetzen es für die @"Extra_Levels". Dann erstellen Sie eine neue non-consumable namens @"Extra_Levels_01" und ändern Sie die #define-so gut wie das zurücksetzen der Käufe für alle Testbenutzer.Als appsmatics darauf hingewiesen, können Sie testen das richtige Verhalten von Ihrem code, wenn Sie kaufen einen non-consumable in-App-purchase, indem Sie zunächst mit einem sich verbrauchenden IAP (so, dass die test Benutzer können so viele Einkäufe wie erforderlich), um loszuwerden, einige bugs. Natürlich sollten Sie auch testen, den code mit der echten non-consumable in-App-purchase nach, dass.
InformationsquelleAutor der Antwort Roberto Canogar
Können Sie dies nicht tun, soweit ich weiß. Der sandbox-backend funktioniert wie ein reales Konto-- sobald es gekauft ist, ist es gekauft (und damit können Sie test-restore). Sollten Sie die die meisten von Ihre Entwicklung mit den store-Sachen shimmed aus, und dann, wenn du zum testen es für real, erwarten Sie einfach erstellen Sie einige test-Konten.
InformationsquelleAutor der Antwort Ben Zotto
Ich habe 2 in-app-Kauf-Artikel.
1 für die Produktion.
und die anderen zum testen. wenn ich auf "clear" löscht man den in-app-Artikel, und erstellen Sie neue ein (15 Sekunden in itunes connect und 1 Sekunde zum ändern der Produkt-id im code)
wenn ich keine Notwendigkeit zu testen "neue user", ich nutze die Herstellung in-app-Artikel.
InformationsquelleAutor der Antwort user1105951
Gut, technisch brauchen Sie nicht.
Wenn Sie
SKPaymentTransactionStateRestored
ist es 100% äquivalent zu den app store-die überprüfung der Benutzer und die Gewährung von ihm den Kauf. Ich habe einen Schalter, wie:Die Frage, nachdem Sie Ihre app-Logik /Rücknahme der Kauf ist einfach: wenn Sie caching-Käufe im Schlüsselbund löschen Sie Ihrem Schlüsselbund. Wenn Sie es tun, einige andere, wie Sie, ändern Sie einfach Ihren lokalen app-Zustand zu tun, wie der Benutzer nie gekauft haben, bevor. Der Antrag auf den Kauf-dialog ist immer noch genau das gleiche, der einzige Unterschied ist, wenn Sie einen punch-JA, es gibt Sie
SKPaymentTransactionStateRestored
stattSKPaymentTransactionStatePurchased
.InformationsquelleAutor der Antwort bobobobo
Löschen der app und Neuinstallation funktioniert auch für sandbox-Tests. Hängt davon ab, die app ist klar, aber ich Teste ein Abonnement-basierte app, die nur Einkäufe beim anmelden in dem moment, so war es die einfachste Lösung.
InformationsquelleAutor der Antwort Christopher Larsen
Check-out SimStoreKit. Es ist eine "simulierte version des iPhone StoreKit, für die Prüfung speichern UIs auf dem iPhone Simulator, oder sogar auf dem Gerät, ohne sich IAP in Verbindung."
SimStoreKit Läden Einkäufe in den Benutzervorgaben unter dem Schlüssel
ILSimSKTransactions
. So deaktivieren Sie alle Einkäufe, die Sie tun können:Auf dem simulator, Sie können einfach entfernen Sie Ihre app und installieren Sie es erneut.
Habe ich erfolgreich verwendet SimStoreKit zu Debuggen mein app store vor, bevor der Test mit der sandbox. Die Schönheit dieser Bibliothek ist, dass es sein set-up zu verwenden, die der gleichen Klasse Namen wie die echte StoreKit framework (indem
#define ILSimReplaceRealStoreKit 1
vor#include <ILSimStoreKit.h>
).In source-Dateien, in denen ich zugreifen müssen StoreKit, habe ich auch diese header-Datei:
Dies hat den Effekt, mit SimStoreKit, wenn ich die Ausführung auf dem simulator und dem echten StoreKit, wenn ich auf dem Gerät ausgeführt werden.
InformationsquelleAutor der Antwort Emile Cormier
Einfach weiter mit dem gleichen test-account, Wiederherstellung von Käufen im Gegensatz zum Abschluss neue. Nachdem alle, ob Sie eine Neuanschaffung oder die Wiederherstellung einer alten, IHRE APP wird das gleiche tun (zumindest anfangs, vielleicht der Benutzeroberfläche wird aktualisiert, anders bei der Fertigstellung). Apple sind die Leute, Dinge zu behandeln, unterschiedlich in den verschiedenen Situationen - don ' T worry about it.
Platzieren Sie Ihre Lieferung Logik in der SKPaymentTransactionStateRestored Fall in dieser Methode der Umsetzung für die Prüfung:
Dann werden Sie sicher zu stellen, dass die Lieferung Logik in der SKPaymentTransactionStatePurchased Fall.
Am Ende, weil die meisten von uns sind zwanghafte in unterschiedlichem Ausmaß, tun, einen letzten test mit einem frischen account (keine große Sache, um ein zweites für absolute Sicherheit).
Die Letzte Sache zu beachten: prüfen Sie die apple-position. Wenn es ein problem mit dem Entwickler haben, Zeit zu verschwenden, erstellen von Dutzende oder Hunderte von Konten zu testen, IAP gründlich, Sie hätten das problem gelöst. Es ist kein problem.
InformationsquelleAutor der Antwort ArthurVonBabylon
Nicht wirklich eine Antwort, aber Hilfe in der Erklärung.
Dachten, dass da die Datei die heruntergeladen werden sollen, nur vielleicht, könnte es gelöscht werden. Einfache Funktion unten versucht, Swift (3.0):
Bekam folgende Antwort:
Erhalt URL: file:///private/var/mobile/Containers/Data/Application/7A2-App-Related-Number-67/StoreKit/sandboxReceipt
FEHLER: "sandboxReceipt" konnte nicht entfernt werden, weil Sie nicht über die Berechtigung zum Zugriff.
Obwohl der code zeigt, zieht es die Quittung aus dem app-bundle, hatte irgendwie gedacht, dass das bundle war statisch, und so den Eingang vielleicht noch löschbar. Ich bin sicher, es gibt Sicherheit Gründe, warum das ganze funktioniert auf diese Weise - so endete mit löschen der app auf die (re)-test-Fall, der sich von keinem Empfang zum neuen Eingang heruntergeladen.
InformationsquelleAutor der Antwort anorskdev
alternativ erstellen Sie mehrere test-user-Lösung, die Sie erstellen können mehrere Tests in-app-Käufe in iTunes anschließen, dann brauchen Sie nicht zu ändern, einen Benutzer-account.
InformationsquelleAutor der Antwort Adobels