Hinweis: Ich entwickle mit Xamarin. Ähnliche Frage im Xamarin Forum hier gepostet
Ich erstelle eine App namens " CompanyApp" . Dann habe ich eine App-ID für com.Company.CompanyApp erstellt , zusammen mit dem Distribution Provisioning Profile, das die entsprechende App-ID verwendet. Ich habe die Binärdatei hochgeladen und sie hat einwandfrei funktioniert.
Dann erstellte ich eine Demoversion der App (im Grunde dieselbe App mit kleinen Änderungen, es handelt sich also um dieselbe Lösung und dasselbe Projekt, nur unterschiedliche Einstellungen für die Bundle-Signatur), CompanyAppDemo mit einer neuen App-ID com.Company.CompanyAppDemo , zusammen mit einer neues Distributionsbereitstellungsprofil, das die neue App-ID verwendet. Ich habe die iOS Bundle Signing-Optionen aktualisiert, um das neue Bereitstellungsprofil zu verwenden, und die IPA generiert. Beim Hochladen auf Application Loader wurde jedoch der folgende Fehler angezeigt:
[2015-01-23 16:08:21 SGT] FEHLER: FEHLER ITMS-90164: "Ungültige Codesignaturberechtigungen. Die Berechtigungen in Ihrer App-Bundle-Signatur stimmen nicht mit denen überein, die im Bereitstellungsprofil enthalten sind. Gemäß der Bereitstellung Profil enthält das Bundle einen Schlüsselwert, der nicht zulässig ist: 'TEAMID.com.Company.CompanyApp' für den Schlüssel 'Anwendungskennung' in 'Payload / CompanyApp.app / CompanyApp' "
[2015-01-23 16:08:21 SGT] FEHLER: FEHLER ITMS-90046: "Ungültige Codesignaturberechtigungen. Die Signatur Ihres Anwendungspakets enthält Codesignaturberechtigungen, die unter iOS nicht unterstützt werden. Insbesondere den Wert" TEAMID.com.Company " .CompanyApp 'für Schlüssel' Anwendungs-ID '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 Bundle-ID. "
Ich habe tagelang debuggt, um es ohne Erfolg herauszufinden.
Ich frage mich, warum der Fehler, den Application Loader beim Signieren mit dem neuen Profil verursacht hat, auf die ID der ursprünglichen TEAMID.com.Company.CompanyApp anstelle von TEAMID.com.Company.CompanyAppDemo verweist . Ist dies ein Fehler in Xamarin, der ein falsches Bereitstellungsprofil erkennt, 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> Einstellungen immer aktualisiert habe, bevor ich die Option iOS Build Signing in Xamarin geändert habe.
quelle
Ich hatte das gleiche Problem und löste es mit einem einfachen Produkt -> Reinigen .
quelle
Wenn jemand hierher kommt, indem er sowohl nach dem Fehler ITMS-90164 als auch nach dem Fehler ITMS-90046 mit den Schlüsseln get-task-allow und asp-environment sucht :
Wie David P sagte, löste ein Produkt -> Reinigen, bevor ein neues Archiv mein Problem löste.
Ich möchte nur hinzufügen, dass ich in meinem Fall festgestellt habe, dass dem fehlerhaften Xarchiv die folgende Datei fehlte:
Bevor Sie dieses .xarchive zur Produktionssignatur an Ihren Client senden, sollten Sie nach der Datei archived-expand-berechtigungen.xcent suchen und sicherstellen, dass sie vorhanden ist.
quelle
Endlich nach 2 Wochen Haarziehen ..
Aus bestimmten Gründen verwendet Xamarin die ursprüngliche Anwendungskennung, dh TEAMID.com.Company.CompanyApp , wenn in der Entitlements.plist keine Schlüssel-Anwendungskennung vorhanden ist, die auf TEAMID.com.Company.CompanyAppDemo festgelegt ist
Die Lösung bestand also darin, eine Anwendungskennung hinzuzufügen, die die richtige Anwendungspaket-ID in Entitlements.plist angibt. Fügen Sie dann die Liste in die Build-Optionen> iOS-Bundle-Signierung ein.
quelle
Gleiches Problem und gelöst mit einem einfachen Produkt -> Reinigen .
quelle
Ändern Sie dies in Entitlements.plist:
Dazu:
quelle
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 Sie sollten oben ein Banner sehen, das Sie auffordert, der letzten Vertragsänderung zuzustimmen.
quelle
Für mich war das Problem eine Entitlements.plist, die automatisch hinzugefügt wurde und leer war. Es wurde aus dem Feld Benutzerdefinierte Berechtigungen entfernt und das Problem behoben.
quelle
Wenn Sie vor dem Packen nicht das entsprechende Freigabezertifikat auswählen, wird ERROR ITMS-90164 gemeldet
Build-Einstellung -> Code-Signatur-Identität -> Release -> Beliebiges IOS-SDK
quelle
Stellen Sie sicher, dass Sie bei der Archivierung das App-Ziel und nicht die WatchKit-App ausgewählt haben.
quelle
Keine der anderen Antworten löste diesen Fehler für mich, aber dies tat:
Erstellen Sie eine neue XCode-Anwendung und überprüfen Sie die Einstellungen für die Codesignatur.
Versuchen Sie, Ihre App so einzustellen, dass sie den Standardeinstellungen für das Signieren und Bereitstellen von XCode 7 oder Xcode 8 entspricht. XCode 7 wird hier angezeigt und in XCode 8 erneut geändert.
quelle
Ich hatte versucht, einen Build von einem Git-Zweig hochzuladen, der nicht der Master war. Um das Problem zu beheben, habe ich den Zweig mit dem Master zusammengeführt und erneut erstellt. Ich konnte den Build dann erfolgreich hochladen.
quelle
Ein Projekt mit 2 Zielen (mit 2 Entwickler-ID, 2 Berechtigungen) kann dazu führen. (Frag mich nicht, wie es passiert ist ...)
Entfernen Sie bei der Archivierung vorübergehend eine andere Berechtigungsdatei.
quelle
Einen richtigen Xcode 'Beenden' und dann einen Neustart durchzuführen war die letzte Aktion, die es für mich zum Laufen gebracht hat.
Ich hatte die Bundle-ID (für eine Demoversion) geändert und beim Überprüfen meines archivierten Builds den gleichen Fehler (wie in der Frage beschrieben) erhalten. Ich benutze Xcode. Nur Xcode zu schließen und mein Projekt erneut zu öffnen, war nicht genug, aber ein vollständiges "Beenden" war. Ich vermute, irgendwo wurde etwas zwischengespeichert.
quelle
Ich habe alles versucht, was hier aufgelistet ist. Es stellte sich heraus
.entitlement
, dass das Problem meine Datei war, die Zeilen hatte, die ich nie zuvor eingefügt hatte. Sie wurden nur irgendwie hinzugefügt.Entfernte diese Zeilen und versuchte es erneut, funktionierte.
quelle
Ich habe gerade in Berechtigungen umbenannt. Listen Sie den Wert von Access-Domänen von applinks: htts: //domain.app.link in applinks: domain.app.link auf. Es funktioniert wie ein Zauber. Prost!
quelle
Build Phase
in XcodeHurra, du bist fertig damit. Problem gelöst
quelle
Für mich konnte ich es lösen, indem ich die automatische Codesignaturfunktion ein- und wieder einschaltete:
quelle
Für mich hatte ich die falsche Datei in meiner Einstellung für benutzerdefinierte Berechtigungen unter iOS Bundle Signing. Entfernte es und es funktionierte!
quelle
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 er funktionierte beim Hochladen ohne Warnungen!
quelle
Mein Problem ist, dass ich ein falsches Bundle zum Erstellen einer IPA-Datei verwendet habe
quelle
Ich hatte genau das gleiche Problem und es war ein ziemlich dummer Fehler. Ich möchte nicht, dass jemand Zeit damit verbringt, also für diesen:
Was hier also passiert ist, war, dass ich im Bereitstellungsziel '10' eingegeben habe. Das hätte stattdessen 10.0 sein sollen. Das ist es, was den berüchtigten FEHLER ITMS-90164/90046 hervorgebracht hat: Ungültige Codesignaturansprüche für mich!
quelle
Sie sollten Ihre Ansprüche überprüfen. Es ist wie eine Plist-Datei. Bearbeiten Sie es für die Entwicklung und entfernen Sie die zusätzlichen Felder.
Geben Sie hier die Bildbeschreibung ein
quelle
Meine zwei Cent hier.
Gerade jetzt habe ich mich an dieses Problem gehalten, weil ich beim Kopieren meiner TeamID / Anwendungs-ID aus dem Apple-Entwicklerportal eine Menge nicht verwandten Werts in die Berechtigungsliste einbringe. Ich habe dies nicht bemerkt, weil ich Xcode zum Bearbeiten der Berechtigungsliste 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 Berechtigungsliste zu verwenden.
Danke, Samuel
quelle
Nachdem ich alle Tricks ausprobiert habe, die ich in den letzten Tagen bei Stackoverflow gelesen habe, lösche ich die Datei "xxxxxx.entitlements" und regeneriere sie erneut. Ich klicke auf Capabilities und wähle ON unter Associated Domains und füge "Domains" hinzu. Klicken Sie dann unter Funktionen> Push-Benachrichtigungen auf Fix "Push-Benachrichtigungen zu Ihrer Berechtigungsdatei hinzufügen".
Damit kann ich ARCHIVE erfolgreich machen
quelle
Ich hatte einen Link wie diesen
webcredentials:https://************.link
, der dazu führte, dass mein Upload fehlschlug. Ich habe es entfernt und das Problem wurde gelöst.quelle