Pregunta

Estoy tratando de implementar en compras de aplicaciones en una aplicación gratuita.

He creado una ID de ProductD "Test1" dentro del Administrador de compras de aplicaciones en iTunes Connect Portal.

Cuando hago la solicitud del producto de la siguiente manera:

- (id)init {

     NSSet *productIdentifiers = [NSSet setWithObjects:
                             @"test1",
                             nil];

     if ((self = [self initWithProductIdentifiers:productIdentifiers])) {                

}

return self;

}

- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers
{    
if ((self = [super init]))
{
    // Store product identifiers
    _productIdentifiers = [productIdentifiers retain];

    // Check for previously purchased products
    NSMutableSet * purchasedProducts = [NSMutableSet set];

    for (NSString * productIdentifier in _productIdentifiers)
    {
        BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier];

        if (productPurchased)
        {
            [purchasedProducts addObject:productIdentifier];
            NSLog(@"Previously purchased: %@", productIdentifier);
        }

        NSLog(@"Not purchased: %@", productIdentifier);
    }

    self.purchasedProducts = purchasedProducts;
}

return self;

}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

NSLog(@"Received products results...");   
self.products = response.products;
self.request = nil;    

[[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:_products]; 

NSLog(@"%d",[self.products count]);
NSEnumerator *e = [self.products objectEnumerator];

id object;

while(object=[e nextObject])
{
    NSLog(@"item");
    NSLog(@"%s",(char*)object);
}

}

- (void)requestProducts {

self.request = [[[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers] autorelease];
_request.delegate = self;
[_request start];

}

La respuesta es siempre 0. No entiendo qué estoy haciendo mal. Este código vino de un tutorial. La documentación sobre las compras de aplicaciones tiende a ser bastante confusa y todo el proceso en iTunes Connect no me da confianza.

Pensé que la aplicación debía estar en línea para la venta para que las compras de aplicaciones funcionen. Sin embargo, decidí no incluir en las compras de aplicaciones, pero deje que la compra de la aplicación en iTunes se conecte para su revisión. Durante el proceso de revisión, la solicitud fue rechazada porque debería estar trabajando con las compras en aplicaciones para las pruebas.

Pero, ¿cómo pruebo las compras de aplicaciones si la lista de productos viene siempre en cero?

Si alguien con más experiencia podría darme un consejo sobre esto, ¡ya que ya me estoy volviendo loco!

Gracias,

Con mis mejores deseos,

Nuno

¿Fue útil?

Solución

La solución más coherente que encontré a este problema fue esta lista de verificación. Debería ser extendido para evitar que cualquier persona que pase por el mismo problema, que realmente lleva mucho tiempo y desesperante:

  • ¿Ha habilitado las compras en la aplicación para su identificación de aplicación?
  • ¿Ha revisado la venta para su producto?
  • ¿Ha enviado (y opcionalmente rechazado) su solicitud binaria?
  • ¿Su proyecto. La ID de paquete de plástico coincide con su ID de su aplicación?
  • ¿Ha generado e instalado un nuevo perfil de aprovisionamiento para la nueva ID de aplicación?
  • ¿Ha configurado su proyecto para firmar el código utilizando este nuevo perfil de aprovisionamiento?
  • ¿Está construyendo para iPhone OS 3.0 o superior?
  • ¿Está utilizando la identificación completa del producto cuando está haciendo un skproductrequest?
  • ¿Ha esperado varias horas desde que agregó su producto a iTunes Connect?
  • ¿Están activos sus datos bancarios en iTunes Connect? (Vía Mark)
  • ¿Ha intentado eliminar la aplicación de su dispositivo y reinstalar? (Via Héctor, S3B, Alex O, Joe y Alberto)
  • ¿Su dispositivo es Jailbreak? Si es así, debe revertir el jailbreak para que IAP funcione. (a través de Dios mío, Roman, y Xfze)
  • ¿Estás desconectado de la cuenta real de iTunes?
  • ¿Has intentado reiniciar el dispositivo?
  • ¿Estás en el dispositivo? (No funcionará en simulador)

Los créditos van a Troy Brant

Otros consejos

Eche un vistazo aquí, que respondió a todas mis preguntas (y el marco también es fácil de usar :-):

http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-Purchaskas/

Pero tengo que decir que todo el asunto de la compra en la aplicación es una pita: mi aplicación acaba de ser lanzada y, por supuesto, la descargué y revisé la pantalla de compra en la aplicación. ¡Adivina qué, quedó completamente vacío!

Después de leer un poco, parece que incluso si todo está aceptado y listo para la venta, los productos de compra en la aplicación aún necesitan un tiempo para estar disponibles en línea; después de 3 horas, finalmente funcionó ...

EDITAR:

Debe crear la compra en la aplicación para su aplicación y configurarla para que se borre en la venta en iTunes Connect. Todavía no necesita cargar una captura de pantalla o ya lo revisó para poder probarla en modo de desarrollo.

¿Cómo nombró la compra en iTunes Connect? Normalmente, debe usar un nombre com.companyname.productname.purchaseName, y el nombre que solicita de su aplicación HA es exactamente el mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top