Mam aplikację, do której przesłaliśmy dziesiątki wersji w ciągu ostatnich 6 miesięcy i używamy APNS. Otrzymałem następujący e-mail od Apple po uaktualnieniu do Xcode 8
Szanowny Twórco,
Wykryliśmy co najmniej jeden problem z Twoją niedawną dostawą aplikacji APP_NAME. Twoja dostawa się powiodła, ale możesz chcieć poprawić następujące problemy podczas następnej dostawy:
Brak uprawnienia do powiadomienia push - Twoja aplikacja zawiera interfejs API dla usługi powiadomień push firmy Apple, ale w podpisie aplikacji brakuje uprawnienia aps-environment. Aby rozwiązać ten problem, upewnij się, że identyfikator aplikacji obsługuje powiadomienia wypychane w portalu obsługi administracyjnej. Następnie podpisz swoją aplikację za pomocą dystrybucyjnego profilu aprowizacji, który zawiera uprawnienie aps-environment. Spowoduje to utworzenie prawidłowego podpisu i będzie można ponownie przesłać aplikację. Aby uzyskać więcej informacji, zobacz „Provisioning and Development” w Przewodniku programowania lokalnych i powiadomień wypychanych. Jeśli Twoja aplikacja nie korzysta z usługi Apple Push Notification, nie jest wymagane żadne działanie. Możesz usunąć interfejs API z przyszłych zgłoszeń, aby zatrzymać to ostrzeżenie. Jeśli korzystasz z platformy zewnętrznej,
Po rozwiązaniu problemów możesz użyć Xcode lub Application Loader, aby przesłać nowy plik binarny do iTunes Connect.
Pozdrowienia,
Zespół App Store
Dziwne jest to, że wszedłem na developer.apple.com -> Certyfikaty, identyfikatory i profile, a mój AppId nadal ma włączone powiadomienia push. Nie robię nic innego, niż kiedykolwiek na tym robiłem, więc jestem ciekawy, czy aktualizacja Xcode 8 coś zepsuła. Jakieś pomysły?
BTW: Link, który umieścili do Przewodnika programowania powiadomień push, był uszkodzony w e-mailu, więc to nie jest dobry znak.
Mam też ten sam problem i jestem pewien, że powiadomienia push są domyślnie wyłączone w Xcode8. Nie zauważyłem tego. Uważaj na to.
źródło
Nastąpiła zmiana w Xcode 8, gdzie Twoje uprawnienia nie pochodzą już z identyfikatorów aplikacji, ale z możliwości wybranych w celu aplikacji. Tak więc, jak powiedział Unome (OP), musisz sprawdzić, czy powiadomienia push są włączone.
Dla mnie nie był to przycisk „Napraw mnie”, ale miałem dwa pliki z uprawnieniami (jeden do programowania i jeden do dystrybucji). Przełączenie funkcji powiadomień wypychanych spowoduje dodanie
aps-environment
klucza - z wartościądevelopment
- do pliku uprawnień programistycznych, ale nie spowoduje dodania go do pliku uprawnień do dystrybucji. Skopiowanie tego samego klucza do dystrybucji pozwoliło pozbyć się wiadomości e-mail z ostrzeżeniem podczas przesyłania do iTunes Connect.W przypadku większości projektów powinno wystarczyć włączenie powiadomień push lub, jeśli jest już włączone, ale klucza nie ma w uprawnieniach, spróbuj go wyłączyć i włączyć ponownie.
źródło
.entitlements
pliku dla bieżącej konfiguracji / schematu, zawsze używaproduction
jakoaps-environment
.production
.development
. Zostanie to zmienione w ipa po zarchiwizowaniu projektu.Z uwag do wydania Xcode :
To wielka zmiana, ponieważ zawsze było dość dziwne, że uprawnienie aps-environment nie wymagało plist, ale wiele innych tak było.
Dla tych z Was, którzy nie chcą po prostu ślepo naciskać „Napraw mnie” i nie mają obecnie pliku uprawnień, jest to po prostu plik plist, do którego odwołanie znajduje się w ustawieniach kompilacji projektu w sekcji „Uprawnienia do podpisywania kodu”
źródło
Po dniu zmagań z Xcode 8 nie mogliśmy zrozumieć, dlaczego
aps-environment
rozwój NIE został dodany do naszych kompilacji debugowania. Brakowało go w sekcji uprawnień w zbudowanej aplikacji do testowania debugowania ... mimo że WŁĄCZONO nową zdolność i istnieje plik uprawnień. Problem polega na tym, że plik uprawnień musi być ustawiony dla DOWOLNEGO zestawu SDK w ustawieniach kompilacji Xcode dla uprawnień do debugowania.źródło
Debug
klucza a ustawieniem go dlaDebug
>Any SDK
jeden, ponieważ ten drugi służy do zastępowania wartości dla określonego zestawu SDK.Otrzymałem tę samą wiadomość e-mail od Apple przy użyciu XCode 7.3.1. To, co zrobiłem, aby rozwiązać problem, to:
źródło
Jeśli korzystasz ze struktur Firebase i nie korzystasz z powiadomień push, istnieją dwa rozwiązania: 1. po prostu pogódź się z komunikatem „problem”, który jest wysyłany do całego zespołu za każdym razem, gdy przesyłasz plik binarny. Aplikacja będzie nadal akceptowana jako zgłoszenie, o ile w rzeczywistości nie używasz powiadomień, możesz zignorować ostrzeżenie. lub 2. zrób to: https://stackoverflow.com/a/46802075/7529450 . Spowoduje to usunięcie irytującego powiadomienia e-mail, a także zostanie zaakceptowane jako zgłoszenie.
źródło
Automatyczne zarządzanie podpisywaniem było dla mnie wyłączone, sprawdziłem i działa dobrze.
źródło
Włączono korzystanie z powiadomień push Xcode 9.
Próbowałem wyłączyć / ponownie włączyć funkcje powiadomień push . (nie działało)
Próbowałem wyłączyć / ponownie włączyć Automatycznie zarządzaj podpisywaniem . (nie działało)
Okazuje się, że musiałem usunąć i ponownie dodać moje profile obsługi administracyjnej. ( zobacz tutaj, jak to zrobić ) Może być konieczne wyłączenie / ponowne włączenie Automatycznie zarządzaj podpisywaniem po oddziałach.
źródło
U mnie problem polegał na tym, że były dwa pliki uprawnień:
Entitlements-Debug.plist
iEntitlements-Release.plist
. I tylko jeden z nich (Debug) ma potrzebne ustawienia.Zmiana wielu wartości opcji Ustawienia kompilacji> Podpisywanie> Uprawnienia do podpisywania kodu na jeden,
MyAppName/MyAppName.entitlements
a następnie ponowne włączenie możliwości> Przełącznik powiadomień push załatwił sprawę .Mam nadzieję, że to pomoże.
źródło
Jeszcze jedna opcja, która zadziałała: kopiowanie i wklejanie źródła
AppName/Entitlements-Debug.plist
doAppName/Entitlements-Release.plist
.źródło