Comment tester IAP (achat in-app) dans iOS Simulator OU sur le périphérique?
J'ai mis en place un simple non-consommation de l'achat in-app mécanisme en suivant le Rayon Wenderlich tutoriel livre.
Quand mon application démarre, j'ai lancer un produit demande d'information:
self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
_productsRequest.delegate = self;
[_productsRequest start];
La SKProductRequest est créé. Il a une adresse en mémoire, mais rien ne se passe. Aucun délégué méthodes est appelée:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"Product info received...");
NSArray *products = response.products;
for (SKProduct *product in products) {
NSLog(@"ID: %@, title:%@, (%f)", product.productIdentifier, product.localizedTitle, product.price.floatValue);
}
self.productsRequest = nil;
}
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error {
NSLog(@"Failed to load list of products");
self.productsRequest = nil;
}
J'ai vérifié deux fois:
- Application mis en place dans iTunes Connect.
- Statut de l'app dans les tic est "Préparez-vous à Télécharger"
- Un non-consommable PEI ajouté.
- Statut de PEI produit dans les tic est "Prêt à Envoyer"
- ID de l'application com.mycompany.myapp à la fois pour l'application et dans le plist. Vérifié deux fois.
- PEI utilise com.mycompany.myapp.le nom du produit (en utilisant exactement le même ID de la demande).
- Créé un compte de test dans les tic.
- Rien soumis à Apple encore.
- Mon Mac a accès à internet.
- Il n'y a pas d'autres messages dans la console ou sur un écran.
Le Rayon Wenderlich livre ne pas mentionner que je doit faire autre chose que ce.
Seulement une fois j'ai vu un -didFailWithError: appel à mon délégué sur l'Appareil, mais il ne jamais est de nouveau apparu. Mon délégué n'est pas appelée à la fois sur l'appareil ou sur simulateur. J'ai laisser tourner pendant quelques minutes avec pas de réponse du tout.
iTunes Connect donne à cette confusion avertissement:
Votre premier Achat Dans l'Application(s) doit être soumis à une nouvelle application
version. Sélectionnez-les dans les Achats Dans l'Application l'article de la Version
Détails de la page, puis cliquez sur Prêt à Télécharger des Binaires.
Est-il nécessaire, avant de pouvoir tester les Achats In-App?
source d'informationauteur openfrog
Vous devez vous connecter pour publier un commentaire.
Dans la version actuelle de Xcode 5.0 (5A1413), les achats In-App ne fonctionne pas dans le simulateur iOS.
Source: Xcode Version 5.0 Notes > problèmes Connus > Simulateur iOS https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/xc5_release_notes/xc5_release_notes.html#//apple_ref/doc/uid/TP40001051-CH2-SW303
Dans le simulateur iOS des documents, il est écrit :
Que l'achat in-app besoins Store Kit pour travailler et le Magasin le Kit cadre est pas pris en charge pour le Simulateur, vous pouvez pas test PEI dans le Simulateur iOS.
Plus d'informations : Simulateur iOS documentation
Malheureusement, il ya plusieurs choses que vous ne pouvez pas tester sur le simulateur. Achats In-App appartient dans cette liste.
De sorte que vous ne pouvez pas tester les Achats In-App dans le simulateur, vous avez besoin d'un appareil iOS.
Edit: aussi loin Que je peux voir, c'est ce qui arrive lorsque vous essayez de tester PEI sur le simulateur, achat délégués ne sera pas appelée.
J'ai compris quelque chose:
J'ai lancé le SKProductRequest immédiatement à la fin de l'AppDelegate-didFinishLaunching... et elle n'a jamais travaillé.
Puis j'ai fait un appel tardif et attendu 3 secondes. À partir de là, il a commencé à travailler.
Si vous ne pouvez pas faire StoreKit demande immédiatement après l'application se lance.
où votre skProductRequest objet est déclaré?
vous pouvez l'essayer avec la déclaration mondiale de l'objet.