Das Profil stimmt nicht mit dem Wert der Berechtigungsdatei für die Berechtigung zur Anwendungskennung überein

88

Ich versuche, eine App in den App Store hochzuladen, und dieser Fehler wird auf der Seite mit den Zertifikaten angezeigt. Soweit ich das beurteilen kann, habe ich das Feld so geändert, dass sie übereinstimmen, aber mir fehlt etwas.

das ist es, was auftaucht

Jede Hilfe wäre sehr dankbar.

info.plist

Paul Raymond
quelle
1
Zeigen Sie Ihre entitlements.plistDatei.
Imad Ali
Vielleicht liegt es daran, dass ich noch nie danach gesucht habe, aber die einzigen Listen, die ich sehe, sagen Info, aber hier ist, dass es das 2. Bild ist.
Paul Raymond
Es heißt, ich kann keine Links mehr posten. Ich steige gleich in ein Flugzeug nach Chicago, wenn sich jemand etwas einfallen lässt
Paul Raymond,

Antworten:

200

Ich bin nicht sicher, warum dies das Problem behoben hat, aber ich bin auf die Registerkarte "Funktionen" meines Ziels gegangen, habe iCloud eingeschaltet, versucht, einen Archiv-Build durchzuführen. Es ist fehlgeschlagen. Ich habe iCloud erneut ausgeschaltet, habe versucht, einen Archiv-Build durchzuführen, und es war erfolgreich Danach konnten die Zertifikate automatisch wieder aufgelöst werden.

Samkass
quelle
3
Ich weiß nicht, warum das funktioniert hat, aber es hat funktioniert. Die Apple-Unterstützung war weniger hilfreich.
Paul Raymond
13
Vielen Dank dafür - nach dem Ein- und Ausschalten wurde eine leere .entitlements-Liste neben dem xcodeproj erstellt. Es sieht so aus, als würde der Einreichungsprozess danach suchen. Wahrscheinlich nur ein Problem in Xcode 9 für vorhandene Apps, für die keine Berechtigungen / Funktionen erforderlich sind.
Andrew Wood
3
Hier gilt das gleiche. Altes Projekt. Vielen Dank für den Vorschlag, eine Funktion umzuschalten. Jetzt werden leere .entitlements akzeptiert. Einen Fehler bei Apple melden.
RickJansen
6
Verprügelt einen ganzen Abend auf diesem bs. Ich musste ein- und ausschalten, wodurch die leere Berechtigungsdatei erstellt wurde, und dann musste ich meine Build-Einstellung "Code Signing Entitlements" auf diese leere Datei verweisen.
Adam Waite
2
In Xcode 10.0beta5 geschieht dies immer noch. Für mich lag es daran, den Projektnamen zu ändern, nachdem Berechtigungen erstellt wurden. Durch Ein- und Ausschalten von iCloud wurde die Berechtigungsdatei umbenannt und der Name in den Build-Einstellungen aktualisiert. Der Inhalt der Datei war identisch. Es scheint, dass der Uploader sich unabhängig vom Namen der Build-Einstellungsdatei um den Namen der Berechtigungsdatei kümmert.
Troy
31

Die von Ihnen erstellte App hat einen falschen application-identifierWert für das, was das Bereitstellungsprofil erwartet. Das Zertifikat für appID com.example.foo für das Team 2ABCDEFG erwartet die Anwendungskennung: 2ABCDEFG.com.example.foo. Ihre App hat angegeben, dass die appID com.example.foo lautet, die Anwendungskennung jedoch nicht übereinstimmt Entweder verwenden Sie das falsche Teampräfix oder Sie haben die BundleID falsch konfiguriert.

In meinem Fall verwende ich Build-Schemata, um eine Prod-App und eine QA-App zu erstellen. com.example.foo für prod und com.example.foo.qa für QA. Ich hatte meinen bundleIdentifier in der Info.plist auf $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX) gesetzt, was im Simulator und auf dem Gerät für verschiedene Apps hervorragend funktioniert, wenn die App jedoch während der Archivierungsphase ihre Anwendungskennung generiert darf den von der Info.plist generierten bundleIdentifier nicht lesen.

Um Abhilfe zu schaffen, habe ich FooProject.xcodeproj / project.pbxproj (mit einem Texteditor) bearbeitet, um meine QS buildSettings PRODUCT_BUNDLE_IDENTIFIER in com.example.foo.qa zu ändern

Sie können sich die technischen Fragen und Antworten von Apple ansehen, um zu sehen, wie sie sich eingehend mit der Lösung dieses Problems befassen. Sobald Sie die Codesign-Berechtigungen für Ihre exportierte App ausgeführt haben und sehen, mit welcher Anwendungskennung Ihre App gerade erstellt wurde, sollte es ziemlich schnell sein, zu erkennen, was Sie falsch machen. https://developer.apple.com/library/content/qa/qa1879/_index.html Ich habe diese Seite in meiner Google-Suche nicht gefunden, da sie den Ausdruck aus der Fehlermeldung nicht verwenden oder die Anwendung nicht aufrufen -identifier durch seinen vollständigen Namen, aber sagen Sie stattdessen App ID.

Die Lösung für dieses Problem besteht auch nicht darin, ein neues Bereitstellungsprofil mit der Berechtigung "Anwendungskennung" zu generieren. Diese Berechtigung verfügt jedoch über den Wert im Bereitstellungsprofil, und Ihre App muss übereinstimmen.

Peter Dietz
quelle
2
Danke dir! Ich konnte das Problem beheben, indem ich meine Build-Einstellungen unter Verpackung geändert habe, um meine benutzerdefinierte Variable für das Suffix in der Produktpaket-ID zu verwenden. zB com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) und dies löste es. Ich musste die Projektdatei also nicht manuell bearbeiten und konnte problemlos verschiedene Bundle-IDs pro Umgebung verwalten.
n8tr
Ein Grund für die Nichtübereinstimmung der Anwendungskennung besteht darin, dass nicht alle Bereitstellungsprofile heruntergeladen wurden. Ihr Archiv wird mit einem Platzhalterprofil erstellt, wenn ein Profil mit der genauen App-ID fehlt, was zu einer Nichtübereinstimmung in der Exportphase führt.
Diidu
Das hat bei mir funktioniert. Ich habe eine Ionic-App erstellt und festgestellt, dass ich auf einem anderen Konto getestet habe. Ich habe com.foo.testName verwendet und es beim Erstellen mit dem richtigen Konto wieder geändert. Es scheint, dass der com.foo.testName noch in der pbxproj-Datei war
Dewald Els
Vielen Dank, genau das hat meine Validierung blockiert, und die Erklärung ist sehr klar!
MDH
@ n8tr Nach fast einer Woche voller Kopfschmerzen und Frustration hat mich dein Kommentar gerettet. Vielen Dank.
Behdad
31

Klicken Sie mit der rechten Maustaste auf Finder -> Gehe zu Ordner ...

~/Library/MobileDevice/Provisioning

Für Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

Löschen Sie alle Bereitstellungsprofile.

Nidhi
quelle
1
In meinem Fall lautet der Ordner "~ / Library / MobileDevice / Provisioning Profiles"
LightMan
Stimmen Sie zu, dies ist die richtige Antwort, nur mit Xcode 11 ist der Pfad~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis
Warum behebt dies das Problem? Was haben wir gerade gelöscht? Hat dies irgendwelche Nebenwirkungen?
Markdon
Sie löschen die Bereitstellungsprofile, die entweder automatisch von Xcode oder manuell hinzugefügt werden, indem Sie ein Profil von developer.apple.com öffnen. Wenn Sie keine anderen Profile verlieren möchten, können Sie Folgendes verwenden: grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisioning \ Profiles; Um zu zeigen, welche Profile übereinstimmen. Löschen Sie diese einfach und es wird die gleiche Aufgabe erfüllen.
Chris Douglass
9

Möglicherweise fehlte die Datei {project} .entitlements. Wenn Sie das tun, was @samkass erwähnt hat, wird die Datei automatisch generiert und funktioniert. Gehen Sie also einfach zur Registerkarte Funktionen, aktivieren Sie alles und deaktivieren Sie es.

mrhangz
quelle
Das ist albern, aber es hat bei mehreren älteren Projekten funktioniert, die ich aktualisiert habe.
Aspro
7

Durch Ändern des iCloud-Schalters auf Ein, Erstellen und Deaktivieren von iCloud wurde der Fehler behoben, der Folgendes besagt:

Das Profil stimmt nicht mit den Werten der Berechtigungsdatei für die Berechtigungen Anwendungskennung und Schlüsselbundzugriffsgruppen überein.

Sonnenuntergang
quelle
2

Bitte überprüfen Sie die für Ihre Anwendung erforderlichen Anwendungsfunktionen wie Beim Kauf einer App, Push-Benachrichtigung, Inter-App-Audio, Siri-Kit usw.

Dies ist die einzige Ursache für diese Art von Fehler.

Stellen Sie sicher, dass in Ihrer App-ID die oben genannten Flags aktiviert sind.

Meistens passiert es, wenn Sie keine Push-Benachrichtigung konfiguriert haben. Beim App-Kauf in Ihrer Entwicklungs-App-ID.

Technik
quelle
Ich habe nichts aktiviert. Es ist einfach sehr frustrierend.
Paul Raymond
Hat Ihre App eine Funktion, die ich oben erwähne
Tech
Ich werde später einen Screenshot anhängen, aber nein, es gibt keine Push-Benachrichtigungen oder App-Käufe für die App.
Paul Raymond
Wovon genau möchten Sie einen Screenshot? Unter Plist werden keine Ansprüche erwähnt.
Paul Raymond
2

Ich ging zur Registerkarte "Funktionen" meines Ziels, schaltete die Schlüsselbundfreigabe ein und es funktioniert

römisch
quelle
2

In Xcode 11 kann dies passieren, wenn für Ihr Projekt keine .entitlement-Datei vorhanden ist. Die Lösung wäre, eine zufällige Funktion hinzuzufügen, indem Sie unter "Signieren & Funktionen" auf "+ Fähigkeit" klicken (was zur Erstellung einer .entitlement-Datei führt) und dann die Fähigkeit entfernen. Auf diese Weise können Sie auch automatisch ein Zertifikat bereitstellen.

Bijoy Thangaraj
quelle
1

In Xcode 10 habe ich es zum Laufen gebracht, indem ich die Berechtigungsdatei in den richtigen Ordner in Project Navigator verschoben habe. Ich hatte die Berechtigungsdatei nicht, aber ich habe es geschafft, eine zu erhalten, indem ich die Funktionen auf der Registerkarte "Funktionen" umgeschaltet habe.

Geben Sie hier die Bildbeschreibung ein

Mikkokut
quelle
1

In meinem Fall war das Problem wie folgt: Das für den Erstellungsschritt verwendete Bereitstellungsprofil wurde für eine andere App-ID als das für den Exportschritt verwendete Bereitstellungsprofil erstellt.

Stellen Sie daher sicher, dass Sie dasselbe Bereitstellungsprofil für den Erstellungs- und Exportschritt verwenden.

Alexey Komov
quelle
Weil ich hervorheben wollte, dass dieser Fehler aufgrund unterschiedlicher Bereitstellungsprofile beim Erstellen und Exportieren auftreten kann. In diesem Fall ist eine Fehlermeldung nicht hilfreich, um die Grundursache zu finden. Warum die Antwort zu spät ist - dieser Fehler ist nicht an einen bestimmten Zeitraum gebunden. So geschah es vor 1 Jahr und passiert jetzt trotzdem. Akzeptierte Antwort hat in meinem Fall nicht funktioniert.
Alexey Komov
1

Für mich war der Trick zu

  1. Hinzufügen / Entfernen einer Funktion für das Ziel (in meinem Fall ein Widget);
  2. Stellen Sie sicher, dass die erstellte Berechtigungsdatei in den Build-Einstellungen aufgeführt ist.
  3. und um den Schlüssel "APS Environemnt" mit dem Wert "development" zur Berechtigungsdatei hinzuzufügen.
Joris Weimar
quelle
1

Was für mich funktioniert hat war, dass ich das Archiv in XCode 11 erstellt und den Upload in Xcode 12 Beta durchgeführt habe.

Badr
quelle
0

Überprüfen Sie die Funktionen in der App mit Optionen, die Sie für Ihre App-ID in Ihrem Entwicklerkonto aktiviert haben.

KavyaKavita
quelle
Es ist eine kostenlose App und ich habe nichts aktiviert und es ist einfach so frustrierend. Es lässt sich problemlos auf meinem Gerät installieren. Ich weiß nur nicht, wo ich suchen soll.
Paul Raymond
Kannst du Screenshots von beiden teilen?
KavyaKavita
Wovon willst du einen Screenshot?
Paul Raymond
Screenshot des Funktionsbereichs und der App-
ID-
0

Ich habe einige Optionen ausprobiert, die in den Antworten hier aufgeführt sind, aber keine hat geholfen. Das Aktivieren und Deaktivieren des Kontrollkästchens "Automatisch das Abmelden verwalten" hat das Problem behoben.

john316
quelle
0

Ich habe den gleichen Fehler erhalten und keine der oben genannten Lösungen hat das Problem in meinem Fall gelöst.

Für mich hat es funktioniert, die Einstellung "Kann debuggt werden" in der Datei "Entitlements.plist" von "NEIN" in "JA" zu ändern.

Joemamma
quelle
0

TL; DR: Überprüfen Sie Ihre App-ID und stellen Sie sicher, dass die Dienste mit Ihren Zielen übereinstimmen.


Was mir passiert ist, war, dass ich mich mit Xcode 10.1 beim Erstellen einer App-ID unterstützen ließ. Danach stoße ich auf das hier beschriebene Problem. (Ich habe die Whildcard-App-ID ausgewählt, als ich die App in iTunesConnect erstellt habe, daher habe ich nicht einmal bemerkt, dass dies geschehen ist.) Als ich das iOS-Entwicklerportal öffnete, wurden für die neue App-ID Game Center und In App Purchase automatisch aktiviert.

Da ich Game Center in Ihrem nicht aktivieren konnte Target -> Capabilities, habe ich In App Purchase aktiviert und dann konnte meine App signiert und hochgeladen werden.

superarts.org
quelle
0

Als wir vor dem gleichen Problem standen, haben wir alle oben genannten Dinge ausprobiert, aber nichts davon hat funktioniert.

Bei uns hat sich die Bundle-ID so geändert, dass sie nicht mit der vorherigen identisch ist, z. B. "com.name.App" in "com.name.App2". Lassen Sie xcode versuchen, ein Bereitstellungsprofil abzurufen / zu erstellen, und versuchen Sie es dann wieder mit dem ursprünglichen Profil.

Diese Idee stammt aus diesem Thread in den Entwicklerforen von Apple: https://forums.developer.apple.com/thread/114539

Akshay Raje
quelle
0

Ich bin kürzlich auf diese Seite gestoßen, nachdem ich versucht hatte, ein doppeltes Ziel zu erstellen - keiner der Vorschläge hat für mich funktioniert. Weitere Untersuchungen und ein gewisses Maß an Haarsträhnen führten schließlich dazu, dass ich die Build-Einstellungen für meine App durchsuchte, um herauszufinden, was nicht stimmte.

Es stellte sich heraus, dass mein Projekt immer noch auf die Berechtigungsdatei des ORIGINAL-Ziels zeigte, anstatt über eine eigene zu verfügen. Um dies zu beheben, habe ich im Finder zur ursprünglichen Berechtigungsdatei navigiert (z. B. $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), eine Kopie im selben Ordner erstellt und sie dann umbenannt (z. B. NewTargetName.entitlements).

Dann öffnete ich meine neue Berechtigungsdatei und änderte das Feld für die Anwendungskennung so, dass es mit dem Ende der Paketkennung meines neuen Ziels übereinstimmt (z. B. ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Schließlich habe ich das Feld "Code Signing Entitlements" in den Build-Einstellungen auf den Pfad meiner Berechtigungsdatei aktualisiert (für mich war dies etwas in Anlehnung an $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).

Ich kehrte zur Registerkarte Signing & Capabilities zurück und siehe da, das Problem wurde behoben. Hoffe, jemand da draußen findet das nützlich.

Strafe86
quelle
0

Gehen Sie zur Registerkarte " Info" von Xcode und ändern Sie das Feld " Bundle-ID". Nach dem Ändern des App-Namens hat sich nichts geändert, obwohl ich die Bundle-ID auf der Registerkarte "Allgemein" geändert habe. Die obigen Korrekturen haben bei mir nicht funktioniert, aber diese hat sofort funktioniert.

Hardfi
quelle
0

Ich hatte dieses Problem mit einer brandneuen App in Xcode 12 Beta 3 ( App-Einreichungen haben heute begonnen ).

Bei Xcode war "Anmeldung automatisch verwalten" aktiviert. Die im "Signaturzertifikat" angezeigte Team-ID stimmte jedoch nicht mit der auf der iTunes Connect-Website angezeigten Team-ID überein. Dies war die Hauptursache dafür, dass die App nicht hochgeladen werden konnte.

Wie ich es behoben habe:

  1. Ich habe manuell ein Bereitstellungsprofil für die App Store-Verteilung erstellt
  2. In Xcode tippte ich in den Einstellungen -> Konto auf "Manuelle Profile herunterladen"
  3. Dann habe ich "Signatur automatisch verwalten" deaktiviert.
  4. Nachdem ich das Bereitstellungsprofil in der Dropdown-Liste ausgewählt hatte, wurde die richtige Team-ID unter "Signaturzertifikat" angezeigt.
Eneko Alonso
quelle
0

Beim Einrichten einer Gitlab-Pipeline, in der exportArchive cmd ausgeführt und in den AppStore hochgeladen wird, ist dasselbe Problem aufgetreten. Ich konnte es zum Laufen bringen, indem ich DEVELOPMENT_TEAM in den Build-Einstellungen in dasselbe Team änderte, das in Signing & Certs ausgewählt wurde.

Weil es zuvor auf leer gesetzt war, was standardmäßig eine andere DEV TEAM-ID verwendete, die falsch war und nicht übereinstimmte, und sich darüber beschwerte, dass die "Anwendungskennung" = 12331232.com.bannana.apples.peach nicht übereinstimmte. Was mich dazu brachte, das richtige DEV-TEAM einzustellen und es hat funktioniert.

Xcode ver: Version 11.3.1

Ich hoffe das hilft jemandem.

Jamal
quelle