¿Es posible implementar compras en la aplicación solo para un subset de países?

¿Hay alguna forma de utilizar las compras en la aplicación de tal manera que NO estén disponibles en los EE. UU., Y al mismo time averiguar si están disponibles o no? Y si no, realice tareas especiales para clientes en los EE. UU. Que pueden ¿No los usas?

Puede usar CLLocationManager para encontrar la location de los usuarios y luego usar MKReverseGeocoder para averiguar en qué país se encuentran.

Algunas personas negarán el acceso a la información de location. Como copy de security, puede usar el idioma en el que se encuentra el dispositivo actual (pero hay algunos problemas evidentes con este enfoque):

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

Entonces solo necesitas usar una statement condicional:

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

Tal vez podría enviar una request de producto en segundo plano, y solo mostrar el button de compra si algo vuelve. La desventaja es que podría haber problemas (interrupciones de la tienda, problemas de networking, que el producto bajó temporalmente) que haría que la request del producto fallase, por lo que tendría que diseñar la interfaz de usuario alternativa de manera adecuada.

 SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:productId]]; productRequest.delegate = self; [productRequest start]; -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { if ([[response products] count] > 0) { // display purchase link } else { // display alternative UI } }