2013-04-16 9 views
15

Ich habe einen einfachen, nicht konsumierbaren In-App-Kaufmechanismus implementiert, indem ich das Ray Wenderlich Tutorial-Buch befolge.Wie IAP (In-App-Kauf) in iOS Simulator ODER auf dem Gerät testen?

Wenn mein app startet, initiieren ich ein Produkt Info Anfrage:

self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]; 
_productsRequest.delegate = self; 
[_productsRequest start]; 

Die SKProductRequest erstellt wird. Es hat eine Speicheradresse, aber nichts anderes passiert. Keiner der Delegatmethoden wird aufgerufen:

- (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; 
} 

ich zweimal geprüft:

  • App voll Set-up in iTunes Connect.
  • Status der App in ITC ist "Vorbereiten für den Upload"
  • Ein IAP nicht konsumierbar hinzugefügt.
  • Status des IAP-Produkts in ITC ist "Bereit zum Senden"
  • App-ID ist com.mycompany.myapp sowohl für die App und in der PLIST. Zweimal überprüft.
  • IAP verwendet com.mycompany.myapp.productname (mit exakt derselben ID für die Anfrage).
  • Erstellt ein Testbenutzerkonto in ITC.
  • Noch nichts bei Apple eingereicht.
  • Mein Mac hat Internetzugang.
  • Es sind keine weiteren Meldungen in der Konsole oder auf dem Bildschirm vorhanden.

Das Ray Wenderlich Buch erwähnt nicht, dass ich noch etwas anderes tun muss.

Nur einmal Ich sah eine -didFailWithError: Anruf an meinen Delegierten auf dem Gerät, aber es erschien nie wieder. Mein Stellvertreter wird weder auf dem Gerät noch auf dem Simulator aufgerufen. Ich ließ es für Minuten ohne Antwort laufen.

iTunes Connect gibt diese verwirrende Warnung:

Your first In-App Purchase(s) must be submitted with a new app version. Select them from the In-App Purchases section of the Version Details page and then click Ready to Upload Binary.

Ist dies erforderlich vor dem In-App-Käufen testen zu können?

+1

Mit Xcode 5.1 funktioniert der IAP-Test im Simulator. –

Antwort

2

Leider gibt es einige Dinge, die Sie nicht am Simulator testen können. In App-Käufe gehört in diese Liste.

Damit Sie In App Käufe im Simulator nicht testen können, benötigen Sie ein iOS-Gerät dafür.

Edit: So weit ich sehe, das ist, was passiert, wenn Sie versuchen, IAP auf dem Simulator zu testen, Kauf Delegierten nicht aufgerufen werden.

+0

Meine Frage jetzt bearbeiten, da ich auf dem Gerät keine Delegiertenanrufe erhalte. – openfrog

0

dachte ich, etwas aus:

ich die SKProductRequest unmittelbar am Ende des AppDelegate des -didFinishLaunching ... initiiert und es funktionierte nie.

Dann machte ich einen verzögerten Anruf und wartete 3 Sekunden. Von da an fing es an zu arbeiten. Sie können StoreKit-Anfragen daher nicht sofort nach dem Start der App vornehmen.

10

In iOS Simulator Dokumentation geschrieben steht:

API Limitations

Within iOS Simulator, there are some limitations to the APIs and features, including:

Apple Push Services 
Privacy alerts for access to Photos, Contacts, Calendar, and Reminders 
The UIBackgroundModes key 
iCloud document syncing and key-value storage support 

Unsupported frameworks include:

External Accessory 
Media Player 
Message UI 
Event Kit 
In UIKit, the UIVideoEditorController class 
Store Kit 

Wie in-App-Kauf Shop Kit arbeiten muss und der Store-Kit-Framework ist nicht unterstützt für Simulator, können Sie nicht IAP testen in iOS Simulator.

Weitere Informationen: iOS Simulator documentation

+7

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/DevelopingwithStoreKit/DevelopingwithStoreKit.html states: "Store Kit * kann * im iOS-Simulator getestet werden, außer für gehostete Inhalte Downloads. " – thomers

+2

Beim Schreiben dieses Kommentars wird "Store Kit" in der Liste nicht unterstützter Frameworks in iOS Simulator nicht mehr * erwähnt *. – rpitting

+6

@rpitting - ja, aber IAP funktioniert immer noch nicht. Ich bin davon überzeugt, dass es zwei Äpfel gibt: einen, der erstaunliche Hardware und Software für die Massen schafft, und einen anderen von Darth Vader gesteuerten Apple, der Entwickler hasst und schäbiges Zeug wie Xcode erstellt. – SpaceDog

21

In der aktuellen Version von Xcode 5.0 (5A1413), In-App-Käufe werden nicht im iOS Simulator arbeiten.

StoreKit (In-App purchases) will not work in the Simulator. 13962338

Quelle: Xcode 5.0 Release Notes> Bekannte Probleme> iOS Simulator https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/xc5_release_notes/xc5_release_notes.html#//apple_ref/doc/uid/TP40001051-CH2-SW303

+1

Sie können StoreKit im Simulator in Xcode 5.1+ testen. – Urkle

0

wo Ihr skProductRequest Objekt deklariert wird? Sie können es mit globaler Deklaration dieses Objekts versuchen.

Verwandte Themen