6

Ich habe this tutorial gefolgt, damit meine App Builds für DEBUG, ADHOC testen kann (für meine Beta-Benutzer), und RELEASE. Alles funktioniert gut außer für meine In-App-Käufe.iOS/Xcode: gleichzeitige Builds für Debug, Ad-hoc und Release * mit In-App-Käufen *

Meine Bundle ID s nach dieser Einstellung sind:

  • Debug: com.mycompany.myproduct.debug
  • Ad Hoc: com.mycompany.myproduct.adhoc
  • Release: com.mycompany.myproduct

(Die RELEASE ID die gleiche ist, wie es war vor dieser neuen Einrichtung

Da diese Methode die Bundle ID basierend auf dem Build ändert und da In-App-Käufe an einen bestimmten Bundle ID gebunden sind, wenn ich meine App unter DEBUG oder ADHOC ausführe, werden meine Produktbezeichner als ungültig zurückgegeben, wenn ich requestProductsWithCompletionHandler anrufe.

Ich habe versucht, neue In-App-Kauf-Produkte mit dem neuen Bundle ID vorangestellt wie: com.mycompany.myproduct.debug.iapname, aber da die In-App-Käufe an eine einzelne Bundle-ID gebunden sind, funktioniert dies nicht.

Meine Frage ist: Um zu erreichen, was ich erreichen möchte, muss ich zwei neue Apps in iTunes Connect für jede meiner neuen Bundle IDs erstellen und dann In-App-Kauf-Produkte hinzufügen jede davon für jede Buildkonfiguration? Oder gibt es einen anderen Weg, um das zu erreichen, was ich erreichen möchte?

+0

nicht skalierbar ist tun, um Ihre verschiedenen Builds unterschiedlich brauchen Bündel-IDs? – trojanfoe

+1

Damit sie als separate Apps auf einem Gerät installiert werden. Auf diese Weise kann ich eine Release-Version auf meinem Gerät gleichzeitig mit einer Debug- und/oder Beta-Version haben. – tptcat

+0

Hmmm. Ich bin mir nicht sicher, welchen Wert das hat. Wie auch immer, es sieht so aus, als ob Sie es nicht tun können, wenn Sie In-App-Käufe verwenden. – trojanfoe

Antwort

2

Die Antwort ist ja, als Store-Kit bekommt die In-App-Käufe aus dem iTunes Store Der einfachste Weg, dies zu tun ist, separate Apps in iTunes verbinden und sie auf dem neuesten Stand zu halten.

Die andere Möglichkeit, die Sie ergreifen könnten, könnte sein, das Store-Kit außerhalb Ihrer App in Ihrer eigenen Klasse zu abstrahieren. Dann können Sie die bundleIdentifier Eigenschaft von [NSBundle mainBundle] überprüfen und entweder nach Ihren Produkten vom Geschäft fragen, wenn Ihre bundleIdentifier die ist, die Sie erwarten, oder Rückkehrspott SKProducts, die Sie selbst herstellen, wenn es nur für Testzwecke ist.

Ich denke, es hängt davon ab, wie engagiert Sie sind auf Ihre Tester aber offensichtlich würde Ihre benutzerdefinierten Klassen n Bundle-IDs skalierbar sein, während Dummy-Apps in iTunes verbinden bei allen Warum

+0

Danke für die Idee, mock SKProducts zu erstellen. – tptcat

+0

Wenn Sie separate Apps hinzufügen, ist es in Ordnung, nur eine App zu haben, die niemals gesendet wird? [Dieser Leitfaden] (http://troybrant.net/blog/2010/01/invalid-product-ids/) schlägt vor, dass Sie den Build "ad-hoc" tatsächlich einreichen müssen (und ihn dann ablehnen). – Frederik

Verwandte Themen