web-dev-qa-db-ger.com

FEHLER ITMS-90164/90046: Invalid Code Signing Entitlements

Hinweis: Ich entwickle Xamarin. Ähnliche Frage in Xamarin Forum hier

Ich erstelle eine App mit dem Namen CompanyApp. Dann erstellte ich eine App-ID com.Company.CompanyApp sowie ein Verteilungs-Bereitstellungsprofil, das die entsprechende App-ID verwendet. Ich habe die Binärdatei hochgeladen und es hat perfekt funktioniert.

Dann erstellte ich eine Demo-Version der App (im Grunde dieselbe App mit kleinen Modifikationen, dh es ist dieselbe Lösung und dasselbe Projekt, nur eine andere Signatureinstellung für das Bundle), CompanyAppDemo mit einer neuen App-ID com.Company .CompanyAppDemo zusammen mit einem neuen Verteilungsbereitstellungsprofil, das die neue App-ID verwendet. Ich habe die iOS-Bundle-Signaturoptionen für die Verwendung des neuen Bereitstellungsprofils aktualisiert und den IPA generiert. Als ich dies zu Application Loader hochlud, erhielt ich die folgende Fehlermeldung:

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90164: "Ungültiger Code Signieren von Berechtigungen. Die Berechtigungen in der Signatur Ihres App-Pakets stimmen nicht mit denen überein, die in der Bereitstellung enthalten sind profile . Entsprechend dem Bereitstellungsprofil enthält das Paket einen Schlüsselwert .__, der nicht zulässig ist: 'TEAMID.com.Company.CompanyApp' für den Schlüssel 'Anwendungsbezeichner' in 'Payload/CompanyApp .app/CompanyApp '"

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90046: "Ungültiger Code Signaturberechtigungen. Die Signatur Ihres Anwendungspakets enthält Code-Signaturberechtigungen, die unter iOS nicht unterstützt werden. Insbesondere Wert 'TEAMID.com.Company.CompanyApp' für Schlüssel 'Anwendungskennung' in 'Payload/CompanyApp.app/CompanyApp' wird nicht unterstützt. Dieser Wert sollte eine Zeichenfolge sein, die mit Ihrer TEAMID beginnt. gefolgt von einem Punkt '.', , gefolgt von der Bündelkennung. "

Ich habe seit Tagen debuggen, um es zu vergebens.

Ich wundere mich, warum der von Application Loader geworfene Fehler sich auf die ID des ursprünglichen TEAMID.com.Company.CompanyApp statt auf TEAMID.com.Company.CompanyAppDemo bezieht, als ich mich mit dem neuen Profil unterzeichnete Ist dies ein Fehler in Xamarin, der ein falsches Provisioning-Profil aufgreift oder fehlt mir etwas? Sie benötigen kein anderes Zertifikat für eine andere App, oder?

Beachten Sie, dass ich die Liste der Bereitstellungsprofile in XCode> Voreinstellungen immer aktualisiert habe, bevor Sie die Option für das Erstellen von iOS-Signaturen in Xamarin ändern.

76
yonasstephen

Endlich nach 2 Wochen Haare ziehen ..

Wenn in der Entitlements.plist kein Schlüssel 'Anwendungskennung' angegeben ist, der auf TEAMID.com.Company.CompanyAppDemo eingestellt ist, verwendet Xamarin aus bestimmten Gründen die ursprüngliche Anwendungskennung, dh TEAMID.com .Company.CompanyApp

Die Lösung bestand also darin, eine Anwendungskennung hinzuzufügen, die die korrekte Anwendungspaket-ID in Entitlements.plist angibt. Fügen Sie dann die Plist in die Build-Optionen> iOS-Bundle-Signatur ein.

17
yonasstephen

Wenn jemand durch die Suche nach ERROR ITMS-90046 wie ich hierher kommt, bestand meine Lösung darin, alle zuvor kompilierten Frameworks (die benutzerdefinierten) zu löschen und anschließend erneut zu erstellen.

Hinweis: In der Fehlerbeschreibung wurde etwas über den Schlüssel "aps-environment" als "Entwicklung" angegeben.

 Edit: The actual error message

132
quarac

Ich hatte das gleiche Problem und löste mich mit einem einfachen Product -> Clean .

62
David P

Wenn jemand hierher kommt, indem er nach Fehlern ITMS-90164 und Fehler ITMS-90046 mit den Tasten get-task-allow und asp-environment sucht:

1

Wie David P sagte, ein Produkt -> Reinigen bevor ein neues Archiv mein Problem gelöst hat.

Ich möchte nur hinzufügen, dass ich in meinem Fall festgestellt habe, dass das fehlerhafte Xarchive die folgende Datei nicht enthält:

2

Bevor Sie dieses .xarchive zur Produktionssignatur an Ihren Client senden, sollten Sie nach der Datei mit den archivierten erweiterten Berechtigungen suchen, um sicherzustellen, dass sie vorhanden ist.

19
Bluezen

Gleiches Problem und gelöst mit einem einfachen Produkt -> Reinigen .

8

Dies kann auch dadurch verursacht werden, dass Sie einem neuen Vertrag in iTunes connect zustimmen müssen. Melden Sie sich bei iTunes connect an, und oben sollte ein Banner angezeigt werden, das Sie dazu auffordert, der neuesten Vertragsänderung zuzustimmen.

5
RickiG

Ändern Sie dies in Entitlements.plist:

<key>aps-environment</key>
<string>development</string>

Zu diesem:

<key>aps-environment</key>
<string>production</string>
5
KalleP

Für mich war das Problem eine automatisch hinzugefügte Entitlements.plist, die leer war. Es wurde aus dem Feld Benutzerdefinierte Berechtigungen entfernt und das Problem behoben.

 View of the iOS Bundle Signing on Visual Studio 2015

4
Cássio

Wenn Sie das entsprechende Freigabezertifikat vor dem Packen nicht auswählen, wird ERROR ITMS-90164 gemeldet 

Build-Einstellung -> Code-Signatur-Identität -> Freigabe -> Beliebiges IOS SDK 

3
user5938649

Stellen Sie sicher, dass Sie das App-Ziel und nicht die WatchKit-App beim Archivieren ausgewählt haben.

2
Ric Santos

Keine der anderen Antworten löste diesen Fehler für mich, aber dies tat:

  1. Erstellen Sie eine neue XCode-Anwendung und prüfen Sie die Einstellungen für die Codesignatur.

  2. Versuchen Sie, Ihre App auf ähnliche Weise wie die Standardeinstellungen für das Signieren und Bereitstellen von XCode 7 oder Xcode 8 einzustellen. XCode 7 wird hier angezeigt und in XCode 8 erneut geändert.

 provisioning and signing

  1. Wenn dies nicht ausreicht, müssen Sie dies möglicherweise erneut durchführen. Löschen Sie jedoch zuvor abgelaufene Bereitstellungsprofile aus Ihrem Apple Keyring, oder löschen Sie sie erneut in Ihrem Apple-Entwicklerkonto (iTunes) im XCode Präferenzen. BEENDEN Sie XCODE und NEUSTART nach jeder Änderung. Fügen Sie dann Ihr Konto erneut hinzu, und lassen Sie XCode Ihre neuen Signier- und Teaminformationen abrufen.
2
Warren P

Ein Projekt mit 2 Zielen (mit 2 Entwickler-ID, 2 Berechtigungen) kann dazu führen.

Entfernen Sie beim Archivieren vorübergehend eine andere Berechtigungsdatei.

1
hstdt

Ich hatte versucht, einen Build von einem Git-Zweig hochzuladen, der nicht der Master war. Um das Problem zu lösen, habe ich den Zweig mit dem Master zusammengeführt und neu erstellt. Ich konnte den Build dann erfolgreich hochladen.

1
Kurt Anderson

Ich habe gerade in berechtigung.plist den Wert von Access-Domänen von Applinks umbenannt: htts: //domain.app.link in applinks: domain.app.link es funktioniert wie ein Zauber. Prost! 

1
Sathish

Ich habe alles versucht, was hier aufgelistet ist, und stellte sich heraus, dass das Problem meine .entitlement-Datei war. Diese Zeile hatte Zeilen, die ich noch nie eingegeben habe. Sie wurden einfach hinzugefügt.
Entfernte diese Zeilen und versuchte es erneut, funktionierte.

1
Nolan.K

Ein ordentliches Xcode 'Quit' zu machen und dann neu zu starten, war die letzte Aktion, die es für mich funktionierte.

Ich hatte die Kennung des Pakets geändert (für eine Demoversion) und beim Überprüfen meines archivierten Builds den gleichen Fehler erhalten (wie in der Frage beschrieben). Ich verwende Xcode. Das Schließen von Xcode und das erneute Öffnen meines Projekts waren nicht genug, aber ein vollständiges 'Quit' war. Vermutlich wurde irgendwo irgendwas zwischengespeichert.

1
Marcus

Nach vielen Stunden der Untersuchung fand ich eine einfache Lösung. 

Anstatt den Application Loader zum Hochladen der Anwendung zu verwenden, habe ich den Organizer von XCode verwendet und beim Upload funktionierte das ohne Warnung!

0

Mein Problem ist, dass ich ein falsches Bundle zum Erstellen einer IPA-Datei verwendet habe

0
Netero

Für mich konnte ich das Problem lösen, indem ich die automatische Codesignatur aus/einschaltete:

 enter image description here

0
Dave G

Meine zwei Cent hier.

Im Moment bin ich in diesem Problem festgefahren, weil ich meine TeamID/Anwendungs-ID aus dem Entwicklerportal Apple kopiere, was der berechtigungs.plist sehr viel Wert verleiht. Ich habe dies nicht bemerkt, weil ich Xcode zum Bearbeiten der berechtigungs.plist verwendet habe und das Eingabefeld nicht alles nach dem ersten neuen Zeilenzeichen anzeigt.

Ich schlage vor, für diesen Fall den Nur-Text-Editor für die Datei "claim.plist" zu verwenden.

Danke, Samuel

0
Samuel Leung
  1. Gehen Sie in Xcode zu Build Phase
  2. Entfernen Sie alle Rahmen
  3. Fügen Sie sie zurück
  4. Jetzt erstellen-> Archivieren> In den App Store hochladen

Hurra, du bist fertig damit. Problem gelöst

0
Mehul Thakkar

Ich hatte die falsche Datei in meiner Einstellung für benutzerdefinierte Berechtigungen unter iOS-Bundle-Signatur. Entfernt es und es hat funktioniert!

0
JP Hochbaum

Sie sollten Ihre Berechtigungen überprüfen. Es ist wie plist datei. Bearbeiten Sie es für die Entwicklung und entfernen Sie die zusätzlichen Felder.

Bildbeschreibung hier eingeben

0
Rajesh Gaddam

Ich hatte genau das gleiche Problem und es war ein ziemlich dummer Fehler. Ich möchte nicht, dass irgendjemand Zeit damit verbringt, also für diesen:

 Mistake

Das, was hier passiert ist, war, dass ich im Implementierungsziel '10' eingegeben habe. Das hätte stattdessen 10.0 sein sollen. So entstand der berüchtigte ERROR ITMS-90164/90046: Invalid Code Signing Entitlements für mich!

0
Benjamin de Bos