Die ausführbare Datei wird mit ungültigen Berechtigungen in Xcode signiert

113

Ich habe diesen Fehler mit Xcode 5 erhalten, als ich versuche, die App auf meinem Gerät auszuführen.

Die ausführbare Datei wurde mit ungültiger Berechtigung signiert

Mit Xcode 4.x hat es gut funktioniert. Weiß jemand, wie man den Fehler beseitigt?

Geben Sie hier die Bildbeschreibung ein

Emmy
quelle
Ich habe Xcode 8.3.3 und diese Antwort hat es tatsächlich für mich getan
Nuno MSB

Antworten:

101

Ich habe mich eine Stunde lang mit diesem Problem auseinandergesetzt und schließlich eine Lösung gefunden. Es stellte sich heraus, dass das Entwicklungsteam in ProjectTarget und ProjectTests unterschiedlich war.

Krish Wadhwana
quelle
13
Vielen Dank! Das hat mir nur geholfen und viel Zeit gespart!
Marky
Beeindruckend! Danke @Krish
Kqtr
Sie, Sir, haben gerade meinen Donnerstag gerettet, können Ihnen nicht genug danken
Samer Murad
Wo finde ich ProjectTarget und ProjectTests?
Pablo
Ah! fand es! Tage darauf und es war nur dieses Setup! ??
Pablo
77

Das Neustarten von Xcode hat bei mir funktioniert.

RaffAl
quelle
15
Also hat Xcode den Microsoft Universal Fix übernommen. ;) Für die Aufzeichnung ist dies immer noch ein Problem und ein Neustart ist immer noch das Update (ich verwende v7.3.1).
Eric Soyke
3
ein weiteres +1, stelle dich diesem Problem erneut, dann google es, ich bin hier gelandet.
Jayellos
Nach stundenlangem Überprüfen jedes einzelnen Details ... funktionierte dies in XCode 8
Matej Ukmar
Hat jemand eine solide Lösung für dieses Problem !!!!, Alle diese Lösungen sehen aus wie einige situative Problemumgehungen. Bitte helfen Sie.
Max
Tatsächlich funktionierte es für mich, das Projektentwicklungsteam und das Projekttestentwicklungsteam gleich zu machen
Tahmid Rahman
35

Ich habe das Problem herausgefunden. Die App, die ich auf developer.apple.com erstellt habe, enthält kein Inter-App-Audio. In der Plist-Datei für Projektberechtigungen auf Xcode ist Inter-App-Audio auf YES gesetzt (standardmäßig). Sobald ich die Einstellung in meiner App-Konfiguration auf developer.apple.com geändert habe, um das Inter-App-Audio zu aktivieren. Dann läuft meine App auf meinen Geräten. Ich denke, das ist die neue Regel von Apple, um Ihre App-Einstellungen sowohl auf developer.apple.com als auch in Ihren xcode-Projekteinstellungen konsistent zu machen.

Emmy
quelle
10
Ich habe die Inter-App-Audio-Funktion auf EIN und dann wieder auf AUS geschaltet, und auf diese Weise hat die App funktioniert ... WT *?
Ferran Maylinch
Wow, unglaublich. Immer noch ein anwendbarer Fix, obwohl es für mich die App Groups-Funktion war.
Keller
Hier gilt das gleiche! Es ist super komisch. Ich denke, Sie können jede Fähigkeit umschalten, um es zu beheben.
Andre Simon
Versuchte alles immer noch mit dem gleichen Problem !, Irgendwelche Vorschläge
Max
24

Ich konnte dies beheben, indem ich die Berechtigung "Game Center" in Xcode 5 ein- und ausschaltete :-)

Nik
quelle
5
DANKE! Sie haben keine Ahnung, wie frustriert ich den ganzen Morgen war, bis ich über Ihre Antwort stolperte. Auf jeden Fall für mich behoben.
Gasper Kolenc
1
Bitte beachten Sie, dass Xcode ein Bereitstellungsprofil für Sie generiert und Ihr benutzerdefiniertes Bereitstellungsprofil ungültig macht.
Van Du Tran
@ VanDuTran nein, wird es nicht.
Nik
Dies trat in einer Xamarin-Anwendung sowie in Visual Studio für Mac auf. Es ist also nicht nur auf Xcode isoliert.
Dan Beaulieu
19

Keine Lösung hat für mich funktioniert, bis ich das Ziel für App-Tests auf dasselbe Bereitstellungsprofil wie die Haupt-App überprüft und festgelegt habe. Wenn Sie automatisches Singen verwenden, stellen Sie sicher, dass Sie dasselbe Team im Testziel ausgewählt haben.

Matej Ukmar
quelle
Sehr guter Punkt, dies passiert, wenn Sie Ihr Team im Hauptziel ändern, aber nicht im Testziel. Das Ändern des Teams im Testziel in das Team im Hauptziel hat das Problem für mich gelöst.
Dan
Vielen Dank!! Das hat es endlich für mich behoben. Ansprüche waren ein total roter Hering.
Reid
19

Für XCode 10 muss möglicherweise das Legacy-Build-System verwendet werden

Änderungen können über die Datei- / Projekteinstellungen vorgenommen werden. FEHLER ITMS-90174: "Fehlendes Bereitstellungsprofil - iOS-Apps müssen ein Bereitstellungsprofil in einer Datei mit dem Namen embedded.mobileprovision enthalten."

Eine Cordova / Ionen-Ankündigung: https://github.com/apache/cordova-ios/issues/407

Chen Xing
quelle
1
Ich möchte für Cordova / Ionic-Benutzer hinzufügen, dass Sie möglicherweise auch Ihr generiertes Xcode-Projekt ändern müssen, um den Legacy-Modus über "Datei> Projekt- / Arbeitsbereichseinstellungen" zu verwenden und es in das Legacy-Build-System zu ändern, wie hier beschrieben: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

Die Lösung für den neuesten Xcode :

Zuerst müssen Sie überprüfen, was in Ihrem Mitgliedercenter für Ihre spezifische AppID aktiviert ist :

Geben Sie hier die Bildbeschreibung ein

Dann in Ihrem entsprechenden Ziel in Xcode Sie müssen aktiviert die gleichen Fähigkeiten: In diesem Fall: App Group, Game Center, In-App Purchase. Alle müssen in Ihrem Ziel in Xcode aktiviert sein.

Geben Sie hier die Bildbeschreibung ein

Für den DEBUG- Modus spielt es jedoch keine Rolle :

Geben Sie hier die Bildbeschreibung ein

Es ist sehr wichtig für Ihren RELEASE- Modus: Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass Game Centerund In-App Purchaseim Mitgliedercenter standardmäßig aktiviert sind, im Xcode-Ziel jedoch deaktiviert sind.

Bartłomiej Semańczyk
quelle
3
Ist es möglich, das Game Center und den In-App-Kauf von developer.apple.com zu entfernen?
Noitidart
11

Ich denke, Ihr Problem liegt an dem Profil, dass Sie xCode4.6 verwendet haben und jetzt xCode5 verwenden.

Sie müssen Zertifikate / Bereitstellungsprofile über XCode> Einstellungen> Konten aktualisieren

XCode> Einstellungen> Konten> Klicken Sie auf Ihr DEV-KONTO> Schaltfläche Details anzeigen (unten rechts)> Der Bildschirm Signieren von Iden / PPs wird angezeigt> Klicken Sie auf Aktualisieren.

Wählen Sie dann erneut aus den Build-Einstellungen das richtige Profil und bereinigen und erstellen Sie Ihr Projekt.

Hoffe das hilft dir.

Manthan
quelle
1
Danke für Ihre Hilfe. Ich habe das Problem herausgefunden. Die App, die ich auf developer.apple.com erstellt habe, enthält kein Inter-App-Audio. In der Plist-Datei für Projektberechtigungen auf Xcode ist Inter-App-Audio auf YES gesetzt (standardmäßig). Sobald ich die Einstellung in meiner App-Konfiguration auf developer.apple.com geändert habe, um das Inter-App-Audio zu aktivieren. Dann läuft meine App auf meinen Geräten. Ich denke, das ist die neue Regel von Apple, um Ihre App-Einstellungen sowohl auf developer.apple.com als auch in Ihrer xcode-Projekteinstellung konsistent zu machen.
Emmy
6

Ich musste die Funktionen der App in Xcode5 unter anpassen

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

damit im provisoning Profil.

Nithin Haridas
quelle
Außerdem wurde die Fehlerantwort "Ungültiges Token" von APNs behoben.
Hiroshi
Das Hinzufügen der Game Center-Berechtigung und das Entfernen dieser Berechtigung hat auch für mich funktioniert. Keine Ahnung warum.
Rukshan Marapana
5

xcode 6.1 (HealthKit-Beispiel)

Ich habe diesen Fehler aufgrund der HealthKit-Integration erhalten: Ich hatte In-App-Kauf aktiviert, Game Center und Healkit haben mein Problem gelöst. Dasselbe habe ich im Bereitstellungsprofil aktiviert.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Vinod Joshi
quelle
Musste das gleiche für die Schlüsselbundfreigabe tun. Ich hatte auch eine App-Erweiterung, ich musste es an beiden Orten tun, damit es funktioniert.
CaseyB
5

(Xcode 6.1)

Das Problem für mich war in meinen Build-Einstellungen; Beim Bereitstellen auf einem Gerät wurde mein Bereitstellungsprofil auf ein App Store-Produktionsprofil festgelegt. Ich habe es auf "Automatisch" umgestellt und mein Problem behoben. Sie können es auch auf Ihr Dev Provision-Profil einstellen.

Ich habe auch 2 Zertifikate, also habe ich mein zweites Zertifikat zu meiner Entwickler-Bestimmung hinzugefügt. Andere werden dieses Problem wahrscheinlich nicht haben.

Ian Newland
quelle
Vielen Dank! Das Umschalten auf "Automatisch" hat es für mich
getan
Seltsam, dass der Wechsel zu automatisch behoben wurde, aber es hat bei mir funktioniert. Ich hatte mein Bereitstellungsprofil auf com.mycompany. * Gesetzt und bekam diesen Fehler. Es gab rote FixMe auf der Registerkarte "Funktionen", aber nachdem ich dieses Problem behoben hatte, erhielt ich immer noch den Fehler "Ungültige Berechtigungen". Ich habe dann versucht, mein Bereitstellungsprofil von com.mycompany. * Auf automatisch zu ändern, und das Problem wurde behoben. Ich habe zweimal überprüft, ob die bundleID com.mycompany.blabla ist, also scheint es sich um eine Art Xcode-Fehler zu handeln. Ich benutze Xcode 6.3.2.
Jim Range
5

Ich hatte ein ähnliches Problem, als ich auf Xcode 10 aktualisiert habe. Ich habe das Problem unter Datei> Projekteinstellung behoben. Wählen Sie in der Option "Neues Build-System" die Option "Legacy-Build-System". Das hat den Trick für mich gemacht, ich hoffe das hilft jemandem.

Jose Rojas
quelle
4

Einfaches Clean-and-Build schien es für mich zu beheben.

Maxwell
quelle
Dies war auch für mich eine Lösung.
Enijar
4

Wenn dieses Problem mit mir gleich ist. Vielleicht vergessen Sie, das Team in Ihrem Zielprojekt in unittest zu setzen. Versuchen Sie, dieses Bild zu machen

Geben Sie hier die Bildbeschreibung ein

Papon Smc
quelle
3

Ich löse dieses Problem, indem ich alle "PROVISIONING_PROFILE=..."und "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...in project.pbxproj lösche und Xcode neu starte und erneut Bereitstellungsprofile für das Ziel festlege.

BabyPanda
quelle
3

Wenn der Neustart von xcode nicht funktioniert, erstellen Sie ein neues Bereitstellungsprofil und schließen Sie Ihre Testgeräte ein.

mohammad alabid
quelle
Neustart / Reinigung funktionierte bei mir nicht, aber dann wurde mir klar, dass ich mein neues Testtelefon nicht zu dem Ad-hoc-Profil hinzugefügt hatte, mit dem ich erstellt hatte. Ich habe ein aktualisiertes Profil neu generiert / heruntergeladen und der Fehler ist verschwunden. Hinweis: Möglicherweise wird danach ein "Sicherheitsfehler" angezeigt. Dies bedeutet, dass Sie die App für das Gerät autorisieren müssen. Tippen Sie einfach auf die App auf dem Gerät, damit die Warnung "Vertrauensentwickler" aktiviert wird.
SafeFastExpressive
3

In meinem Fall wurde das Gerät nicht hinzugefügt. Also musste ich das Gerät hinzufügen und ein neues Bereitstellungsprofil erstellen.

Xavi Valero
quelle
3

Eine andere Sache zu überprüfen - stellen Sie sicher, dass Sie die richtigen Entitäten in beiden ausgewählt haben

Ziele -> Ihr Ziel -> Build-Einstellungen -> Signieren

und

Projekt -> Ihr Projekt -> Build-Einstellungen -> Codesignatur

Ich habe diese Nachricht erhalten, als ich in einem einen vollständigen Entwicklerprofil und in dem anderen eine andere (Nicht-Entwickler-) Apple-ID ausgewählt hatte, auch wenn in der App keine Berechtigungen angefordert wurden.

CupawnTae
quelle
2

Es scheint ein kleiner Fehler in Xcode zu sein. Versuchen Sie es trotzdem zu archivieren , auch wenn es ein Problem mit gibtentitlements . Wenn Ihre Berechtigungen in Ordnung sind, werden sie problemlos hochgeladen. Apple akzeptiert dies und Ihre App wird im AppStore veröffentlicht.

Ich habe es getan und es hat funktioniert :)

Bartłomiej Semańczyk
quelle
2

Dies könnte auch daran liegen, dass ein falsches Schema ausgeführt wird.

Saurabh Bisht
quelle
1

Ich hatte das gleiche Problem in XCode 5. Das hat mir trotzdem geholfen.

XCode > Preferences > Location tab > DerivedData

Drücken Sie einen kleinen Pfeil nach links, um DerivedData im Finder zu öffnen. Wechseln Sie in den Papierkorb Ihres Projekts und erstellen Sie es neu.

Bildschirmfoto

Prcela
quelle
Ich denke, es sollte gute Gründe dafür geben, warum das Löschen abgeleiteter Daten das Problem lösen wird.
Kavita
1

Hatte ein Problem. Lösung: Gehen Sie zum richtigen Ziel -> Funktionen -> Für mich gab es ein Problem mit "In-App-Kauf" und der Schaltfläche, um es zu beheben. Off-On-Betrieb behobenes Problem.

Anton Plebanovich
quelle
1

In meinem Fall: Ich muss Inter-App Audio in aktivieren

Capabilities -> Inter-App Audio

Ich denke, da ich Parse.com Notification verwende, muss ein Link zu AudioToolbox.framework vorhanden sein

Nguyen Tran
quelle
1

Aktivieren von Funktionen -> Inter-App-Audio hat dieses Problem auch für mich behoben. Ich versuche auch, Push-Benachrichtigungen per Analyse zu senden

jstn
quelle
1

Die Antworten hier scheinen etwas unangemessen zu sein, also addiere ich meine zwei Cent:

Die eigentliche Lösung besteht darin, dass im Allgemeinen eine Nichtübereinstimmung zwischen den in Ihrem Bereitstellungsprofil gespeicherten Daten besteht (überprüfen Sie unter developer.apple.com -> Mitglieder -> Zertifikate -> das von Ihnen verwendete Zertifikat [überprüfen Sie unbedingt, ob Entwickler / Produktion vorhanden sind). und was in Ihrer App aktiviert ist (doppelklicken Sie auf den Projektnamen), wählen Sie im horizontalen Menü "Funktionen" (neben "Allgemein").

Wenn Sie kürzlich eines dieser Zertifikate geändert haben, aktualisieren Sie Ihre Zertifikate unter XCode -> Einstellungen -> Konten -> Details -> Symbol aktualisieren und starten Sie XCode neu.

jdero
quelle
1

In meinem Fall ist das APNS-Zertifikat abgelaufen. Entfernen Sie das abgelaufene Zertifikat und generieren Sie das Bereitstellungsprofil neu. Das Problem wird behoben.

BillChan
quelle
1

In meinem Fall musste ich die Apple Developer License Agreement akzeptieren.

Melden Sie sich bei einem Apple-Entwicklerkonto an und beachten Sie die unten stehende Benachrichtigung.

"Die Lizenzvereinbarung für das Apple Developer Program wurde aktualisiert. Um auf bestimmte Mitgliedschaftsressourcen zugreifen zu können, muss **** die neueste Lizenzvereinbarung bis zum 28. Juni 2016 akzeptieren."

Früher war ich nicht in der Lage, iCloud-Container zur App-ID hinzuzufügen / zu bearbeiten, obwohl ich Funktionen, Bereitstellungsprofile, Zertifikate usw. geändert / überprüft habe. Nach Vereinbarung des Vertrags funktionierten die Dinge reibungslos.

Hoffentlich würde es jemandem wertvolle Zeit sparen.

Danboz
quelle
1

Ich bin vor kurzem auf genau das gleiche Problem gestoßen. Nachdem ich viele verschiedene Ratschläge gelesen hatte, von denen keiner für mich funktionierte, ging ich schließlich unter die Haube und fand die Grundursache des Problems.

Die mobile Bereitstellungsdatei stimmt NICHT mit der von Xcode generierten Berechtigungsdatei überein.

Obwohl alle Dateien automatisch vom Apple Tool verwaltet werden, sind sie nicht korrekt.

Wenn Sie die Bereitstellungsdatei vom Apple-Portal herunterladen und öffnen (Sie können sie öffnen, da es sich nur um eine von Ihrem Zertifikat signierte Plist-Datei handelt, die vom Texteditor gelesen werden kann) und mit Ihrer Berechtigungsdatei vergleichen (automatisch von Xcode generiert und in Projektdateien gespeichert) (Also ist es wieder eine XML-Datei, die vom Texteditor gelesen werden kann.) Dann können Sie den Unterschied sehen.

In meinem Fall war es eine Game Center-Berechtigung. Es wurde im Portal als aktiviert angezeigt (standardmäßig aktiviert), aber tatsächlich war diese Berechtigung nicht in der Mobile Provisioning-Datei enthalten. Es ging also darum, es aus der Berechtigungsdatei zu löschen.

Das Ergebnis ist also, dass der Inhalt des Mobile Provisioning-Profils manchmal nicht mit dem übereinstimmt, was auf der Konfigurationsseite der APP-ID angezeigt wird.

Radek
quelle
1

Für diejenigen, die das gleiche Problem mit Provisioning Profile Automatic haben in den Build-Einstellungen des Ziels haben:

Seien Sie sehr vorsichtig, wenn Sie Ihre Zielberechtigungsdatei bearbeiten! Dies kann die Korrespondenz mit dem automatisch generierten Bereitstellungsprofil unterbrechen, und Sie erhalten diesen Fehler.

In meinem Fall musste ich vorübergehend die iCloud-Produktionscontainer mit Debug-Builds verwenden. Dazu habe ich eingefügt

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

in der Berechtigungsdatei und das hat funktioniert!
Um mich daran zu erinnern, dass ich diese Zeilen später entfernen musste, habe ich einfach den folgenden Kommentar eingefügt:

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

Und dies unterbrach die Korrespondenz und verursachte den Fehler .

Reinhard Männer
quelle
Wo befindet sich die Berechtigungsdatei?
Noitidart
Es befindet sich in Ihrem Projektordner und heißt "yourProject.entitlements". Sie finden es im Projektnavigator von Xcode.
Reinhard Männer
Vielen Dank. es scheint, dass es nicht erstellt wurde, bis ich "Inter-App-Audio" aktiviert und dann deaktiviert habe. Ich habe Game Center und in App-Käufen auf developer.apple.com, aber ich benutze es nicht, dies sind Standardeinstellungen. Also habe ich meine Fähigkeiten in xcode als "on" markiert, aber egal, was ich immer wieder bekomme: "Die ausführbare Datei wurde mit ungültigen Berechtigungen signiert." Error. :(
Noitidart
1

Ich verwende die Push-Benachrichtigung in meiner App und nach Abschluss der Entwicklung habe ich versucht, die Push-Benachrichtigung für die Release-Konfiguration zu testen . Zu dieser Zeit bekam ich diesen Fehler.

Ich habe Production Provisioning Profile verwendet, um es für die Veröffentlichung auszuführen . So konnte ich diesen Fehler mithilfe des Adhoc- Bereitstellungsprofils beheben.

Mahesh
quelle