Frage

Wir haben schließlich zu dem Punkt gekommen, unser erstes iPhone App im App Store einzureichen (oder versuchen zu), aber ich kann nicht scheinen, iTunes Connect erhalten Sie den Upload zu übernehmen.

Ich habe sowohl über die Website versucht ( „Die binäre Sie hochgeladen war ungültig. Die Unterschrift war ungültig, oder es wurde nicht mit einem Apple-Vorlage Zertifikat signiert.“) Und dem Application Loader ( "Info.plist nicht enthält eine CFBundleResourceSpecification ").

Nach vielen Lesen (einschließlich Fragen wie diese ), Re-Lektüre, und googeln, ich kann sagen, dass:

  • Ich bin sicher, dass die Paket-ID der AppID übereinstimmt.
  • Es ist ein Icon.png, es ist eine 57x57 Pixel PNG-Datei, und das ist der genaue Name in dem Info.plist.
  • Ich bin ein Gerät zu tun, nicht Simulator, build.
  • Die Unterzeichnung Prozess erfolgreich ist. Die Build-Ergebnisse dies zu zeigen, und läuft codesign -vvvv MyApp.app gibt keine Probleme
  • Es sind keine seltsamen Zeichen auf dem Weg zu der ZIP-Datei.
  • Ich habe die Build-Ordner gelöscht und neu gebaut die binären ein paar Mal.

Nun ist es wahr, dass im eingebauten App, die Info.plist keine CFBundleResourceSpecification Schlüssel enthält, aber es ist gar nicht zu mir klar, wo dieser Wert kommen soll, oder was sonst muss ich hinzufügen, dies zu machen Arbeit. (Der einzige Hinweis kann ich Suche mit Apples finden einige Code-Signing-Release Notizen ... aber, wie ich oben erwähnt, wird der Code Signierschritt folgenden, soweit ich das sagen kann.)

Hat jemand laufen über irgendwelche Erklärungen für dieses Problem, dass ich nicht schon erwähnt habe?

EDIT: Hier ist die (leicht geschwärzt), ausgegeben von dem Code-Signing Schritt des Build, FWIW:

Codesignierung Screenshot http://img70.yfrog.com/img70/8988/ codesign.png

War es hilfreich?

Lösung

Das Problem scheint gewesen zu sein, dass ich mit Json-Rahmen meine app, und darunter als zusätzliches SDK pro den Anweisungen in das Wiki . Meine Vermutung ist, dass XCode durch das Vorhandensein von> 1 SDK verwechselt wurde und somit nicht den Standard ResourceRules.plist finden konnte, wie es sollte.

Ich fand zwei Lösungen (na ja, Abhilfen, sowieso):

  1. Verwenden Sie den „Code Signing Ressourcen Rules Path“ Build-Einstellung (die standardmäßig leer ist), um den Pfad zur Datei XCode festlegen, sollte: $(SDKROOT)/ResourceRules.plist. Dies funktioniert, und scheint ziemlich harmlos, aber es ist frustrierend, in dem Sinne, dass XCode Lage sein sollte, diese auf eigene herauszufinden. (Ich fand diese Lösung in einem sehr altes Thema eingereicht am json-Rahmen).
  2. Verwenden Sie das SDK Ansatz nicht. Stattdessen sind nur die Dateien direkt in das Projekt, und aktualisieren Sie die #import Aussagen mit lokalen Pfaden. Dies ist der Ansatz, den ich nehmen am Ende, da wir eine allgemeine Entscheidung alle externen Abhängigkeiten in das Projekt zu falten selbst (so dass andere Entwickler haben weniger Konfiguration auf ihren Maschinen zu tun, um aufzustehen und läuft).

Ich bin mir nicht sicher, ob es sich um einen Fehler in XCode, oder etwas falsch mit Json-Framework, aber ich habe eingereicht, falls ein Problem auf letztere nur.

UPDATE, den 30. Juni 2010: die Frage, die ich eingereicht wurde geschlossen, und Herr Brautaset Pläne Unterstützung für die SDK-Option in der nächsten Version (2.3) des Projekts zu entfernen. Auch der Code lebt jetzt auf GitHub , wenn die Google-Code-Seiten noch heute existieren.

Andere Tipps

Für mich nach allem überprüft (Co-Design, die Icon-Datei ...), aber Sie Ihre App nicht hochladen können, versuchen Sie die Built-Datei zu löschen. Denken Sie daran, file.app Kopieren Sie Ihre App zip.

Sind Sie sicher, dass Sie Gebäude mit einer Verteilung, im Gegensatz zur Entwicklung, Zertifikat und mobileprovision?

Ich nehme an, Sie das Hochladen eine ZIP-Datei.

Ich habe nur eine App ich hochgeladen und CFBundleResourceSpecification ist nur in den ausgeschilderten Versionen (das heißt das Gerät baut).

Tun Sie alle Ihre Gebäude / Kopieren / von der Kommandozeile zu zippen? Wenn ja, haben Sie sehr vorsichtig über symbolische Links sein. Die .app kommt mit einem Unterverzeichnis als symbolische Verbindung zu einem anderen, und wenn Sie sie kopieren oder Postleitzahl es ohne die richtigen Flaggen, es wird schwer kopieren Sie den Inhalt, die Verwirrungen mit der Mitgestaltung.

Das ist mir passiert ist -. Und das Schlimmste ist, die Ad-hoc-Builds funktioniert ohne die symbolische Verbindung, so dass Sie das Problem bis zum App-Store-Build nicht bemerken

Diese Mitteilung kann aus einem anderen Grund geschehen (wie ich gerade heute Morgen entdeckt habe): Wenn Ihr Projekt mehrere Info.plists darin hat, kann die Anwendung Uploader entdecken Sie die „falsche“ Info.plist und verwirrt.

Dies wurde mir geschieht, weil ein automatisierter Teil des Build wurde eine Info.plist in einem Bündel, die in das Projekt.

Hat Spitze für die Lösung hier: http://infinite-sushi.com/2010 / 08 / the-case-of-the-missing-cfbundleresourcespecification /

Für mich ist die Lösung wurde bei einer Verteilungs Zertifizierung zu schaffen: Apple Developer Provisioning Portal .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top