Esta es una pregunta de seguimiento a "In app purchases with MKStoreKit failing: “Problem in iTunes connect configuration for product: xxx"¿Se resuelve un problema de identificación de producto no válido con las compras en la aplicación?
Estoy teniendo un problema similar y he tratado de hacer con y sin MKStoreKit y obtener un mensaje similar.
Lista de comprobación
Agradecimientos a: http://troybrant.net/blog/2010/01/invalid-product-ids/
¿Ha permitido Compras In-App para su ID de aplicación?
SÍ
Ha comprobado Despejado para la venta de su producto?
SÍ
¿Ha presentado (y opcionalmente desestimado) su aplicación binaria?
SÍ
¿Se .Plist ID de paquete de su proyecto que coincida con el ID de aplicación?
SÍ
¿Ha generado e instalado un nuevo archivo de suministro para el nuevo ID de la aplicación?
SÍ
¿Ha configurado el proyecto para firmar código utilizando este nuevo archivo de suministro?
SÍ
¿Está construyendo para el iPhone OS 3.0 o superior?
YES. iOS4.2 y versiones posteriores.
¿Está utilizando la identificación completa del producto cuando realiza una solicitud SKProductRequest?
YES. También solo el ID del producto en sí sin el dominio inverso
¿Ha esperado varias horas desde que agregó su producto a iTunes Connect?
YES. Dice "Esperando revisión" y lo ha hecho durante los últimos 4-5 días
¿Están sus datos bancarios activos en iTunes Connect?
NO. Es un proyecto de cliente y solo estoy probando para ver si funciona. ¿Necesito los datos bancarios para probarlo?
EDITAR: He cambiado esto ahora. Pero no veo por qué tengo que hacer esto solo para probar sandboxing.
¿Ha intentado eliminar la aplicación de su dispositivo y volver a instalarla?
SÍ
Está jailbreak su dispositivo?
NO
notación aplicación es correcta
Algunos ejemplos que he visto utilizar esta notación: com.domain.APP_ID.PRODUCT_TO_BUY
Pero otros utilizan com. domain.PRODUCT_TO_BUY
¿Cuál es correcto?
En mi código, he intentado utilizar la notación completa y solo la ID del producto en sí, pero todavía tengo el mismo problema de "Identificación de producto no válida".
desarrollador rechazó
App Bundle (liberación) está en iTunes Connect y he "desarrollador rechazado" el paquete.
foto:
espera para su revisión?
En mis compras en la aplicación, tengo el 1 producto, una suscripción de renovación automática. Está despejado para la venta; Sin embargo, está "Esperando revisión" y no tiene luz verde.
foto:
he creado este hace casi 4-5 días y su todavía marcan como "pendiente de revisión" ??
Me pregunto si mi aplicación ha sido "rechazada por el desarrollador" si esto tiene un impacto en "Esperando revisión" en una suscripción de renovación automática.
No he cambiado nada en este artículo.
Según los diversos artículos, tengo que esperar 24-48 horas antes de que pueda usarlo?
Pero, ¿tengo que esperar a que se acepte o se encienda el verde antes de que pueda usarlo en mis pruebas?
Los datos bancarios
no han rellenado los datos bancarios porque se trata de una aplicación para un cliente - ¿Es necesario que rellene los datos bancarios antes de que pueda continuar con las pruebas?
De acuerdo con estos documentos: http://developer.apple.com/library/ios/#technotes/tn2259/_index.html ¿los detalles del banco son obligatorios?
¿Debo iniciar sesión en iTunes en mi dispositivo con una cuenta de prueba antes de ejecutar la aplicación?
Me pregunto si alguien puede aclarar estos problemas? Tal vez es tan simple como esperar a que la compra en la aplicación esté "verde", o tal vez me he perdido un paso.
Nota: Esto sucede independientemente de si uso MKStoreKit o uso el código que sigue.
Gracias.
Mi código (esta es la versión no MKStoreKit)
#define kMySubscriptionFeature @"uk.co.samplewebsite.myappproject.sub1"
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = @"Manage Subscriptions";
if ([SKPaymentQueue canMakePayments])
{
// Display a store to the user.
//[MKStoreManager sharedManager];
//NSLog(@"purhcasable = %@", [[MKStoreManager sharedManager] purchasableObjectsDescription]);
[self requestProUpgradeProductData];
}
else
{
// Warn the user that purchases are disabled.
NSString *message = @"In-app purchases are disabled. Please review your settings";
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
} // end if
}
#pragma mark - StoreKit Delegate
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMySubscriptionFeature]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProduct = [[NSArray alloc] initWithArray:response.products];
for(SKProduct *item in myProduct)
{
NSLog(@"Product title: %@" , item.localizedTitle);
NSLog(@"Product description: %@" , item.localizedDescription);
NSLog(@"Product price: %@" , item.price);
NSLog(@"Product id: %@" , item.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Problem in iTunes connect configuration for product: %@" , invalidProductId);
}
[myProduct release];
// populate UI
[request autorelease];
}
Editar:
Como prueba de fallos, he añadido los datos bancarios por si acaso, pero no veo por qué esto sería causa un problema
También me he asegurado de haber subido y rechazado el paquete de lanzamiento de la aplicación y no el de adhoc; aunque no sé si esto hace alguna diferencia.
Este fue el último paso que necesitaba. Gracias –
Hombre, hiciste mi día. Te debo una cerveza :) –
WOW ... Pasé 1 semana entera buscando un error. Eliminé 2 paquetes, creé nuevos, hice una gran cantidad de investigación solo para encontrar esto. Y funcionó ... Solo quiero abrazarte a los dos. : D –