it-swarm.com.de

fehler beim Kauf des iPhone In-App-Store-Kits -1003 "Es kann keine Verbindung zum iTunes Store hergestellt werden"

Ich habe daran gearbeitet, In-App-Käufe hinzuzufügen und konnte mithilfe von Store Kit (yay!) In-App-Käufe erstellen und testen. Während des Tests habe ich meine App in einer Weise trainiert, die dazu geführt hat, dass die App während des Kaufs abstürzte (ich denke also, dass der normale Zyklus des Empfangens von paymentQueue: updateTransactions und Aufruf von finishTransaction unterbrochen wurde).

Jetzt kann ich keine Transaktionen erfolgreich abschließen und erhalte stattdessen nur Transaktionen mit transactionState SKPaymentTransactionStateFailed, wenn paymentQueue: updatedTransactions aufgerufen wird.

Der transaction.error.code lautet -1003 und die transaction.error.localizedDescription lautet "Verbindung zum iTunes Store kann nicht hergestellt werden"!

Ich habe versucht, alle Produkte aus iTunesConnect zu entfernen und sie mit anderen Bezeichnern neu zu erstellen, was aber nicht geholfen hat. Ich habe auch versucht, mit der App Store App eine Verbindung zum echten App Store herzustellen und einige Apps herunterzuladen, damit ich Konnektivität habe. Schließlich habe ich die App "Einstellungen: Store" aufgerufen, um sicherzustellen, dass ich von meinem normalen App Store-Konto abgemeldet bin.

44
Rei

Ich hatte eine ähnliche Situation und entlud den Netzwerkverkehr des iPhones, um zu sehen, was los ist. Ich fand, dass der normale Laden anstelle der Sandbox kontaktiert wurde. Es half, die App vom Gerät zu löschen, sauber zu machen und erneut zu erstellen/installieren. Anscheinend war etwas mit dem Entwicklungsprofil schief gegangen.

Update: Um den Netzwerkverkehr eines nicht jailbroken iPhones zu sichern, verwenden Sie einfach die Internetfreigabe auf Ihrem Mac und konfigurieren Sie Ihr iPhone für die Verwendung des WiFi Ihres Mac. Dann wird tcpdump -n -i en1on auf Ihrem Mac den Trick ausführen.

40
Ortwin Gentz

Wenn Sie die Fehlermeldung 0 erhalten, dass keine Verbindung zum iTunes Store hergestellt werden kann (was bekanntermaßen nicht der Fehler -1003 ist, nach dem OP gefragt hat, sondern auch eine Websuche nach Fehler 0 führt), kann dies durch zwei mögliche Probleme verursacht werden:

  1. Sie übergeben die falsche Produktkennung. In diesem Fall erhalten Sie kurz nach dem Aufruf von -[SKPaymentQueue addPayment:] die Fehlermeldung 0, bevor Sie vom Popup aufgefordert werden, die Zahlung zu bestätigen.
  2. Ihr Testbenutzer wurde ungültig gemacht. Dies kann passieren, wenn Sie sich versehentlich mit Ihrem Testbenutzer im App Store anmelden. In diesem Fall erhalten Sie nach Eingabe Ihres Passworts die Fehlermeldung 0, um Ihre Zahlung zu bestätigen.

Um Problem Nr. 1 zu beheben, geben Sie die korrekte Produkt-ID ein. Um Problem Nr. 2 zu beheben, erstellen Sie einen neuen Testbenutzer in iTunes Connect und löschen Sie optional den alten Testbenutzer.

25
Adam Rosenfield

Ich hatte ein ähnliches Problem und erhielt die Meldung "Verbindung zum iTunes Store kann nicht hergestellt werden" mit Code = 0. So habe ich es gelöst, nachdem ich jeden anderen im Internet gefundenen rituellen Ratschlag ausprobiert hatte. Ich habe meine Zertifikate erneut heruntergeladen, alle Geräteeinstellungen zurückgesetzt und eine schwarze Ziege geopfert:

In der Zielzusammenfassung für die App hatte ich meine Versionsnummer im Feld "Build", aber nichts im Feld "Version". Dies kam mir seltsam vor, also habe ich die Versionsnummer von "build" auf "version" verschoben. Dies führte zu dem oben genannten Fehler. Wenn Sie die Versionsnummer wieder auf "build" setzen, wurde der Fehler behoben.

15
thomax

Neuen Testbenutzer für Ihre App hinzufügen.

14
HelloWorld

Stellen Sie sicher, dass Datum und Uhrzeit in den Einstellungen richtig eingestellt sind. Andernfalls kann keine SSL-Verbindung zum Store hergestellt werden !!

11
k3a

Ich hatte den gleichen Fehler, und nachdem ich einige Threads in den Entwicklerforen gelesen hatte, setzte ich die Einstellungen auf meinem Gerät zurück (Einstellungen -> Allgemein -> Zurücksetzen -> Alle Einstellungen zurücksetzen). Es schien drastisch zu sein, aber es hat funktioniert.

Ich hatte den gleichen Fehler, der aus dem Nichts auftauchte (er funktionierte an einem Tag gut, aber am nächsten Tag gab er mir diese Fehler etwa zwei von drei Mal, als ich versuchte, meinen In-App-Kauf zu testen.

Dann besuchte ich den App Store (als ich versuchte, einen weiteren Kauf abzuschließen), und mir wurde klar, dass es eine neue Nutzervereinbarung gab, die ich von mir bestätigen lassen wollte. Nachdem ich das getan hatte, als ich zu meiner eigenen App zurückkehrte und den Testkauf erneut ausprobierte, funktionierte es einwandfrei und hatte seitdem keine Fehler mehr. Ich vermute, ich habe den Fehler erhalten, weil sie wollten, dass ich die neue Benutzervereinbarung verifizierte. 

Jetzt frage ich mich nur, ob mein In-App-Kauf diese Eingabeaufforderung an meine Benutzer weiterleiten kann, anstatt ihnen einen mysteriösen Fehler zu geben.

2
frandogger

Was für mich funktionierte, war, meine App vom Testgerät zu deinstallieren und dann eine neue Kopie von Xcode zu installieren.

1
lifjoy

In SKPaymentTransactionState wird angegeben, dass SKPaymentTransactionStateFailed vor der Anforderung zur Serverwarteschlange hinzugefügt wird.

@class SKPayment;

enum {
    SKPaymentTransactionStatePurchasing,    // Transaction is being added to the server queue.
    SKPaymentTransactionStatePurchased,     // Transaction is in queue, user has been charged.  Client should complete the transaction.
    SKPaymentTransactionStateFailed,        // Transaction was cancelled or failed before being added to the server queue.
    SKPaymentTransactionStateRestored       // Transaction was restored from user's purchase history.  Client should complete the transaction.
};
typedef NSInteger SKPaymentTransactionState;

Und zu SKPaymentTransaction Klassenreferenzfehlerdiskussion sagt:

Die Fehlereigenschaft ist nicht definiert, es sei denn, transactionState ist auf SKPaymentTransactionStateFailed gesetzt. Ihre Anwendung kann die Fehlereigenschaft lesen, um festzustellen, warum die Transaktion fehlgeschlagen ist.

Deshalb ist transaction.error.localizedDescription "Keine Verbindung zum iTunes Store" möglich! ist eine allgemeine Fehlermeldung. Diese Fehlermeldung wird auch regelmäßig beim Testen meiner InApp-Einkäufe angezeigt.

Einige Tipps, die Sie tun können, ist, 

  1. Rufen Sie alle Produkte mit SKProductsRequest aus dem App Store ab und überprüfen Sie, ob der response.products die angeforderte productIdentifier. Enthält. 

    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:[objProducts allKeys]]];
    //pass product identifier array as argument
    [request start];  
    

Und Fangantwort in:  

    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
        NSArray *myProduct = response.products;
}

Damit Sie entscheiden können, können Sie mit dem App Store kommunizieren. und Ihre Produkt-ID ist da.

  1. Stellen Sie sicher, dass Sie das Testbenutzerkonto In App zum Testen verwenden.
  2. Und Sie verwenden dieselbe App-ID-Bereitstellung, die Sie beim Kauf von App-Apps konfiguriert haben.

vielen Dank

1
Naveen Shan

Ich bin seit 2 Tagen festgefahren, hier ist meine Lösung:

  1. Entfernen Sie alle In-App-Produkte.
  2. Neue In-App-Produkte entfernen.
  3. Erstellen Sie einen Sandbox-Tester.
  4. Melden Sie mein Apple-Konto vom Gerät (iPad) ab und versuchen Sie dann, das Produkt zu kaufen.
  5. Sie werden nach dem Login gefragt und dann mit dem Sandbox-Tester-Konto erneut angemeldet.
  6. Der Kauf geht durch.

Ich denke, die Wichtigkeit ist der Sandbox-Tester-Account, den ich vorher nicht verwendet habe, da ich immer Fehler-0 erhielt.

0
iiley Chen

In meinem Fall habe ich alles im Internet ausprobiert, aber nichts hat funktioniert.

Apple brach tatsächlich das Produktionszahlungssystem und die Sandbox. Ich musste nur zwei Tage warten und es fing an zu arbeiten.

0

Ich habe eine Bereinigung aller Ziele in XCode durchgeführt und die Anwendung manuell von meinem Gerät gelöscht. Anschließend wurde "Build and Run" in XCode ausgeführt. Ein ähnliches Problem wurde behoben (gleiche Fehlermeldung, aber anderer Fehlercode: -1009).

0
wasabi

Ich habe jede hier im Thread angebotene Lösung ausprobiert, jedoch ohne Erfolg. In meinem Fall hatte ich eine Platzhalter-ID, die mit dem gleichen Domänennamen begann wie beim Erstellen der Bundle-ID für das Provisioning-Profil für das In-App-Kauf.

So habe ich das Problem behoben und kann Ihnen möglicherweise dabei helfen, Ihr Problem zu beheben (siehe Anhang):

1) Verbinden Sie Ihr iPhone mit dem Mac.

2) Wählen Sie unter "Geräte" (in Xcode> Fenster-Menü> Organizer-Fenster) die Option "Bereitstellungsprofile" für Ihr iPhone. Sie sehen alle aktuell auf Ihrem iPhone befindlichen Bereitstellungsprofile.

3) Entfernen Sie vorsichtig alle Provisioning-Profile, die mit dem jeweiligen Domain-Namen in der Bundle-ID beginnen (com.MYDOMAIN. *), Insbesondere diejenigen, die Platzhalter verwenden, mit Ausnahme desjenigen, den Sie speziell für In-App-Kauf (com .MYDOMAIN.inappidentifier). 

4) Installieren Sie die App erneut und testen Sie Ihre Implementierung mit einem neuen iTunes Connect-Testbenutzer (Sandbox).

BILDSCHIRMFOTO:

enter image description here

0
programmer

Der In-App-Kauf FAQ sagt:

Verbindung zum iTunes Store nicht möglich

Das Problem "Es kann keine Verbindung zum iTunes Store hergestellt werden" kann aus einem oder mehreren der folgenden Gründe stammen:

  • Die Sandbox ist möglicherweise nicht erreichbar.
  • Ihre App hat keine Bundle-Version (CFBundleVersion). Weitere Informationen finden Sie unter Versionsnummer und Build-String festlegen.
  • Ihre App läuft im Simulator, der In-App-Kauf nicht unterstützt.
  • Sie versuchen, ein Produkt zu kaufen, das nicht zum Verkauf steht. Weitere Informationen finden Sie unter Fragen Sie den App Store nach Produktinformationen, bevor Sie die Store-Benutzeroberfläche Ihrer App präsentieren.

In meinem Fall trat der Fehler auf, weil ich den Xcode-Simulator verwendete. Es fing an zu arbeiten, als ich mein Gerät benutzte.

Sogar im In-App Purchase-Programmierhandbuch sagt, das iOS-Entwicklungsgerät zu verwenden, hat ein empfohlener Testschritt.

0
ricardopereira

Melden Sie sich einfach bei Ihrem iTunes-Konto ab (melden Sie sich jetzt nicht bei Ihrem Testkonto an!) Und starten Sie Ihr Programm. Wenn Sie inapp einkaufen, werden Sie nach Ihren Anmeldedaten gefragt, und Sie müssen Ihre Testkontoinformationen eingeben. 

0
Can Gülse

Leider bin ich auf ein Problem gestoßen, das hier nicht dokumentiert wurde. In-App-Einkäufe funktionieren erst, wenn Sie alle mit App- und In-App-Käufen verbundenen Verträge akzeptiert haben. Stellen Sie also sicher, dass Sie (oder Ihr Kunde) alle Verträge in iTunesConnect ordnungsgemäß eingerichtet haben. Sie müssen müssen im Abschnitt "In Kraft tretende Verträge" erscheinen, damit Ihre Einkäufe funktionieren.

0
Thomas Kekeisen

Unser Problem war, dass wir in iTunes Connect die falsche Paketkennung hatten. Jemand hatte die App vorab erstellt und wir mussten die App bearbeiten und ihre AppId auf die neue setzen.

0
trcarden

Ich fummelte herum und ging zum App Store und dann zurück zu Einstellungen/Store, um sich abzumelden. Ich habe dies dreimal getan, meine App jedes Mal erneut besucht und die NSLog-Ausgabe zum Debuggen hinzugefügt. Jetzt kann ich meinen In-App-Kaufcode ohne Fehler -1003 testen. Ich bin mir nicht sicher, aus welchem ​​Grund das wieder funktioniert, aber ich bin mir ziemlich sicher, dass es sich nicht um eine Codeänderung handelt, da ich lediglich NSLogs hinzugefügt und meine App erneut ausgeführt habe.

0
Rei

Ja, WENN Sie Ihr iPad/iPhone anfangs an einen anderen Computer angeschlossen haben und es jetzt auf einem anderen Computer verwenden, müssen Sie sich unbedingt bei Ihrem iPad abmelden, sich mit einem normalen Konto bei iTunes auf Ihrem MAC anmelden und dann Synchronisieren .

Stellen Sie außerdem sicher, dass Ihr iPad "WIFI" eingeschaltet ist ...

0
PerimeterMan

Ich hatte zwei Probleme, die das verursacht haben:

1) Ich hatte den IAP-Code von einer anderen (funktionierenden) App kopiert, aber die Einrichtung meines Beobachters verpasst:

observer = [[IAPHelper-Zuordnung] init]; [[SKPaymentQueue defaultQueue] addTransactionObserver: observer];

2) Ich war in den Einstellungen meines Geräts bei iTunes angemeldet. Sie können nur einen Testbenutzer in der Sandbox verwenden. Ich habe mich abgemeldet und es hat wieder funktioniert.

0
JanB