Plik wykonywalny zostanie podpisany nieprawidłowymi uprawnieniami w Xcode

113

Wystąpił ten błąd z Xcode 5, gdy próbuję uruchomić aplikację na moim urządzeniu.

Plik wykonywalny został podpisany z nieważnym uprawnieniem

Działa dobrze z Xcode 4.x. Czy ktoś wie, jak pozbyć się błędu?

wprowadź opis obrazu tutaj

Emmy
źródło
Mam Xcode 8.3.3 i ta odpowiedź faktycznie zrobiła to za mnie: stackoverflow.com/a/40464055/4177294
Nuno MSB

Odpowiedzi:

102

Zmagałem się z tym problemem przez godzinę i wreszcie znalazłem rozwiązanie. Okazało się, że zespół deweloperski był inny w ProjectTarget i ProjectTests.

Krish Wadhwana
źródło
13
Dzięki wielkie! To po prostu pomogło mi i zaoszczędziło dużo czasu!
Marky
Łał! Dzięki @Krish
Kqtr
proszę pana, właśnie uratowałam mój czwartek, nie mogę wam wystarczająco podziękować
Samer Murad
gdzie mogę znaleźć ProjectTarget i ProjectTests?
Pablo
ach! znalazłem to! dni na to i marnowała tylko tę konfigurację! ??
Pablo,
77

Ponowne uruchomienie Xcode było tym, co zadziałało.

RaffAl
źródło
15
Dlatego Xcode przyjął uniwersalną poprawkę firmy Microsoft. ;) Dla przypomnienia, nadal jest to problem, a ponowne uruchomienie nadal jest poprawką (używam wersji 7.3.1).
Eric Soyke
3
jeszcze jedno +1, ponownie staw czoła temu problemowi, a potem google, wylądowałem tutaj.
jayellos,
Po godzinach sprawdzania każdego szczegółu ... zadziałało to w XCode 8
Matej Ukmar,
Czy ktoś ma solidne rozwiązanie tego problemu !!!!, Wszystkie te rozwiązania wyglądają jak jakieś sytuacyjne obejścia. Proszę pomóż.
Max
Właściwie co zespół rozwoju projektu i projekt rozwoju zespołu badanie samo pracował dla mnie
Tahmid Rahman
35

Znalazłem problem. Aplikacja, którą utworzyłem na developer.apple.com nie zawiera dźwięku między aplikacjami. Plik plist uprawnień projektu w Xcode ma ustawienia audio między aplikacjami na TAK (domyślnie). Po zmianie ustawienia konfiguracji aplikacji na developer.apple.com, aby włączyć dźwięk między aplikacjami. Wtedy moja aplikacja działa na moich urządzeniach. Wydaje mi się, że jest to nowa zasada firmy Apple, która ma zapewnić spójność ustawień aplikacji zarówno na stronie developer.apple.com, jak i w ustawieniach projektu xcode.

Emmy
źródło
10
Przełączyłem funkcję Inter-App Audio na ON, a następnie na OFF, iw ten sposób aplikacja działała ... WT *?
Ferran Maylinch
Wow, niewiarygodne. Wciąż odpowiednia poprawka, chociaż dla mnie była to funkcja grup aplikacji.
Keller
To samo tutaj! To bardzo dziwne. Myślę, że możesz przełączyć dowolną możliwość, aby to naprawić.
Andre Simon
Próbowałem wszystkiego nadal napotykając ten sam problem!, Wszelkie sugestie
Max
24

Udało mi się to naprawić, włączając / wyłączając uprawnienie „Game Center” w Xcode 5 :-)

Nik
źródło
5
DZIĘKUJĘ CI! Nie masz pojęcia, jak bardzo byłem sfrustrowany tego ranka, dopóki nie natknąłem się na twoją odpowiedź. Zdecydowanie naprawiłem to dla mnie.
Gasper Kolenc,
1
Należy pamiętać, że Xcode wygeneruje dla Ciebie profil informacyjny i unieważni Twój niestandardowy profil informacyjny.
Van Du Tran
@VanDuTran nie, nie będzie.
Nik
Wystąpiło to w aplikacji Xamarin, a także w Visual Studio dla komputerów Mac. Więc to nie tylko izolowane do Xcode.
Dan Beaulieu
19

Żadne rozwiązanie nie zadziałało, dopóki nie sprawdzę i nie ustawię celu testów aplikacji na ten sam profil aprowizacji, co główna aplikacja. Lub, jeśli używasz automatycznego śpiewania, upewnij się, że masz wybrany ten sam zespół w celu testów.

Matej Ukmar
źródło
Bardzo dobra uwaga, dzieje się tak, gdy zmienisz swój zespół w głównym celu, ale nie w celu testowym. Zmiana zespołu w celu testowym na zespół w głównym celu rozwiązała problem za mnie.
dan
Dzięki!! To ostatecznie naprawiło to dla mnie. Uprawnieniami był całkowity czerwony śledź.
Reid,
19

W przypadku XCode 10 może być konieczne użycie starszego systemu kompilacji

Zmiany można dokonać w ustawieniach pliku / projektu. BŁĄD ITMS-90174: „Brak profilu obsługi administracyjnej - aplikacje iOS muszą zawierać profil obsługi administracyjnej w pliku o nazwie embedded.mobileprovision”.

Ogłoszenie cordova / ionic: https://github.com/apache/cordova-ios/issues/407

Chen Xing
źródło
1
chciałbym dodać dla użytkowników Cordova / Ionic, że może zajść potrzeba zmiany wygenerowanego projektu Xcode na tryb starszej wersji za pomocą opcji „Plik> Ustawienia projektu / obszaru roboczego” i zmień go na system Legacy Build ”, jak opisano tutaj: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

Rozwiązanie dla najnowszego Xcode :

Najpierw musisz sprawdzić, co jest włączone w Twoim centrum członkowskim dla Twojego konkretnego AppID :

wprowadź opis obrazu tutaj

Następnie w odpowiednim celu w Xcode trzeba włączone te same możliwości: W tym przypadku: App Group, Game Center, In-App Purchase. Wszystkie z nich muszą być włączone w Twoim celu w Xcode.

wprowadź opis obrazu tutaj

Jednak nie ma to znaczenia dla trybu DEBUG :

wprowadź opis obrazu tutaj

ma to duże znaczenie dla twojego trybu RELEASE : wprowadź opis obrazu tutaj

Zauważ, że Game Centeri In-App Purchasesą domyślnie włączone w Member Center, ale są wyłączone w celu Xcode.

Bartłomiej Semańczyk
źródło
3
Czy można usunąć Game Center i zakup w aplikacji ze strony developer.apple.com?
Noitidart
12

Myślę, że twój problem leży w profilu, którego używałeś xCode4.6, a teraz używasz xCode5.

Musisz odświeżyć certyfikaty / profile aprowizacji poprzez XCode> Preferencje> Konta

XCode> Preferencje> Konta> Kliknij swoje KONTO DEV> przycisk Wyświetl szczegóły (prawy dolny róg)> Pojawi się ekran Signing Iden / PPs> naciśnij Odśwież.

Następnie wybierz ponownie z ustawień kompilacji właściwy profil oraz wyczyść i skompiluj projekt.

Mam nadzieję, że to ci pomoże.

Manthan
źródło
1
Dzięki za pomoc. Znalazłem problem. Aplikacja, którą utworzyłem na developer.apple.com nie zawiera dźwięku między aplikacjami. Plik plist uprawnień projektu w Xcode ma ustawienia audio między aplikacjami na TAK (domyślnie). Po zmianie ustawienia konfiguracji aplikacji na developer.apple.com, aby włączyć dźwięk między aplikacjami. Wtedy moja aplikacja działa na moich urządzeniach. Wydaje mi się, że jest to nowa zasada firmy Apple, która ma zapewnić spójność ustawień aplikacji zarówno na stronie developer.apple.com, jak i w ustawieniach projektu xcode.
Emmy
6

Musiałem dopasować możliwości aplikacji w Xcode5 poniżej

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

z tym w profilu prowokacji.

Nithin Haridas
źródło
Rozwiązano również problem odpowiedzi APN na błąd „Nieprawidłowy token”.
hiroshi
dodanie uprawnień do centrum gier i usunięcie go z powrotem zadziałało również dla mnie. Nie mam pojęcia dlaczego.
Rukshan Marapana
5

xcode 6.1 (przykład HealthKit)

Otrzymałem ten błąd z powodu integracji HealthKit: włączyłem zakup w aplikacji, Game Center i Healkit rozwiązały mój problem. To samo, które włączyłem w profilu Provision.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Vinod Joshi
źródło
Musiał zrobić to samo w przypadku udostępniania pęku kluczy. Miałem też rozszerzenie aplikacji, musiałem to zrobić w obu miejscach, żeby działało.
CaseyB
5

(Xcode 6.1)

Problem dotyczył mnie w ustawieniach kompilacji; Podczas próby wdrożenia na urządzeniu mój profil aprowizacji był ustawiony na profil produkcyjny sklepu App Store. Zmieniłem to na „Automatyczny” i rozwiązało to mój problem. Możesz również ustawić go w swoim Dev Provision Profile.

Mam również 2 certyfikaty, więc dodałem drugi certyfikat do mojego przepisu deweloperskiego. Inni prawdopodobnie nie będą mieli tego problemu.

Ian Newland
źródło
Dzięki! Przełączenie na „Automatyczny” zrobiło to za mnie
Emastmagy MastMagy
Dziwne, że zmiana na automatyczną naprawiła to, ale zadziałała dla mnie. Mój profil obsługi administracyjnej był ustawiony na com.mycompany. * I otrzymywałem ten błąd. W zakładce Możliwości pojawiło się czerwone FixMe, ale po naprawieniu tego problemu nadal otrzymywałem błąd nieprawidłowych uprawnień. Następnie spróbowałem zmienić mój profil obsługi administracyjnej z com.mycompany. * Na automatyczny i rozwiązałem problem. Dokładnie sprawdziłem, czy bundleID to com.mycompany.blabla, więc wygląda na to, że jest to jakiś błąd w Xcode. Używam Xcode 6.3.2.
Jim Range
5

Miałem podobny problem, kiedy zaktualizowałem do Xcode 10, rozwiązałem go, przechodząc do Plik> Ustawienia projektu, w opcji „Nowy system budowania” wybierz „Legacy Build System”. To zrobiło dla mnie sztuczkę, mam nadzieję, że to komuś pomoże.

Jose Rojas
źródło
4

Wydawało się, że proste czyszczenie i budowanie rozwiązało problem.

Maxwell
źródło
Dla mnie to też była poprawka.
Enijar
4

Jeśli ten problem jest taki sam, być może zapomnisz ustawić zespół w unittest w swoim docelowym projekcie, spróbuj zrobić to zdjęcie

wprowadź opis obrazu tutaj

Papon Smc
źródło
3

I rozwiązać ten problem poprzez usunięcie wszystkich "PROVISIONING_PROFILE=..."i "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...w project.pbxproj i ponownie Xcode i profili ustawionych rezerw na celu ponownie.

BabyPanda
źródło
3

Jeśli ponowne uruchomienie Xcode nie zadziała, utwórz nowy profil obsługi i pamiętaj o dołączeniu urządzeń testowych.

mohammad alabid
źródło
Ponowne uruchomienie / czyszczenie nie zadziałało, ale zdałem sobie sprawę, że nie dodałem mojego nowego telefonu testowego do profilu Ad Hoc, z którego korzystałem do kompilacji. Ponownie wygenerowałem / pobrałem zaktualizowany profil i błąd zniknął. Uwaga: po wykonaniu tej czynności może pojawić się błąd „zabezpieczeń”, co oznacza, że ​​urządzenie wymaga autoryzacji aplikacji. Wystarczy dotknąć aplikacji na urządzeniu, aby aktywować alert „zaufany programista”.
SafeFastExpressive
3

W moim przypadku urządzenie nie zostało dodane. Musiałem więc dodać urządzenie i wygenerować nowy profil obsługi.

Xavi Valero
źródło
3

Kolejna rzecz do sprawdzenia - upewnij się, że masz wybrane właściwe encje w obu

Cele -> Twój cel -> Ustawienia kompilacji -> Podpisywanie

i

Projekt -> Twój projekt -> Ustawienia kompilacji -> Jednostka podpisująca kod

Otrzymałem tę wiadomość, gdy w jednym z nich został wybrany pełny profil programisty, a w drugim inny (niebędący deweloperem) identyfikator Apple ID, nawet bez żądanych uprawnień w aplikacji.

CupawnTae
źródło
2

Wygląda na to, że jest to mały błąd w Xcode. Mimo to spróbuj go zarchiwizować , nawet jeśli występuje problem z plikiem entitlements. Jeśli Twoje uprawnienia są w porządku, zostaną przesłane bez żadnych problemów. Apple akceptuje to, a Twoja aplikacja zostanie opublikowana w AppStore.

Zrobiłem to i to działało:)

Bartłomiej Semańczyk
źródło
2

Może to być również spowodowane niewłaściwym schematem.

Saurabh Bisht
źródło
1

Miałem ten sam problem w XCode 5. To i tak mi pomogło.

XCode > Preferences > Location tab > DerivedData

Naciśnij małą strzałkę w lewo, aby otworzyć DerivedData w Finderze. Przenieś do kosza projektu i odbuduj.

Zrzut ekranu

Prcela
źródło
Myślę, że powinno być właściwe uzasadnienie, dlaczego usunięcie danych pochodnych rozwiąże problem.
Kavita
1

Miałem jakiś problem. Rozwiązanie: przejdź do właściwego celu -> możliwości -> dla mnie był problem z „Zakupem w aplikacji” i przyciskiem, aby go naprawić. Operacja wyłączenia - naprawiono problem.

Anton Plebanovich
źródło
1

W moim przypadku: Potrzebuję włączyć Inter-App Audio in

Capabilities -> Inter-App Audio

Myślę, że ponieważ używam Powiadomienia Parse.com, potrzebuję linku do AudioToolbox.framework

Nguyen Tran
źródło
1

Włączanie możliwości -> Audio między aplikacjami rozwiązało ten problem również dla mnie. Próbuję też wysyłać powiadomienia push poprzez parsowanie

jstn
źródło
1

Odpowiedzi tutaj wydają się trochę niewystarczające, więc dodaję moje dwa centy:

Prawdziwym rozwiązaniem jest to, że zasadniczo występuje rozbieżność między tym, co jest przechowywane w Twoim profilu informacyjnym (sprawdź na stronie developer.apple.com -> członkowie -> certyfikaty -> certyfikat, którego używasz [pamiętaj, aby sprawdzić, czy programowanie / produkcja) i co jest włączone w Twojej aplikacji (kliknij dwukrotnie nazwę projektu), w menu poziomym wybierz „Możliwości” (obok „Ogólne”).

Jeśli ostatnio zmieniłeś jeden z nich, pamiętaj, aby odświeżyć swoje certyfikaty w XCode -> Preferencje -> Konta -> Szczegóły -> Odśwież ikonę i zrestartuj XCode.

jdero
źródło
1

W moim przypadku certyfikat APNS wygasł, usuń wygasły certyfikat i ponownie wygeneruj profil aprowizacji rozwiązuje problem.

BillChan
źródło
1

W moim przypadku musiałem zaakceptować umowę licencyjną programisty Apple.

Zaloguj się na konto programisty Apple i obserwuj komunikat podobny do poniższego.

„Umowa licencyjna programu Apple Developer została zaktualizowana. Aby uzyskać dostęp do niektórych zasobów członkostwa, **** musi zaakceptować najnowszą umowę licencyjną do 28 czerwca 2016 r.”

Wcześniej nie mogłem dodawać / edytować kontenerów iCloud do identyfikatora aplikacji, chociaż zmieniłem / sprawdziłem możliwości, profile aprowizacji, certyfikaty itp. Po uzgodnieniu umowy wszystko zaczęło działać gładko.

Miejmy nadzieję, że zaoszczędzi to komuś cennego czasu.

Danboz
źródło
1

Niedawno natknąłem się na dokładnie ten sam problem. Po przeczytaniu wielu różnych porad, z których żadna z nich nie zadziałała, w końcu poszedłem pod maskę i znalazłem przyczynę problemu.

Plik udostępniania mobilnego w rzeczywistości NIE jest zgodny z plikiem uprawnień wygenerowanym przez Xcode.

Chociaż wszystkie pliki są anagowane automatycznie przez narzędzie Apple, nie są one poprawne.

Jeśli pobierzesz plik aprowizacji z portalu Apple i otworzysz go (możesz go otworzyć, ponieważ jest to po prostu plik plist podpisany Twoim certyfikatem, więc można go odczytać w edytorze tekstu) i porównać go z plikiem uprawnień (automatycznie wygenerowanym przez Xcode i znajdującym się w plikach projektu (więc jest to ponownie plik XML plist do odczytu przez edytor tekstu). Wtedy możesz zobaczyć różnicę.

W moim przypadku było to uprawnienie Game Center. Zostało wyświetlone w portalu jako zaznaczone (zaznaczone domyślnie), ale w rzeczywistości to uprawnienie nie zostało uwzględnione w pliku udostępniania mobilnego. A więc chodziło o usunięcie go z pliku uprawnień.

Wynik jest więc - zawartość profilu udostępniania mobilnego czasami nie zgadza się z tym, co jest wyświetlane na stronie konfiguracji identyfikatora aplikacji.

Radek
źródło
1

Dla tych, którzy mają ten sam problem z profilem obsługi administracyjnej Automatyczny w ustawieniach kompilacji obiektów docelowych:

Zachowaj ostrożność podczas edycji pliku uprawnień do celów! Może to spowodować przerwanie korespondencji z automatycznie wygenerowanym profilem informacyjnym i zostanie wyświetlony ten błąd.

W moim przypadku musiałem tymczasowo użyć kontenerów produkcyjnych iCloud z kompilacjami debugowania. Aby to zrobić, wstawiłem

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

w pliku uprawnień i to zadziałało!
Aby przypomnieć mi, że później musiałem usunąć te wiersze, wstawiłem dalej po prostu następujący komentarz:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

I to zepsuło korespondencję i spowodowało błąd .

Reinhard Männer
źródło
Gdzie znajduje się plik uprawnień?
Noitidart
Znajduje się w folderze projektu i nosi nazwę „yourProject.entitlements”. Możesz go znaleźć w nawigatorze projektów Xcode.
Reinhard Männer
Dzięki. wygląda na to, że nie został utworzony, dopóki nie zaznaczyłem, a następnie nie odznaczyłem opcji „dźwięk między aplikacjami”. Mam centrum gier i zakupy aplikacji na developer.apple.com, ale nie używam go, są to ustawienia domyślne. Więc oznaczyłem moje możliwości w xcode jako „włączone”, ale bez względu na to, co otrzymuję, „Plik wykonywalny został podpisany z nieprawidłowymi uprawnieniami”. błąd. :(
Noitidart
1

Używam powiadomień push w mojej aplikacji i po zakończeniu programowania próbowałem przetestować powiadomienia push dla konfiguracji wydania . W tym czasie otrzymałem ten błąd.

Używałem Produkcja Provisioning profil, aby uruchomić dla zwolnienia . Więc udało mi się rozwiązać ten błąd za pomocą profilu obsługi administracyjnej Adhoc .

Mahesh
źródło