Bardzo się starałem stworzyć prostą, prostą aplikację na iOS, która może odbierać powiadomienia push. Jedynym powodem, dla którego to robię, jest ustanowienie procedury, z której mogliby korzystać inni członkowie zespołu, i nie byli w stanie znaleźć aktualnej, działającej wersji takich instrukcji w innym miejscu w sieci. Nasz sklep jest całkiem nowy dla programistów iOS, osobiście nie mam doświadczenia w programowaniu iOS i Xcode. Natknąłem się na dziesiątki samouczków, artykułów i postów o problemach z Apple i innych miejsc i czuję, że mogę być prawie na miejscu ...
Oto, gdzie muszę (uwaga, używam Xcode 4.3 i początkowo próbuję wdrożyć tylko na iOS 5.1 i rozumiem, że niektóre rzeczy mogły się ostatnio zmienić w porównaniu z wcześniejszymi wersjami Xcode, ale znowu jestem nowy dla wszystkich to - i uznając to za całkowicie zagmatwane i zagmatwane):
1) Mam profil informacyjny na moim iPhonie z włączoną opcją Push
2) W moim testowym projekcie Xcode mam ten profil aprowizacji wybrany jako tożsamość podpisu (w Ustawieniach kompilacji> Podpisywanie kodu)
3) Mam identyfikator pakietu w obszarze Podsumowanie i informacje> Niestandardowe właściwości docelowe systemu iOS ustawione prawidłowo * (myślę?)
4) Mam wywołanie registerForRemoteNotificationTypes w didFinishLaunchingWithOptions mojego delegata
5) Mam didRegisterForRemoteNotificationsWithDeviceToken i didFailToRegisterForRemoteNotificationsWithError w moim pełnomocniku, skonfigurowałem odpowiednio do logowania tokenu urządzenia lub błędu
6) Mam zaznaczone Włącz uprawnienia w Podsumowaniu.
7) Tuż pod wybranym plikiem uprawnień jest Tinker6 (nazwa mojego projektu testowego), który został wygenerowany automatycznie, gdy zaznaczyłem opcję Włącz uprawnienia
8) W pliku Tinker6.entitlements mam następujące informacje (które zebrałem są poprawne na podstawie kilku różnych postów w całej sieci, ale nie mogę znaleźć niczego ostatecznego w samym Apple):
Zaktualizowano
9) Ponadto wypróbowałem całość bez pliku uprawnień i otrzymałem zasadniczo ten sam wynik.
10) Zawartość mojego pliku mobileprovision zawiera poprawnie uprawnienia (zaszyfrowałem numer i domenę, ale strukturalnie są takie same):
<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>
/ koniec aktualizacji
Kiedy próbuję uruchomić to na moim urządzeniu, pojawia się następujący błąd w danych wyjściowych Xcode:
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}
Próbowałem ustawić get-task-allow na NO, aps-environment to production, wszystkie cztery możliwe kombinacje, to samo.
Jak mogę to obejść? Gdzie jest ostateczna dokumentacja na ten temat?
- następuje dalsze tło -
* Jeśli chodzi o identyfikator pakietu, nadal nie wiem, jak należy to ustawić w odniesieniu do identyfikatorów aplikacji i identyfikatorów profilu w profilu aprowizacji. W portalu obsługi administracyjnej pod identyfikatorami aplikacji mam to (ponownie zaszyfrowałem numer i domenę):
A identyfikator zestawu dwóch miejsc jest ustawiony, mam to:
Wcale nie jestem pewien, czy są one poprawne, ani czy jeden lub oba powinny być ustawione na 12355456A7.com.cokolwiek.tinker, chociaż wypróbowałem je wcześniej bez powodzenia ...
Uwaga: Zdaję sobie sprawę, że istnieje wiele postów o podobnych tytułach, jednak wszystkie wydają się być nieaktualne w oparciu o podane nazwy plików i inne, a także fakt, że żadne z rozwiązań nie wydaje się przydatne. Mam nadzieję, że wyższy poziom szczegółowości zagwarantuje dobrą odpowiedź. Prawdopodobnie przydzielę nagrodę tak szybko, jak to możliwe, a jeśli udzielisz wysokiej jakości odpowiedzi, która prowadzi do rozwiązania, nagrodzę Cię, a także będę promować Twoją odpowiedź na Twitterze i moim blogu. Zwłaszcza jeśli opublikujesz naprawdę dobry „tutaj jest dokładnie 500 kroków, których potrzebujesz, aby uzyskać prostą aplikację powiadomień push działającą, w tym obsługę administracyjną i cokolwiek innego” na swoim blogu lub cokolwiek innego.