J'ai perdu beaucoup de temps sur ce sujet et donc je suis en train de mendier un peu d'aide. En gros, j'ai essayé de mettre en place les achats in-app sur une application de test avant de me mettre en œuvre dans une bonne app que mon entreprise travaille. J'ai lu le Magasin kit de pdf et d'autres extraits sur un 1000 fois, mais les produits sont toujours renvoyés en tant que vide. Voici exactement ce que j'ai fait jusqu'à présent:
Le programme d'installation application de test et d'Achat In-App les éléments du test
J'ai créé une nouvelle application id 'Application de Test à mon entreprise sur le portail des développeurs dans l'iPhone Dev center. J'ai fait en sorte que le préfixe a com.mycompany.testappone pour s'assurer que les achats in-app peut être configuré. Rester dans l'App Id de l'article, j'ai configuré les achats in-app en cochant l'option "Enable Achat In-App' option.
J'ai créé Une Application de Test "dans iTunes Connect et terminé la procédure habituelle, mais choisis" télécharger des binaires plus tard et de ne pas soumettre à l'examen car l'application ne fait rien. Sûrement, nous n'avons pas à soumettre l'application à l'examen pour que cela fonctionne?! J'ai ensuite cliqué sur " gestion des achats in-app et a créé un nouveau produit avec l'id 'test1' et approuvée, de sorte qu'il est autorisé à la vente.
Code
J'ai créé un nouveau projet dans XCode appelé TestAppOne et voici les 2 classes seulement, j'utilise pour l'instant:
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
Les tests sur l'appareil
J'ai créé un compte de test sandbox et déconnecté de mon compte itunes sur l'iPhone, mais n'a pas connecter avec le compte test que la documentation nous dit de ne pas faire cela jusqu'à ce que nous sommes invité à l'achat du véhicule. J'ai ensuite construire l'application et ici, c'est le journal que je reçois:
IN-APP:can make payments
IN-APP:requestProductData
IN-APP:requestProductData END
IN-APP:productsRequest
IN-APP:array count: 0
IN-APP:productsRequest END
Quelqu'un peut-il me dire si j'ai oublié des étapes ou si il y a quelque chose que je fais mal. Malheureusement, il ne semble pas être un exemple des applications faites par Apple. Merci!