Próbuję skonfigurować moją aplikację do obsługi powiadomień wypychanych, ale nadal otrzymuję ten błąd: Nie udało się uzyskać tokena, błąd: Error Domain = NSCocoaErrorDomain Code = 3000 „Nie znaleziono prawidłowego ciągu uprawnienia„ aps-environment ”dla aplikacji” UserInfo = 0x1f818fc0 { NSLocalizedDescription = nie znaleziono prawidłowego ciągu uprawnienia „aps-environment” dla aplikacji}
- Zrobiłem, że moja aplikacja obsługuje powiadomienia push (tylko w tym momencie).
- Utworzyłem profil aprowizacji PO włączeniu powiadomień push.
- Identyfikator mojego pakietu jest taki sam, jak wyświetlany w profilu.
- W moim pliku profilu znajduje się ciąg: aps-environment
- Upewniłem się, że zarówno w projekcie, jak i miejscu docelowym w sekcji „Tożsamość podpisywania kodu” WSZYSTKIE wartości są wybrane jako mój profil obsługi administracyjnej.
Masz więcej pomysłów? Dzięki.
Odpowiedzi:
W moim przypadku rzeczy w moim profilu aprowizacji:
Różnił się od rzeczy w aplikacji, która została faktycznie zbudowana (możesz dowiedzieć się, gdzie jest zbudowana, patrząc na kartę Dzienniki Xcode)
codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app' <dict> <key>application-identifier</key> <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string> <key>get-task-allow</key> <true/> <key>keychain-access-groups</key> <array> <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string> </array> </dict>
To prawda, mimo że tekst podpowiedzi „Aktualnie pasuje” w sekcji Tożsamość podpisywania kodu wskazywał prawidłowy profil obsługi administracyjnej - dziwne, co? Aby ta dziwna historia była jeszcze dziwniejsza, na urządzeniu był instalowany prawidłowy profil obsługi, kiedy uruchomiłem (Ustawienia-> Ogólne-> Profile), co doprowadziło mnie do przekonania, że profil aprowizacji był prawidłowy - ale wracał do identyfikatora wieloznacznego kiedy aplikacja została faktycznie uruchomiona .
Wskazówką była różnica w wynikach tych dwóch poleceń:
Y2X6Z7Z2GR .com.dca. spolsky-ios vs P5GM95Q9VV .com.dca. spolsky
Kiedy dopasowałem pogrubioną część, część zapisana kursywą zmieniła się, aby dopasować automatycznie. Ponadto dane wyjściowe związane z bezpieczeństwem i kodem były zgodne i nie było więcej błędów związanych z uprawnieniami aps.
Domyślam się, że XCode używał dopasowania w stylu symboli wieloznacznych w moim identyfikatorze nie-wieloznacznym. („spolsky” to w końcu prawie „spolsky-ios”), co wyjaśnia wynik „Obecnie dopasowań”. Ale coś w łańcuchu kompilacji jest bardziej rygorystyczne, więc podczas kompilacji wraca do rzeczywistego identyfikatora wieloznacznego .
źródło
Problem jest spowodowany tym, że bieżący profil obsługi administracyjnej nie zawiera informacji APNS, ponieważ profil obsługi administracyjnej jest tworzony PRZED utworzeniem certyfikatu APNS.
Dlatego, aby rozwiązać problem, utwórz nowy profil obsługi administracyjnej i wybierz profil obsługi administracyjnej w Xcode, aby usunąć błąd.
źródło
Miałem ten sam problem po tym, jak powiadomienia push działały już na moim urządzeniu. Wyglądało na to, że Xcode zapisał coś nieprawidłowo w pamięci podręcznej, więc odświeżenie go rozwiązało mój problem:
źródło
Otrzymałem ten błąd i nie utworzyłem nowego profilu informacyjnego; utworzył nowy, a następnie musiał ponownie uruchomić xCode, ale teraz działa!
źródło
Należy pamiętać, że identyfikator pakietu musi być zgodny z profilem aprowizacji z uwzględnieniem wielkości liter . Miałem coś takiego jak com.FirstLast.appname, podczas gdy powinno to być com.firstlast.appname. Cóż, to zajęło mi jakiś czas.
źródło
Rozwiązałem ten problem, włączając możliwość powiadamiania push.
Wybierz Projekt> Cel> Możliwości> Włącz powiadomienia push
źródło
Jeśli ten problem wystąpił nagle po aktualizacji do Xcode 8, możesz znaleźć ostrzeżenie na ekranie możliwości, które pozwoli ci to naprawić automatycznie:
Wybierz Projekt> Cel> Możliwości> Włącz powiadomienia push
źródło
Produkt-> Clean zrobił to za mnie. Miejmy nadzieję, że zrobi to dla kogoś innego.
źródło
Natknąłem się na to w prawdopodobnie rzadkim przypadku użycia. Pracuję z Xcode 6 i iOS 8. Tworzyłem serię zupełnie nowych projektów aplikacji i próbowałem ponownie użyć tego samego identyfikatora pakietu, aby nie musieć ponownie przechodzić przez całą konfigurację po stronie portalu. To też było tylko do testowania w piaskownicy.
Uważam, że chociaż konfiguracja i rejestracja działałyby dobrze dla pierwszej aplikacji, gdybym usunął tę aplikację z urządzenia, ustawił ten sam identyfikator pakietu dla drugiej aplikacji, a następnie spróbował zarejestrować PN w tej aplikacji, dostałbym ten błąd.
Moim rozwiązaniem było:
.mobileprovision
plik, aby zainstalować go z powrotem w XcodeWydaje się, że takie podejście powoduje utratę jakiegokolwiek poprzedniego stanu i jestem w stanie zarejestrować się dla PN z nowym identyfikatorem aplikacji / pakietu.
źródło
Dla tych, którzy otrzymali ten błąd w iOS 10, możesz spróbować wykonać następujące czynności:
1. wyczyść swój projekt.
2. i zaznacz Cele -> Możliwości -> Powiadomienie push. Jeśli jest wyłączone, włącz.
I problem się rozwiąże.Powyższe kroki pomogą mi pozbyć się tego problemu. Mam nadzieję, że komuś to pomoże.
źródło
Nowy profil aprowizacji zadziałał dla mnie. Upewnij się, że używasz profilu programisty, jeśli jesteś w fazie rozwoju (nie używaj Ad Hoc). Potem było dobrze, nie mam pojęcia, dlaczego stary przestał działać.
źródło