Ich habe mich sehr bemüht, eine einfache iOS-App zu erstellen, die Push-Benachrichtigungen empfangen kann. Mein einziger Grund dafür ist, ein Verfahren festzulegen, das einige andere Teammitglieder verwenden können, und es war mir nicht möglich, eine aktuelle, funktionierende Version solcher Anweisungen an anderer Stelle im Web zu finden. Unser Shop ist für iOS-Entwickler ziemlich neu. Ich persönlich bin mit iOS-Entwicklern und Xcode völlig unerfahren. Ich bin durch Dutzende von Tutorials, Artikeln und Problemposts von Apple und anderswo gestolpert und habe das Gefühl, fast da zu sein ...
Hier muss ich (beachten Sie, dass ich Xcode 4.3 verwende und zunächst versuche, nur für iOS 5.1 bereitzustellen, und ich stelle fest, dass sich einige Dinge in letzter Zeit gegenüber früheren Versionen von Xcode geändert haben, aber ich bin wieder neu für alle dies - und es völlig verwirrend und verwickelt zu finden):
1) Ich habe ein Bereitstellungsprofil auf meinem iPhone, für das Push aktiviert ist
2) In meinem Test-Xcode-Projekt wurde dieses Bereitstellungsprofil als Signaturidentität ausgewählt (unter Build-Einstellungen> Codesignatur).
3) Ich habe meine Bundle-ID unter Zusammenfassung und Info> Benutzerdefinierte iOS-Zieleigenschaften richtig eingestellt * (glaube ich ??)
4) Ich habe registerForRemoteNotificationTypes in didFinishLaunchingWithOptions meines Delegaten aufgerufen
5) Ich habe didRegisterForRemoteNotificationsWithDeviceToken und didFailToRegisterForRemoteNotificationsWithError in meinem Delegaten eingerichtet, um das Gerätetoken bzw. den Fehler zu protokollieren
6) Ich habe die Option Berechtigungen aktivieren unter Zusammenfassung aktiviert.
7) Direkt darunter ist die ausgewählte Berechtigungsdatei Tinker6 (der Name meines Testprojekts), die automatisch generiert wurde, als ich Berechtigungen aktivieren aktiviert habe
8) In der Tinker6.entitlements-Datei habe ich Folgendes (was ich gesammelt habe, ist korrekt, basierend auf mehreren verschiedenen Posts im gesamten Web, aber ich kann nichts Bestimmtes von Apple selbst finden):
Aktualisiert
9) Außerdem habe ich das Ganze ohne Berechtigungsdatei ausprobiert und erhalte im Wesentlichen das gleiche Ergebnis.
10) Der Inhalt meiner MobileProvision-Datei enthält Berechtigungen (ich habe die Nummer und die Domain verschlüsselt, aber strukturell gleich):
<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>12355456A7.*</string>
</array>
/ Update beenden
Wenn ich versuche, dies auf meinem Gerät auszuführen, wird in der Xcode-Ausgabe der folgende Fehler angezeigt:
2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x24a3b0
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
Ich habe versucht, get-task-allow auf NO zu setzen, aps-environment auf Produktion, alle vier möglichen Kombinationen, dasselbe.
Wie komme ich daran vorbei? Wo ist die endgültige Dokumentation dazu?
- weiterer Hintergrund folgt -
* In Bezug auf die Bundle-ID ist mir immer noch nicht klar, wie dies in Bezug auf App-IDs und Profil-IDs im Bereitstellungsprofil festgelegt werden soll. Im Bereitstellungsportal unter App-IDs habe ich Folgendes (erneut die Nummer und die Domain verschlüsselt):
Und die zwei Stellen Bundle ID ist gesetzt Ich habe dies:
Ich bin mir überhaupt nicht sicher, ob diese korrekt sind oder ob einer oder beide auf 12355456A7.com.whatever.tinker gesetzt werden sollten, obwohl ich diese früher im Prozess ohne Erfolg ausprobiert habe ...
Hinweis Ich stelle fest, dass es viele Posts mit ähnlichen Titeln gibt, die jedoch aufgrund der angegebenen Dateinamen usw. veraltet zu sein scheinen und keine der Lösungen nützlich zu sein scheint. Ich hoffe, dass die von mir angegebene Detailgenauigkeit eine qualitativ hochwertige Antwort rechtfertigt. Ich werde wahrscheinlich so schnell wie möglich ein Kopfgeld vergeben. Wenn Sie eine qualitativ hochwertige Antwort geben, die zu einer Lösung führt, werde ich Ihnen das Kopfgeld gewähren und Ihre Antwort über Twitter und meinen Blog bewerben. Vor allem, wenn Sie einen wirklich guten Artikel in Ihrem Blog veröffentlichen, "hier sind genau die 500 Schritte, die Sie benötigen, um eine einfache Push-Benachrichtigungs-App zum Laufen zu bringen, einschließlich Bereitstellung und was auch immer".