2013-07-08 5 views
6

Wie Sie von iOS-Entwicklern wissen, können Sie im App Store nur eine Preisstufe für Ihre App und In-App-Produkte festlegen. Sie können es jedoch (theoretisch) als separate Apps in verschiedenen Ländern mit unterschiedlichen Preisen veröffentlichen. Ich möchte dasselbe mit In-App-Produkten der gleichen App machen - alternative In-App-Produkte definieren und deren Sichtbarkeit in der App abhängig vom Land des Nutzers steuern. Ich möchte NSLocale oder NSTimeZone nicht verwenden, da sie in den Einstellungen geändert werden können. Ich möchte das Land kennen, mit dem der App Store/Benutzer verbunden ist.iOS-Programmierung - wie Sie feststellen können, aus welchem ​​App-Store (Land) die App heruntergeladen wurde

Ich möchte zum Beispiel ein Abonnement mit automatischer Verlängerung für die meisten Benutzer anbieten, aber ich weiß, dass Abonnements mit automatischer Verlängerung im israelischen App Store nicht verfügbar sind. Daher möchte ich ein nicht erneuerndes Abonnement ausschließlich für Israelis zeigen Benutzer, und zeigen Sie ihnen nicht die automatisch erneuernde. Gibt es einen verlässlichen Weg, dies zu erreichen?

Danke, Avi

Antwort

5

Nach einer weiteren Untersuchung entdeckte ich, dass, wenn Produkte im Speicher-Kit Abfrage SKProduct mit einer Eigenschaft gibt priceLocale genannt, die aus dem Ländercode und Währungscode besteht. Der Ländercode von priceLocale scheint mit dem App Store des Nutzers übereinzustimmen.

Um es zusammenzufassen, diese Schritte tun wird das Ergebnis jedoch in einem langsamen und nicht einfache Weise erhalten:

  1. Definieren Sie einen In-App-Artikel;
  2. Fragen Sie dieses Element in Ihrer App ab;
  3. Bestimmen Sie das Land des Benutzers gemäß [product.priceLocale objectForKey: NSLocaleCountryCode];
  4. Zeigen Sie dem Benutzer die relevanten Produkte, die Ihre App in ihrem Land unterstützt.