Uprawnienia określone… profil. (0xE8008016). Błąd iOS 4.2

142

Otrzymuję „przerażający” błąd, The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).gdy próbuję wdrożyć moją pierwszą aplikację na urządzeniu z systemem iOS 4.2.6 (Verizon) bez jailbreak. Rzecz w tym, że nie mam Entitlements filew swoim projekcie, bo w ogóle go nie rozpowszechniam, tylko umieszczam na jednym urządzeniu. Przeszedłem przez wszystkie pętle i pętle, przez które Apple podaje (certyfikat, urządzenie, zaopatrzenie) co do joty, i nie mogę dowiedzieć się, co się dzieje.

Czy ktoś może mi pomóc z tym problemem?

Richard J. Ross III
źródło
15
To dziwne, mam głos przeciw. Czy osoba, która to zrobiła, mogłaby to wyjaśnić?
Richard J. Ross III
To pytanie bardzo mi pomógł, bo okazało się, że nie mają uprawnień do pliku (i wspomnieć, że mnie tego świadomi). Usunięcie odniesienia w programie Build Settings > Code Signing > Code Signing Entitlementsumożliwiło mi zbudowanie tego projektu.
Geoff

Odpowiedzi:

64

Właśnie natknąłem się na ten problem, problem polegał na tym, że miałem plik Entitlements.plist w projekcie jako część dystrybucji ad hoc, a jego właściwość get-task-allow (tj. 'Can be debugged') była ustawiona na NO - ustawienie TAK rozwiązało problem i umożliwiło uruchamianie aplikacji z Xcode4 na rozwijanym urządzeniu.

Naturalnie trzeba ustawić go z powrotem na NIE dla dystrybucji ad hoc, ale pomyślałem, że wspomnę o tym na wypadek, gdyby ktoś inny napotkał ten sam problem.

crafterm
źródło
Dzięki - to w końcu rozwiązało mój problem.
EasyCoder
Dziękuję Ci! To mnie zabijało.
alan
„get-task-allow = NO” sprawiło, że moja aplikacja widziała iCloud, gdy jest dystrybuowana jako AdHoc ipa.
Tertium
7
Nawiasem mówiąc, sprawdź, czy dokładnie określasz poprawną tożsamość podpisu w Target -> Build Settings , a nie w Project . Element docelowy zastępuje projekt . Zapomniałem o tym i otrzymałem komunikat o błędzie 0xE8008016.
Tertium
I jeszcze jedno, jeśli Twoja aplikacja używa „iCloud Key-Value Store” w uprawnieniach, musisz usunąć ten klucz dla wersji debugowania. W przeciwnym razie aplikacja nie będzie działać na twoim urządzeniu i będzie nadal wyświetlać ten błąd, nawet jeśli ustawisz opcję „get-task-allow” na TAK.
strangetimes
50

Miałem ten problem z Xcode 4.2.1.

Dla mnie nie miało to nic wspólnego z plikiem uprawnień ani Ad-hoc ...

Wracałem do starego projektu i zapomniałem dodać mojego nowego iPhone'a do prowizji.

Głupi błąd, ale także głupi odpowiadający mu komunikat o błędzie ...: - /

Nożyce
źródło
7
Głupi błąd, który najwyraźniej oboje popełniliśmy.
Patrick Bassut
5
Chciałbym móc +2, co za śmieszny komunikat o błędzie dla tego problemu. Szukałbym godzinami, gdyby nie twój post.
Wesley Smith
Dzięki za wskazanie tego, ja też popełniłem ten głupi błąd. ostatecznie rozwiązany.
Gaurav
44

Jeśli używasz natywnego reagowania, upewnij się, że cel testowy ma ten sam profil aprowizacji, co główny.

Mohebifar
źródło
3
Wielkie
Uratowałeś mój bekon
Theo Bendixson,
Dziękuję bardzo. Uratowałeś mi dzień. :)
pratik
Walczyłem z tym przez godzinę, dopóki nie zobaczyłem twojego komentarza, dzięki !!
ivmos
Byłem martwy w środku, dopóki nie natrafiłem na ten komentarz.
Dog
29

Miałem ten problem z uprawnieniami iCloud. Mój problem polegał na tym, że zapomniałem włączyć iCloud dla mojego identyfikatora aplikacji w portalu obsługi administracyjnej.

Po włączeniu iCloud dla swojego identyfikatora aplikacji musisz ponownie utworzyć profile aprowizacji.

adjwilli
źródło
1
Ten błąd znowu mi się przytrafił. Musiałem dodać moje nowe urządzenie do deweloperskiego profilu informacyjnego, a następnie odświeżyć listę w Xcode.
adjwilli
Miałem ten sam problem. Co jest dziwne, ponieważ ta aplikacja była wcześniej włączona i działała do wdrażania ad-hoc.
raeldor
Miałem problem z uprawnieniami związanymi z iCloud, ponieważ moja aplikacja uzyskiwała dostęp do dokumentów iCloud. Musiałem zaktualizować uprawnienia iCloud w sekcji Możliwości.
user3300864
20

Zachowaj plik uprawnień w pozycji Cel> Ustawienia kompilacji> Podpisywanie kodu> Uprawnienia do podpisywania kodu.

Idź do Cel> Możliwości. Włącz / wyłącz lub wyłącz / włącz jedną z możliwości.

Biegać.

ZpaceZombor
źródło
To zadziałało dla mnie. ale znowu muszę wybrać profil aprowizacji na stronie ustawień kompilacji.
Rinku
1
To zadziałało dla mnie. Powiązane domeny zostały włączone dla mnie. Wyłączyłem to i problem został rozwiązany.
BigRon
19

Udało mi się całkowicie usunąć plik uprawnień, z listy grup oraz z ustawień kompilacji w projekcie i miejscu docelowym. Następnie ponownie utworzyłem uprawnienia z zakładki Podsumowanie w miejscu docelowym i ładował się poprawnie bez żadnych komunikatów o błędach.

Mark Knopper
źródło
Jak wspomniano powyżej, wartość uprawnienia należy również usunąć ręcznie w ustawieniach kompilacji
petershine,
1
usunięcie pliku uprawnień i dodanie go ponownie zadziałało - ja też wyczyściłem
Jasper
To był mój klucz tutaj! Sprawdziłem zarówno projekt, jak i docelowe ustawienia kompilacji. W sekcji Code Signing znajduje się ustawienie „Code Signing Entitlements” - rozwinąłem, podświetliłem zarówno linie debugowania, jak i zwolnienia i nacisnąłem klawisz Delete. Pozwoliło to mojej aplikacji na kompilację bez żadnych błędów. Jednak nadal nie debuguje - natychmiast wychodzi z komunikatem w konsoli, będę musiał to sprawdzić.
Jay Imerman,
1
To zadziałało również podczas próby uruchomienia aplikacji HealthKit „fit” na iOS8 - w pliku uprawnień znajdował się dodatkowy ciąg identyfikacyjny. Usunięcie go pozwoliło na uruchomienie projektu po wykonaniu innych kroków opisanych w tym wątku
Alex Stone
To rozwiązało mój problem z iCloud. Wygląda na to, że w pliku uprawnień było kilka dodatkowych ustawień, których nie było. Usunięcie ich i wszystkich oraz ponowne utworzenie karty Ogólne zadziałało.
AndyDunn
15

Wkładam tylko moje 5 centów. Dla mnie żadne z powyższych nie działało, więc byłem zmuszony do stresu i patrzenia na każdą część procesu świeżym okiem.

W pośpiechu zapomniałem, że próbuję zainstalować moją aplikację na zupełnie nowym urządzeniu.

Mój błąd polegał na tym, że nie zaktualizowałem swojego profilu obsługi administracyjnej, odznaczając moje nowe urządzenie w sekcji „Urządzenia” konfiguracji profilu obsługi administracyjnej w portalu obsługi administracyjnej.

Najwyraźniej nieuwzględnienie urządzenia w profilu obsługi administracyjnej również generuje ten komunikat o błędzie.

PinkFloydRocks
źródło
Zgadzam się - jeśli nie masz prawidłowego profilu obsługi administracyjnej, możesz otrzymać ten błąd.
Matt,
12

Żadna z wielu odpowiedzi nie naprawiła błędu 0xE8008016.

Ale kiedy wybrałem opcję „Automatyczne udostępnianie urządzeń” w Xcode 4> Organizator> Urządzenia> Profile obsługi administracyjnej, w końcu zadziałało.

auco
źródło
1
To rządzi! Dla mnie też zadziałało. Myślę, że było to połączenie wszystkich powyższych, ponieważ aplikacja została pierwotnie opracowana za pomocą XCode 3, a następnie przeniesiona do 4.2, usunąłem plik Entitlements.plist z projektu, skasowałem wpis uprawnień do podpisywania kodu w ustawieniach / kodzie kompilacji Podpisywanie, a następnie ustaw profil informacyjny na automatyczny. Ten ostatni to zrobił.
Jay Imerman,
To też był mój problem, z tym wyjątkiem, że był to automatyczny wybór niewłaściwego profilu obsługi administracyjnej, a po ręcznym wybraniu właściwego problem został rozwiązany.
Abhi Beckert
1
To zrobiło to dla mnie. Nie jestem pewien, w jaki sposób usunięto kilka profili obsługi administracyjnej zespołu programistów iOS, ale kliknięcie przycisku Odśwież na stronie Profile obsługi administracyjnej, o której mowa, rozwiązało ten błąd.
sean808080
11

W moim przypadku był to głupi błąd. Nieprawidłowo ustawiłem schemat „Uruchom”, aby używał konfiguracji kompilacji „Dystrybucja” zamiast konfiguracji „Debugowanie” lub „Wydanie”. Głupi błąd, ale debugowanie go zajęło trochę czasu, więc dodam swoją odpowiedź, aby ulepszyć bazę wiedzy w przepełnieniu stosu!

viggio24
źródło
10

Usuń profile obsługi administracyjnej, wyczyść wszystko, upewnij się, że ustawienia obsługi administracyjnej są prawidłowe, pobierz ponownie i spróbuj ponownie.

W Dyson
źródło
Jakiej wersji Xcode używasz? Jeśli jest to 4.0, były z tym problemy. Może być konieczne ponowne uruchomienie Xcode lub nawet ponowne uruchomienie komputera Mac. Upewnij się, że ustawienia obsługi administracyjnej są prawidłowe zarówno w projekcie, jak i celu. Jednak ustawienie docelowe ma pierwszeństwo przed projektem.
W Dyson
Myślę, że jest to problem z urządzeniem, jest to iPhone 4 firmy Verizon, a przy tym samym profilu obsługi mogę wdrożyć aplikację na moim iPadzie ... czy ktoś inny miał ten problem z iPhonem 4 firmy Verizon?
Richard J. Ross III
Czy używasz starego profilu informacyjnego? Musisz dodać iPhone Verizon jako urządzenie w portalu obsługi administracyjnej, a następnie zaktualizować profil deweloperski, ponownie pobrać i ponownie zainstalować nowy profil. Jeśli to nie zadziała, będziesz musiał podać więcej informacji.
W Dyson
Właśnie wczoraj skonfigurowałem profil aprowizacji, jak może być stary? Apple właśnie ratyfikowało moje żądanie programisty, więc było zupełnie nowe. W każdym razie zobaczę, jak to działa, kiedy zaktualizujemy system do iOS 4.3.
Richard J. Ross III
„Czysty” zrobił to za mnie. -_-
Cœur
5
  1. Otwórz „Portal obsługi administracyjnej iOS” w Safari.
  2. Wybierz „Urządzenia” na pasku bocznym.
  3. Zarejestruj identyfikator UDID swojego urządzenia
  4. Kliknij „Profile obsługi administracyjnej”
  5. Edytuj swój profil aplikacji.
  6. Wybierz właśnie dodane urządzenie.
  7. Pobierz plik .mobileprovision.
  8. Zainstaluj to.
  9. Zbuduj ponownie.
neoneye
źródło
4

Miałem ten sam problem w mojej aplikacji, po kilku miesiącach ta konkretna aplikacja działała dobrze.

Problem polegał na tym, że Możliwości skonfigurowane w moim projekcie Xcode (w obszarze Cele -> {ProjectName} -> Możliwości) nie były takie same jak Możliwości skonfigurowane w profilu aprowizacji (możesz to sprawdzić w centrum członkowskim Apple w sekcji Identyfikator -> Aplikacja Ids -> {identyfikator twojej aplikacji}. W centrum członkostwa zobaczyłem, że Game Center jest włączone, więc w moim projekcie włączyłem również Game Center. Wtedy aplikacja mogła się uruchomić.

Do tej pory nie wiem, jak to działało. To wciąż tajemnica :)

bobsacameno
źródło
Teraz zdałem sobie sprawę, że powiadomienia push już nie działają. Usunąłem funkcje Game Center w Xcode. Aplikacja działa teraz, ale powiadomienia push nie są już dostępne. Czy ktoś wie, dlaczego?
bobsacameno
4

Dla mnie zaznacz opcję „Automatycznie zarządzaj podpisywaniem” w Target rozwiązuj problem!

Carlos Jim
źródło
3

Jeśli nie zmieniłeś niczego związanego z certyfikatami (nie wymieniłeś ich ani nie zaktualizowałeś), po prostu zrób Product -> Clean. Pomogło mi to kilka razy. (Xcode 6.2)

Stefan
źródło
2

Aktualizacja do XCode 4 rozwiązała problem.

Richard J. Ross III
źródło
1
Nie wydaje się, aby był to problem związany z wersją XCode, ponieważ wystąpił błąd w XCode 7.3.1. Musiałem usunąć profil informacyjny i ponownie pobrać to samo z preferencji XCode, aby rozwiązać problem.
Ian Pinto,
@IanPinto Zgadzam się. Głównym powodem, dla którego jest to akceptowana odpowiedź, jest to, że to działa dla mnie . Nie są to już zbyt przydatne informacje, a większość innych odpowiedzi w tym poście zagłosowałem za głosem, ponieważ wszystkie zawierają bardzo cenne informacje dla osób, które będą się tym zajmować w przyszłości. Dobrą rzeczą w odpowiedziach na własne pytania jest to, że nie są one automatycznie wypychane na szczyt stosu, więc i tak niewiele osób zobaczy tę odpowiedź :)
Richard J. Ross III.
2

Dziś napotkałem ten problem i wyciągałem włosy, próbując go rozgryźć. Podobnie jak wiele osób tutaj, zadziałałoby, gdybym usunął opcje iCloud z mojego pliku uprawnień. Kiedy chciałbym debugować aplikację z włączonymi opcjami iCloud, otrzymywałbym błąd 0xe8008016. Nastąpiło to zaraz po unieważnieniu i ponownym wygenerowaniu nowych certyfikatów.

Rozwiązaniem dla mnie było więc włączenie obsługi iCloud dla automatycznie generowanego profilu zespołu Xcode. Zaloguj się do narzędzia do obsługi administracyjnej online, przejdź do App IDs, kliknij Xcode iOS Wildcard App ID, kliknij edit, włącz iCloud, zaznaczając pole wyboru i na koniec klikając Done. Odśwież swoje profile w Xcode, a wtedy zacznie działać.

Ma to sens - podczas debugowania domyślnie jest to profil zespołu, a profil zespołu musi mieć włączony iCloud.

kurtzmarc
źródło
1
TAK! To był mój problem i włączenie iCloud na All Apps ID załatwiło sprawę. Wielkie dzięki
Guy Moreillon,
2

Zdarzyło mi się to, gdy przez pomyłkę próbowałem użyć profilu aprowizacji dystrybucji sklepu z aplikacjami do testów lokalnych. Kiedy użyłem odpowiedniego profilu rozwojowego, działało dobrze. Może to też komuś pomoże.

Thomas Mondel
źródło
co mogę zrobić, jeśli chcę przetestować profil aplikacji, który został przesłany do App Store? Czy jest na to sposób?
bobsacameno
2

To zadziałało dla mnie ...

  1. Usunąłem Entitlementsplik z target.
  2. Usunąłem aplikację ze wszystkich moich urządzeń
  3. Cleaned kompilacja w Xcode
  4. * opcjonalnie usuń profil informacyjny i dodaj go ponownie

Mam nadzieję, że u was też się uda :)

Joe Barbour
źródło
usunięto plik uprawnień z miejsca docelowego, działa dla mnie. Ale nie rób tego, jeśli to najlepszy sposób na zrobienie tego.
YuAn Shaolin Maculelê Lai
2

Oto, co rozwiązało mój problem: usunięcie ścieżki w sekcji Uprawnienia do podpisywania kodu w ustawieniach kompilacji obiektów docelowych.

Jeremy Kelleher
źródło
Proszę o wyjaśnienie „jak”?
Agent Zebra
@AgentZebra Kliknij główny plik projektu> wybierz swoją aplikację z "Cele"> Ustawienia kompilacji> Podpisywanie> Uprawnienia do podpisywania kodu, usuń wyświetloną tam wartość.
weienw
2

Mój profil aprowizacji od programisty Apple był zgodny z moimi możliwościami Xcode, ale nadal nie został zbudowany na moim urządzeniu, dopóki nie wykonałem następujących czynności:

  1. Usuń / Usuń plik uprawnień z projektu Xcode.

  2. Wróć do karty możliwości Xcode

  3. Kliknij przycisk „Napraw problem”, aby Xcode ponownie dodał plik uprawnień.

Pracował dla mnie, mam nadzieję, że to komuś pomoże.

Henry Heleine
źródło
2

Zdarzyło mi się w Xcode 8, częściowo było to spowodowane nowym Provisioning Profileustawieniem kompilacji, ponieważ w tej wersji Xcode są dwa wpisy dla profilu aprowizacji:

  • Profil obsługi administracyjnej
  • Profil obsługi administracyjnej (wycofane)

Moja wina polegała na tym, że zaktualizowałem tylko pierwszy z nich, a przestarzały wpis nadal wskazywał na nieprawidłowy profil obsługi administracyjnej. Zmiana obu na tę samą wartość rozwiązała problem (wyczyszczenie przestarzałego wpisu powinno również przynieść ten sam efekt).

Cristik
źródło
1

W moim przypadku wygląda na to, że Xcode (potajemnie) zresetował schemat. Okazało się, że konfiguracja kompilacji dla archiwum była ustawiona na wydanie zamiast dystrybucji, a po zmianie na prawidłową zadziałała.

Myślę, że lepiej sprawdzić schematy, a także ustawienia kompilacji.

YoonHo
źródło
1

Miałem stary projekt i ten sam problem i rozwiązałem.


1.Przejdź do podsumowania 2.Podsumowanie mają grupy pęków kluczy i usuń obiekt tych grup.

Mam nadzieję, że to zadziała. Pozdrowienia.

Erhan Demirci
źródło
1

Używam Xcode 6 i napotykam ten problem na jednym konkretnym telefonie iPhone 4

na koniec idę do device => Provision profile =>

a następnie dodaj profil ręcznie i problem zostanie rozwiązany.

chochlik 228
źródło
1

U mnie w Xcode 5.1 otrzymywałem The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile., próbując przetestować aplikację na moim urządzeniu. Certyfikat rozwoju urządzenia musi stracić ważność w lutym 2015 r.

Problem został rozwiązany:

Wybrany Target->Capabilities , w GameCenter, tutaj pojawiał się błąd w uprawnieniu GameCenter, ponieważ nie został dodany do projektu, chociaż pierwsza wersja aplikacji została wydana przez ten sam XCode 5.1, ale wcześniej nie było takich błędów.

Poniżej podano przycisk z tytułem Fix Issue . Po kliknięciu dodano uprawnienie GameCenter i problem został rozwiązany.

Po totemach ekran wygląda następująco:

wprowadź opis obrazu tutaj

Dla mnie nie miało to nic wspólnego z certyfikatem. Aplikacja działa teraz pomyślnie na urządzeniu.

MTahir
źródło
1

Jeszcze jeden potencjalny problem, który spowoduje wyświetlenie tego komunikatu o błędzie: Jeśli używasz całkowicie prawidłowego profilu obsługi administracyjnej dla głównej aplikacji, ale masz wygasły lub w inny sposób nieprawidłowy profil obsługi administracyjnej dla rozszerzenia widżetu Dzisiaj. Wyobrażam sobie, że byłoby tak samo w przypadku rozszerzenia zegarka Apple.

Sprawdź wszystkie profile!

apb
źródło
1

Sprawdź dostęp do KeyChain!

W moim przypadku użyłem niewłaściwego certyfikatu dystrybucyjnego skojarzonego z profilem informacyjnym.

Daisy R.
źródło
1

Kod, nad którym pracowałem, miał inny identyfikator pakietu w Info-plist niż w Product Bundle Identifier ustawieniach kompilacji.

Znalazłem to, ponieważ zauważyłem ten komunikat w konsoli urządzenia w widoku urządzeń:

MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'

UglyBlueCat
źródło
0

Jeśli próbujesz aktywować synchronizację iCloud, musisz włączyć iCloud dla AppID, który jest używany do tworzenia profilu udostępniania deweloperskiego (który Xcode robi automatycznie). Musisz również włączyć to dla profili dystrybucji.

Problem polega na tym, że odświeżanie profili w Xcode nie powoduje ich odnowienia; są po prostu ponownie pobierane. Dlatego w portalu obsługi administracyjnej systemu iOS w obszarze Udostępnianie / programowanie należy sprawdzić profil oznaczony etykietą (zarządzany przez Xcode) i usunąć go (przycisk Usuń wybrane). Zrób to dla WSZYSTKICH profili, rozwoju i dystrybucji, które musisz zregenerować.

Teraz w Xcode w Organizatorze usuń profile obsługi administracyjnej, które chcesz zastąpić.

Teraz zdobądź nowe. Jeśli tworzysz dla więcej niż jednego zespołu i chcesz odświeżyć tylko jeden, wybierz odpowiedni zespół w lewym okienku w obszarze ZESPOŁY, w przeciwnym razie wybierz opcję Profile aprowizacji w obszarze BIBLIOTEKA, a następnie wybierz opcję Odśwież.

Na koniec usuń wszystkie stare profile obsługi administracyjnej z urządzenia, które mogą kolidować z nowymi, ponieważ profile nigdy nie są usuwane automatycznie; nowsze profile są po prostu dodawane do listy.

Ryan H.
źródło