Best practice, Mac App Store debug build mit receipt validierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Best practice, Mac App Store debug build mit receipt validierung

    Hallo,

    ich habe mir die Finger wund gegooglt und habe nicht gefunden was zu einer Lösung geführt hat.

    Ich möchte einen Debug Build für eine Mac App Store Application machen.
    Laut Doku soll man mit einen Test User ein Receipt bekommen, wenn man die App aus dem Finder startet.

    Wenn ich die App mit dem Mac Developer Zertifikat signiere und starte passiert nichts. In der Console steht:

    11.01.12 12:20:04,637 storeagent: Unsigned app (pathtopapp).

    Wenn ich die App mit dem 3rd Party Mac Developer Zertifikat signiere und starte öffnet sich ein Dialog in dem ich meinen iTunes Account eingeben kann.
    Gebe ich den echten account ein bekomme ich die Meldung dass es kein Testuser ist.
    Gebe ich einen Testuser ein bekomme ich einen Dialog: "Testapp is damaged and can’t be opened. Delete “testapp.app” and download it again from the App Store."

    Also meine Frage: Wie stelle ich es an dass ich die Verifizierung des Receipts mit einem debug build testen kann.

    Ich wäre super glücklich wenn das schonmal jemand hinbekommen hat und mir einen Hinweis geben kann?

    Lg Jürgen
  • Habs hinbekommen.

    Man muss eine Releasebuild version aus dem Finder starten. Dann öffnet sich ein Dialog mit dem ein Receipts von Apple abgeholt wird.
    Die App beendet dann zwar mit einem Fehler, aber in der App ist nun das richtige Receipt. Das kann in die Debugversion kopiert werden und man kann den
    den Validationcode testen.


    Grüsse Jürgen
  • Versuch mal in der Methode applicationDidFinishLaunching im AppDelegate exit(173) aufzurufen, wenn das Receipt fehlt.

    Also ungefähr so:


    if(![[NSFileManager defaultManager] fileExistsAtPath:[[[NSBundle mainBundle] appStoreReceiptURL] path]]) {
    //NSLog(@"to get sandbox receipt, the app must be launched from outside xcode");
    exit(173);
    }


    exit(173) veranlasst das Receipt aus dem App Store zu laden.

    Gruß
    zim