Mam aplikację do przesłania, gdy została odrzucona i otrzymałem wiadomość
Brak uprawnienia do powiadomienia push - Twoja aplikacja wydaje się rejestrować w usłudze Apple Push Notification, ale uprawnienia podpisu aplikacji nie obejmują uprawnienia „aps-environment”. Jeśli Twoja aplikacja korzysta z usługi Apple Push Notification, upewnij się, że identyfikator aplikacji obsługuje powiadomienia push w portalu obsługi administracyjnej i prześlij ją ponownie po podpisaniu aplikacji za pomocą profilu udostępniania dystrybucji, który obejmuje uprawnienie „aps-environment”.
Sprawdziłem moją obsługę ad-hoc i znalazłem środowisko aps i produkcję, jednak kiedy otwieram moją dystrybucję, nie znajduję takich.
Czy to jest przyczyną tego komunikatu o błędzie i odrzucenia jabłka, jak mogę to naprawić?
źródło
upewnij się, że powiadomienia push ID są włączone po stronie produkcyjnej
jak na zdjęciu
z sekcji produkcyjnej utwórz dwa certyfikaty ze swoim identyfikatorem (włączone powiadomienia push)
Certyfikat App Store i Ad Hoc
Certyfikat SSL (Sandbox) usługi Apple Push Notification
W sekcji Dystrybucja utwórz profil App Store ze swoim identyfikatorem
podczas przesyłania kosza należy sprawdzić, który profil obsługi administracyjnej był używany i mieć wiele uprawnień
wszystkie te przypadki powodują ten problem, mam nadzieję, że będzie to pomocne dla Ciebie
źródło
W XCode 8 musisz włączyć wypychanie w zakładce Możliwości na swoim miejscu docelowym, oprócz włączania wszystkiego w przepisach i certyfikatach: Xcode 8 „Brak uprawnienia aps-environment w sygnaturze aplikacji” przy przesyłaniu
Mój wpis na blogu o tym tutaj .
źródło
Otrzymałem tę wiadomość z innego powodu - przesłałem aplikację za pośrednictwem Xcode bez wcześniejszego tworzenia profilu dystrybucji App Store specjalnie dla tej aplikacji. Uważam, że Xcode automatycznie używa profilu wieloznacznego App Store, jeśli masz zainstalowany. Jednak aplikacja korzysta z powiadomień push i wymaga własnego profilu.
Rozwiązaniem jest utworzenie nowego profilu dystrybucji App Store dla aplikacji. Następnie pobierz go, przeciągnij do Xcode i zmodyfikuj ustawienia kompilacji projektu> Podpisywanie kodu> Zwolnij, aby użyć nowego profilu.
źródło
Kontynuując odpowiedź udzieloną przez @Vaiden, w Xcode 8 możesz rozwiązać ten problem, wybierając cel i klikając „Napraw problem”. Oczywiście nadal będziesz musiał skonfigurować powiadomienia push w portalu Apple Developer (możesz nieco uprościć ten proces, korzystając z nowej opcji „Automatycznie zarządzaj podpisywaniem”, która oszczędza kłopotów z pobieraniem profili udostępniania).
źródło
Dla tych, którzy napotykają ten problem, którzy faktycznie używają powiadomień push w swoich aplikacjach:
Nasze certyfikaty push miały niedawno wygasnąć, więc stworzyliśmy nowe certyfikaty push dla deweloperów / produktów w standardowy sposób opisany przez Apple (nie będę tutaj omawiać szczegółów, jest mnóstwo informacji na ten temat w całej sieci podczas aktualizacji Twoje certyfikaty push na kolejny rok użytkowania).
Po wykonaniu tej czynności pojawił się jednak problem w tym pytaniu. Niezależnie od tego, co zrobiliśmy, otrzymaliśmy tę wiadomość e-mail od Apple po przesłaniu naszej aplikacji. Kiedy sprawdziliśmy ustawienia naszego profilu udostępniania dystrybucji w Apple Member Center, wszystko wyglądało dobrze (funkcja Push była włączona dla naszego identyfikatora aplikacji dla obu produktów i deweloperów, a nasz profil udostępniania dystrybucji był nadal połączony z tym identyfikatorem aplikacji, dosłownie właśnie utworzyliśmy nowe certyfikaty push na kolejny rok, co jest standardową praktyką).
Na koniec rozwiązałem to dla mnie:
Wiem, że to nie jest tak szczegółowe, jak powinno, ponieważ powinno mieć zrzuty ekranu, spróbuję zaktualizować to zrzutami ekranu, kiedy będę mógł, ale na razie jestem teraz w kryzysie czasowym i chciałem uzyskać jist co tam zrobiłem. Istnieje również duża szansa, że niektóre lub większość z opisanych przeze mnie kroków nie jest konieczna. Umieszczam je tutaj, ponieważ je wykonałem i mogły one doprowadzić do ostatecznego rozwiązania.
źródło
sprawdź, czy Twój identyfikator aplikacji jest aktywny w trybie push na developer.apple.com w portalu obsługi administracyjnej iOS Jeśli nie, to włącz go, skonfiguruj certyfikat Push SSL dla identyfikatora aplikacji Pobierz go i zainstaluj ponownie w swoim pęku kluczy Jeszcze raz pobierz swój profil dystrybucji w swojej Xcode Liabrary
źródło
Miałem też do czynienia z tym problemem, nawet jeśli w ogóle nie korzystałem z powiadomień push w mojej aplikacji, tworzenie nowego profilu obsługi administracyjnej również nie działało dla mnie.
1. Utwórz nowy certyfikat tylko dla Ad hoc i App Store.
2. Następnie utwórz profil dystrybucyjny z tym certyfikatem i zintegruj profil z Xcode.
Następnie nowo przesłana kompilacja z tym profilem została zatwierdzona bez żadnego ostrzeżenia.
źródło
W moim przypadku nawet utworzyłem plik myapp.profile i ustawiłem go ręcznie w xcode, a kiedy wybrałem "pokaż w wyszukiwarce" i zlokalizowałem embedded.mobileprovision i sprawdziłem, czy plik aps-environment znajduje się w pliku, błąd był wciąż tam.
Następnie udałem się do centrum programistów i stwierdziłem, że stan XC: myapp.profile jest nieprawidłowy. Zaktualizowałem go i zainstalowałem XC: myapp.profile i działało dobrze.
Myślę, że xcode próbuje zarządzać profilem i musisz sprawdzić profil aprowizacji podczas przesyłania pliku binarnego do magazynu i upewnić się, że jest poprawny. A według innych odpowiedzi może to być spowodowane z różnych powodów, więc może być naprawdę irytujące.
AKTUALIZACJA:
Po podpisaniu się za pomocą pobranego profilu i potwierdzeniu, że
aps-environment
był tam podczas próby przesłaniaApp Store
, powinieneś być w stanie zmienić profil i podmiot podpisujący kod na automatyczny iiOS Developer
. Mam nadzieję, że można to poprawić w Xcode 7.źródło
To właśnie naprawiło to dla mnie. (Próbowałem już włączać / wyłączać te funkcje, odtwarzać profil informacyjny itp.).
Na karcie Ustawienia kompilacji w sekcji Uprawnienia do podpisywania kodu mój plik .entitlements nie był odsyłaczem do wszystkich sekcji. Po dodaniu go do sekcji Any SDK błąd został rozwiązany.
źródło
Aby rozwiązać ten problem w przypadku „wyrzuconej” aplikacji, przeszedłem do karty możliwości, włączyłem wypychanie, a następnie ponownie wyłączyłem. Spowodowało to usunięcie ustawienia „uprawnienia” APNS z pliku .entitlements.
źródło
Miałem ten sam problem i moim rozwiązaniem było dodanie uprawnienia do powiadomień push z Cel -> Możliwości.
źródło
Zdarzyło mi się to nagle, ponieważ profil dystrybucji mojej aplikacji wygasł. Zamiast tego Xcode zaczął używać profilu wieloznacznego, który nie miał włączonego uprawnienia do powiadomień push. Nie otrzymałem żadnego ostrzeżenia. Poprawka była łatwa; Musiałem tylko wygenerować kolejny profil dystrybucji dla mojej aplikacji w Apple Developer Member Center, pobrać go i kliknąć dwukrotnie, aby zainstalować w Xcode.
źródło
Jest tutaj kilka naprawdę dobrych sugestii.
Nawiązując do ostatniego zrzutu ekranu, który Mina dostarczyła, po początkowej archiwizacji mojej aplikacji, profil informacyjny wspomniany podczas przesyłania zawierał symbol wieloznaczny (XC. *). To jest źle.
Rozwiązanie tego problemu wymagało sporego wysiłku. Musiałem wykonać kombinację sugestii, które przedstawili Simon Woodside i Mina Fawzy.
Jeśli masz jakiekolwiek istniejące certyfikaty i profile aprowizacji związane z projektem, teraz byłby dobry moment, aby usunąć je wszystkie lokalnie i odwołać je wszystkie zdalnie. Daj sobie nowy początek.
Szczegółowa sugestia Miny Fawzy jest doskonała. Wykonanie sugestii Miny, jeśli zostanie wykonane poprawnie, powinno zająć się tobą online.
Wpisz sugestię Simona. Dwie rzeczy, które musiałem sprawdzić w swoim projekcie. Korzystając z XCode, przejdź tutaj:
PROJEKT -> BUDUJ USTAWIENIA -> PODPISYWANIE KODÓW
Przejrzyj tożsamość podpisywania kodu i profil obsługi administracyjnej . Upewnij się, że ustawiłeś te dwie właściwości na nazwę projektu. Nie pozwól XCode na automatyczne wybieranie za Ciebie i nie używaj jakiejś ogólnej tożsamości podpisywania kodu (np. Iphone Developer).
Przed podjęciem decyzji o archiwizacji upewnij się, że możesz faktycznie zainstalować aplikację na swoich urządzeniach.
źródło
Największym problemem, jaki mam po włączeniu
Push Notification
fromCapabilities
i przerobieniu wszystkich certyfikatów, jest to, że nazwa docelowa i nazwa folderu, w którym był przechowywany projekt, składały się z 2 ciągów oddzielonych spacją. Po usunięciu przestrzeni wszystko działało dobrze!źródło
Miałem ten problem, ponieważ mój plik uprawnień został zniekształcony z powodu wcześniejszej ręcznej edycji. Usunąłem nieprawidłowo sformatowaną składnię wpisu uprawnień, a następnie mogłem kliknąć „napraw” na karcie możliwości, a Xcode dodał uprawnienie do mojego pliku.
Oto przykład prawidłowo sformatowanego pliku uprawnień („
Runner.entitlements
”):źródło
FIX IDEA Hej, więc stworzyłem aplikację i nie korzystałem z żadnych funkcji powiadomień push, ale nadal otrzymałem e-mail. Po sprawdzeniu certyfikatów, identyfikatorów i profili identyfikatora pakietu, którego użyłem do stworzenia mojej aplikacji w Apple Store Connect w portalu dla programistów Apple, zdałem sobie sprawę, że powiadomienia push są włączone.
Musisz:
przejdź do witryny logowania programisty Apple, gdzie możesz zarządzać swoimi certyfikatami, tak jak 2. wybierz kartę „Certyfikaty, identyfikatory i profile” po prawej stronie 3. teraz wybierz „Identyfikatory” 4. i identyfikator pakietu z listy po prawej 5. teraz przewiń w dół, aż zobaczysz powiadomienie push 6. wyłącz je 7. zarchiwizuj kompilację i prześlij ją ponownie do Apple Store Connect
Mam nadzieję, że to pomoże!
źródło