Frage zu In-App-Käufen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ferdinand schrieb:

    Viele Apps bieten ja die Funktion einen In-App-Kauf zu machen um bestimmte Features frei zu schalten.

    Gibt es die Möglichkeit sowas auch ohne Datenbank und co. anzubieten?
    Dir auch ein frohes Neues :)

    IAP hat mit Datenbanken nichts zu tun: Letztlich muss in Deiner App ein "Verkaufsbeleg" (das sogenannte Receipt) überprüft werden. Apple bietet hier die Möglichkeit der remote Überprüfung, die im Backend über Apple's und eigene Server erfolgen kann. Das macht bei einer aufwendigen Verwaltung der Verkäufe absolut Sinn - und lässt Dich vielleicht an eine DB denken, ist aber keinesfalls notwendig:

    Du kannst erweiterte Funktionen in Deiner App freischalten, wenn eine o. g. Receipt-Überprüfung ergeben hat, dass der Benutzer den entsprechenden IAP erworben hat. Das kann lokal in der App erfolgen, allerdings ist diese (kryptografische) Überprüfung ein etwas größeres Thema, ich nutze dafür Receigen und binde OpenSSL statisch ein.

    Zusätzlich musst Du in der App natürlich die Möglichkeit des Kaufs und des Wiederherstellens von Käufen bieten...

    Ich biete alle meine Apps als "Freemium"-Demos mit IAP an und finde das Vorgehen für beide - Entwickler und Benutzer - den optimalen Weg ... wenn das ganze nicht exzessiv für x kleine Funktionen benutzt wird.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MCDan schrieb:

    Lässt sich ein IAP so leicht manipulieren bzw. faken, dass eine Überprüfung des Receipt überhaupt erforderlich ist?
    Ich kann nicht beurteilen, wie leicht man einen IAP faken könnte ... und wage zu bezweifeln, dass meine Zielgruppe (oder andere Akteure) bei meinen Apps dazu Interesse hätten.

    Allerdings musst Du das Receipt ja schon interpretieren können, um einen IAP überhaupt zu identifizieren, auch ohne Validierung der Signatur, Ausstellerzertifikate etc.

    Mit der Begründung, fertige Lösungen würden den notwendigen Schutz vor Reengineering schwächen, bietet Apple keine "Out-of-the-box"-Lösung an. Ich wollte mir die Zeit (und potentielle Fehler) einer eigenen Implementierung sparen und setzte daher auf die o. g. Software...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ich gebe euch mal ein wenig mehr Kontext zu meiner Anfrage:

    Aktuell habe ich in meiner App, die wie ich selbst zugeben muss wirklich einfach ist, am unteren Bildschirmrand Werbung vom Google-AdMob Netzwerk eingeblendet.
    Da diese aber nicht wirklich rentabel ist und ich somit wohl Jahre auf einen neuen Mac sparen muss, plane ich jetzt eine "Premium" Version in die App einzufügen.

    Für 0.99 Euro wird dann die Werbung entfernt und man schaltet ein Paar neue Features frei.

    Gerne würde ich das so simpel wie möglich halten, bedeutet eine einfache if-Abfrage welche die Werbung entweder zulässt oder eben blockiert.
    Getestet habe ich das ganze schon mit verschiedener Werbung für bestimmte Länder.

    Ist es möglich nach so einem Kauf eine Variable in den UserDefaults speichern zu lassen?


    Grüße

    Ferdi
  • Ferdinand schrieb:

    Ist es möglich nach so einem Kauf eine Variable in den UserDefaults speichern zu lassen?
    Theoretisch könntest Du natürlich den IAP anbieten und bei Erfolg nur ein Flag in den UserDefaults setzen ... das ist aber zu kurz gedacht:

    Zum einen ist das Umgehen des IAPs eine Gefahr - bei 0,99€ vielleicht überschaubar. Wichtiger ist aber, dass Du ein Wiederherstellen der Käufe von "non-consumable goods" bieten musst: Wie sonst sollte jemand seinen Kauf auf einem neuen Gerät oder nach einer Neuinstallation nutzen können? Das geht nur mit einer Receipt-Validierung.

    Alternativ könntest Du ja eine Spende als "consumable good" erbitten: Dann kannst Du Dir diesen Umstand sparen und ich finde es - bei kleinen Apps - eine sinnvolle Alternative zu Werbung. Bei der deutschen Sparmentalität wird dabei aber kein neuer Mac abfallen...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ich bleibe aber dabei, dass ein Speichern der Käufe in den UserDefaults eine schlechte Idee ist. Spätestens wenn die iOS-App auf einem M1-Mac läuft, kommt jemand auf die Idee, die .plist einfach zu manipulieren (oder an andere zu verteilen).

    Die Notwendigkeit einer Receipt-Validierung haben einige App-Publisher in den Anfangstagen des App-Stores auf die harte Tour lernen müssen...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von MyMattes () aus folgendem Grund: Link zu Angry Birds (MAS) ergänzt