2009-10-16 3 views
19

Ich habe vorhandenen Benutzer eines für App im App Store bezahlt. Ich möchte die App in eine kostenlose App mit freischaltbaren Funktionen umwandeln. Gibt es eine Möglichkeit, meine bestehenden Nutzer in diese neue kostenlose Version zu rollen, die ein „Upgrade“, so die vorhandenen Benutzer bezahlt ermöglicht so behandelt werden, wenn sie bereits bezahlt hat das Upgrade? ODER, wie ich es erwarte, müssen wir zwei separate Codebasen pflegen als App-Entwicklung schreitet voran - anstatt unsere bestehenden Kunden zu ärgern, indem sie sie zwingen, wieder zu kaufen?Transition eines mit für App kostenlose Version bezahlte bestehende In App Purchase

mir bewusst bin, dass zunächst wird es prolly nicht viele maßgebliche Antworten auf diese Frage sein, wie die von Apple nur heute hat begonnen Unterstützung ermöglicht für In-App-Käufe aus kostenlosen Apps ...

+0

Derzeit nicht, nur wie es keine regelmäßige Aktualisierung gibt. Würde gerne eine Antwort haben. – JoePasq

+0

@Meltemi: Also, endlich, was für Ihr oben genanntes Problem umgesetzt hat. Ich bin auch auf der gleichen Stufe für eine meiner App. Informieren Sie uns bitte. – pratik

+0

Ist es möglich, dass wir über Code auf die Kaufhistorie für die App zugreifen können und basierend auf dem Datumsstempel eine Entscheidung treffen? – HariKJ

Antwort

2

Sie shouldn Brauche keine zwei separaten Codebasen - benutze conditional compilation und baue zwei Ziele.

+2

würde ich dazu hinzufügen und eine Marketing-Gelegenheit machen - mit zwei Ausgängen verwenden, eine Code-Basis, sondern umfassen eine Art bling oder Besonderheit für die Menschen, die kaufte die App direkt, die nicht einmal von der kostenlosen Version freigeschaltet wird.Das würde die Leute, die bereits gekauft haben, als etwas Besonderes empfinden, anstatt plötzlich das unerwünschte Stiefkind zu sein. –

5

Eine mögliche Lösung könnte darin bestehen, Code in ein neues Update Ihrer kostenpflichtigen Anwendung einzubetten, das den Schalter umschaltet, mit dem Sie bezahlte Kunden identifizieren (sei es in einer Eigenschaftsliste oder in einer anderen Form). Wenn Sie Ihren vorhandenen, bezahlten Kunden genügend Zeit zum Upgrade geben, sollten sie als bezahlt markiert werden. Dann machen Sie Ihre kostenpflichtige Version zur kostenlosen/kostenpflichtigen Upgrade-Version und entfernen Sie Ihre vorhandene "Lite" -Version aus dem Store. Neue Kunden müssen den In-App-Kauf verwenden, um die Vollversion freizuschalten. Bestehende Kunden werden jedoch als bereits bezahlt anerkannt.

Ein Problem damit ist, wie Sie alle Ihre bestehenden Kunden auf ein Upgrade auf die Zwischenversion bringen, die den "bezahlten" Switch rechtzeitig umschaltet, um die Anwendung auf das kostenlose/kostenpflichtige Upgrade-Modell zu migrieren.

+4

Ich dachte darüber nach, erkannte aber, dass jemand, der Ihre App löschte und neu installierte, in die "Lite" -Version zurückkehrte. Vielleicht passiert das selten, aber ich wäre verärgert, wenn es mir passiert wäre. –

+0

Ja, ich denke, Sie möchten wahrscheinlich auch eine serverseitige Komponente dazu haben. Auf diese Weise wird eine Art eindeutige ID mit einem Server für den zuvor bezahlten Kunden protokolliert, und die kostenlose Anwendung könnte dies auch prüfen, wenn die lokale Kopie nicht als bezahlt markiert wurde. Sie möchten jedoch nicht nur eine Geräte-ID für die eindeutige ID verwenden, da die kostenpflichtige Version auf ein neues Gerät übertragen werden soll, auf das ein Benutzer in Zukunft möglicherweise aktualisieren kann. Es ist ein kniffliges Problem. –

+0

Ich schrieb eine einfache Bibliothek, um dies zu handhaben https://github.com/dengzhp/FirstVersion – freestyler

5

Gibt es eine Möglichkeit, dass Sie feststellen können, ob Ihre App schon einmal ausgeführt wurde? (Wie Einstellungen, die Sie beim Verlassen schreiben, Datendateien erstellt, Datumsstempel ersten Lauf?)

wenn ja, könnten Sie Code in das Upgrade setzen wie:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if (nil == [defaults objectForKey:@"app_v2_has_been_run"]) { 
    if (nil == [defaults objectForKey:@"some_key_v1_makes"] { 
     // they never had v1 of your app 
    } else { 
     // they had v1 of your app, so unlock some stuff for them 
    } 
    [defaults setObject:[NSDate date] forKey:@"app_v2_has_been_run"]; // or whatever 
} 
+0

Klingt wie eine gute Option, überrascht, dass Sie keine Kommentare dafür oder dagegen gehabt haben. Haben Sie eine +1 –

+1

Vorbehalt hier ist, dass, wenn der Benutzer neu installiert (aus irgendeinem Grund) oder fügt ein neues Gerät, haben sie nicht diese Standardeinstellung. Wenn Sie dies in iCloud speichern, können Sie es vielleicht umgehen, aber das ist das Beste, was Sie tun können. –

2

Für mich pflegen zwei separate Codebasen ist keine gute Lösung, weil Sie 2 in App-Kauf (schlechter mit in-App-Kauf mit einem Server), vielleicht 2 Spiel-Center pflegen müssen, und trennen Sie Ihren Download (und so weniger sichtbar), weil vielleicht einige neue Benutzer werden direkt die Bezahl-App kaufen.

Aber um Pay-App zu freien App zu ändern, habe ich keine gute Möglichkeit, es zu tun, aus dem Hauptgrund, wenn Sie Ihr Gerät aktualisieren, und so sauber, Sie haben nicht etwas zu tun, nicht kostenlose App bekommen zu den ersten Benutzern, um dafür zu zahlen, und wirklich verärgerte Benutzer zu haben.

Der beste Weg wird in der Lage sein, eine Apple-Datenbank zu fragen, wenn der Benutzer die Anwendung oder etwas Ähnliches kauft. Wenn jemand eine Tricks kennt, um das zu tun, werde ich lieben, er teilt es;)

Verwandte Themen