Básicamente, intenté configurar las compras de aplicaciones en una aplicación de prueba antes de implementarlas en una aplicación adecuada en la que mi empresa esté trabajando. He leído el kit de almacenamiento pdf y otros fragmentos alrededor de 1000 veces, pero los productos todavía se devuelven como vacíos. Esto es exactamente lo que he hecho hasta ahora: aplicación de pruebaiPhone In App Purchase - response.products still empty?
Configurar y en artículos de la prueba de compra de la aplicación
He creado un nuevo ID de aplicación para 'Test App Uno' en el portal de desarrolladores de mi empresa en el centro de desarrollo de iPhone. Me aseguré de que el prefijo fuera com.mycompany.testappone
para garantizar que las compras en la aplicación se pudieran configurar. Permaneciendo en la sección de ID de la aplicación, configuré en las compras de la aplicación marcando la opción 'Habilitar compra de la aplicación'.
Creé 'Test App One' en iTunes Connect y completé el procedimiento habitual, pero seleccioné 'upload binary later' y no lo sometí a revisión ya que la aplicación no hace nada. ¡Seguramente no tenemos que enviar la aplicación para revisarla para que funcione! Luego hice clic en administrar en las compras de la aplicación y creé una nueva con la identificación del producto 'test1' y la aprobé para que se autorizara la venta.
Código
He creado un nuevo proyecto en XCode llama TestAppOne
y aquí son las únicas 2 clases que estoy usando por ahora:
TestAppOneAppDelegate.h:
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>
@interface TestAppOneAppDelegate : NSObject <UIApplicationDelegate, SKRequestDelegate, SKProductsRequestDelegate> {
UIWindow *window;
}
TestAppOneDelegate.m :
#import "TestAppOneAppDelegate.h"
static NSString *kMyFeatureIdentifier1 = @"com.mycompany.testappone.test1";
@implementation TestAppOneAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
if([SKPaymentQueue canMakePayments]) {
NSLog(@"IN-APP:can make payments");
}
else {
NSLog(@"IN-APP:can't make payments");
}
[self requestProductData];
[window makeKeyAndVisible];
}
- (void)requestProductData {
NSLog(@"IN-APP:requestProductData");
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMyFeatureIdentifier1]];
request.delegate = self;
[request start];
NSLog(@"IN-APP:requestProductData END");
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"IN-APP:productsRequest");
NSArray *myProduct = response.products;
NSLog(@"IN-APP:array count: %i", [myProduct count]);
[request autorelease];
NSLog(@"IN-APP:productsRequest END");
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
T en el dispositivo
Creé una cuenta de prueba de zona de pruebas y cerré sesión en mi cuenta de iTunes en el iPhone, pero no inicié sesión con la cuenta de prueba ya que la documentación nos dice que no hagamos esto hasta que se nos solicite la compra escenario. a continuación, voy a construir la aplicación y aquí está el registro de que estoy recibiendo:
IN-APP:can make payments
IN-APP:requestProductData
IN-APP:requestProductData END
IN-APP:productsRequest
IN-APP:array count: 0
IN-APP:productsRequest END
Puede alguien por favor dígame si he dejado ningún cabo etapas o si hay algo que estoy haciendo mal. Lamentablemente, no parece haber aplicaciones de ejemplo creadas por Apple.
Solo envíelo e inmediatamente deséchelo. No quiero establecer la fecha en el futuro y olvidarse de eso! –
Ah, está bien. Bueno saber. No lo he intentado todavía –
Gracias. Desafortunadamente, Apple olvidó incluir esta información muy importante en su documentación, pero lo descubrí después de leer este útil tutorial: http: //troybrant.net/blog/2010/01/in-app-purchases-a-full -walkthrough/ – user218485