2011-12-08 21 views
5

Czy istnieje sposób na korzystanie z zakupów w aplikacji, które nie są dostępne w USA, a jednocześnie sprawdzają, czy są dostępne, a jeśli nie, wykonuj specjalne zadania dla klientów w USA kto nie może ich użyć?Czy możliwe jest zaimplementowanie zakupów w aplikacji tylko dla podzbioru krajów?

+0

Zdecydowanie możesz opublikować kilka wersji aplikacji z różnymi identyfikatorami AppID dla różnych krajów. Ale chciałbym też zobaczyć prawdziwą odpowiedź. :) – bealex

+0

Słyszałem plotki, że Apple może odrzucić "klonowanie aplikacji" z jakiegokolwiek powodu. – dontWatchMyProfile

+0

Myślę, że możesz o tym porozmawiać z Apple. Nie mogą to być klony, ale ta sama aplikacja. W każdym sklepie musi być tylko jeden z nich. Wykrywanie lokalizacji jest czasami nie do przyjęcia. :) – bealex

Odpowiedz

2

Można użyć CLLocationManager aby znaleźć lokalizację użytkowników, a następnie użyć MKReverseGeocoder dowiedzieć się, z jakiego kraju są one w.

Niektórzy ludzie będą odmówić dostępu do informacji o lokalizacji. Jako kopii zapasowej można używać języka, że ​​obecne urządzenie jest (ale istnieją pewne oczywiste problemy z tym podejściem):

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes 

Następnie wystarczy użyć instrukcji warunkowej:

if(in USA){ 
    do whatever, don't allow in-app purchases 
} else { 
    allow in app purchases 
} 
+0

Lub: Jeśli usługi lokalizacyjne nie działają/są wyłączone, postępuj tak, jakby użytkownik był w USA. Dobry pomysł. – dontWatchMyProfile

0

Być może możesz wysłać prośbę o produkt w tle i wyświetlać przycisk zakupu tylko wtedy, gdy coś wróci. Wadą jest to, że mogą wystąpić problemy (przerwy w przechowywaniu, problemy z siecią, tymczasowo powodują awarię produktu), które mogłyby spowodować awarię produktu, więc trzeba odpowiednio zaprojektować alternatywny interfejs użytkownika.

Powiązane problemy