2010-04-01 3 views
1

J'essaie de tester mon application avec des achats in-app. J'ai créé des fonctionnalités, testé l'utilisateur, déconnecté d'iTunes sur l'iPhone et utilisé le certificat de développeur. Charger l'application à partir de XCode en mode débogage.Problèmes avec les tests dans les achats d'applications

Lorsque je clique sur le bouton « Acheter » Je passe tous les chèques pour la disponibilité d'Internet, canMakePayments et appelle

SKPayment *payment = [SKPayment paymentWithProductIdentifier:featureId]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 

Mais tout ce que je vois est une vue en attente et après quelques minutes, il a échoué dans

- (void) failedTransaction: (SKPaymentTransaction *)transaction 
{ 
    if (transaction.error.code != SKErrorPaymentCancelled)  
    {  
     NSLog(@"failedTransaction"); 
    } 
    [[MKStoreManager sharedManager] paymentCanceled]; 
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
} 

S'il vous plaît conseils dans quelle direction je devrais aller pour comprendre le problème et quoi d'autre que je devrais vérifier.

P.S. Toutes les questions connexes sur SO ont été vérifiées sans succès.

Répondre

0

Ici vous avez quelques idées:

  1. charge les produits avant de permettre à l'utilisateur de faire des achats. La première chose que vous devez faire est un SKProductsRequest et assurez-vous que les produits que vous offrez peuvent être achetés.

  2. Discriminer l'erreur, Vérifiez SKError.h pour voir les différents types d'erreurs que le magasin peut renvoyer. De cette façon, vous aurez une idée plus précise de ce qui se passe

  3. Certaines erreurs, telles que -1003, ne sont pas documentées et semblent être des cas bizarres dans l'environnement sandbox.

  4. Pour ces erreurs, assurez-vous:

    • Utilisez le utilisateur test correct.
    • Avez-vous configuré correctement les produits dans iTunes connect.
    • Déconnectez-vous du magasin et nettoyez l'application. Connectez-vous uniquement lorsque vous êtes invité à le faire dans la fenêtre de confirmation d'achat.
    • En cas d'échec, réinitialisez les paramètres réseau, nettoyez l'application et recommencez le test.
    • En cas d'échec, réinitialisez tous les paramètres, nettoyez l'application et recommencez le test.
    • En cas d'échec, réinitialisez votre appareil, nettoyez l'application et recommencez le test.

Enfin, jetez un oeil à ces pages:

http://troybrant.net/blog/2010/01/invalid-product-ids/

http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

Questions connexes