wake-up-neo.com

Xcode 6-Fehler: "Der Bundle-ID der eingebetteten Binärdatei ist nicht der Bundle-ID der übergeordneten App vorangestellt."

Ich versuche, ein Erweiterungsprojekt zu erstellen, und Xcode wirft weiterhin den Fehler im Betreff.

Xcode log error

Die Bundle-ID der Erweiterung wird mit der Bundle-ID der App vorangestellt.

Produktname: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

Extension bundle id

Ich habe versucht, den Build-Ordner zu säubern und neu zu erstellen, kein Glück. Das Komische ist, dass das gesamte Projekt ein paar Mal erstellt wurde, aber nach einigen Änderungen an Code und Benutzeroberfläche begann es zu scheitern. Selbst wenn ich neue Projekte erstelle, passiert dasselbe nach ca. 5-6 Builds.

Ist noch jemand auf diesen Fehler gestoßen? Irgendwelche Tipps für eine Lösung oder einen Workaround?

58
chitza

Versuchen Sie es vor dem Build mit einem Clean. Das Problem für mich wurde behoben (Xcode 6b2).

31
Julian

Es sieht so aus, als ob sich das Verhalten der Paket-ID geändert hat, als WatchOS 2 ankam.

Zuvor hatte ich eine Erweiterungspaketkennung wie folgt:

com.mycompany.myappname.watchkitextension

An anderer Stelle in Stackoverflow wurde erwähnt, dass die Kennung des Erweiterungs-Bundles in diesem Format vorliegen sollte. Egal, was ich versucht habe, Xcode hat immer Fehler auf mich geworfen.

Die einzig mögliche Lösung besteht darin, die Kennung des Erweiterungspakets wie folgt zu ändern:

com.mycompany.myappname.watchkitapp.watchkitextension

Ich bin mir ziemlich sicher, dass dies bei einer WatchOS 1-App nicht der Fall war. Ein Problem aufgrund dieser Änderung besteht darin, dass Sie tatsächlich keine App-ID für die Bundle-ID com.mycompany.myappname.watchkitextension generieren können. Dies ist nicht erforderlich. Setzen Sie einfach alle Bereitstellungsprofile in den Build-Einstellungen auf "Automatisch" und vergessen Sie nicht, das richtige Codesignaturzertifikat für Ihre Release/Ad-Hoc/Debug-Schemas zu verwenden.

Ich habe tatsächlich herausgefunden, dass dieser Ansatz funktioniert, weil Xcode vorschlug, das Problem zu beheben.

29
edwardmp

Ich habe Änderungen vorgenommen wie:

Haupt-App-Bundle-ID: com.myapp.testapp

und 

Erweiterungs-App-Bundle-ID: com.myapp.testapp.myextension

und seine Werke !!!

16

Ich musste die BundleID in der info.plist der Erweiterung auf das ändern, was ich brauchte. 

Ich habe ein Radargerät eingereicht: rdar: // 17487465

14

das hat mir geholfen:

Die Erweiterung muss die Bundle-ID des Elternteils als Präfix enthalten.

Wenn Ihre App beispielsweise com.ronnathan.myapp ist, muss Ihre Erweiterung com.ronnathan.myapp.today sein. Sie haben das App-Ziel umbenannt. Gehen Sie jetzt in das Erweiterungsziel und ändern Sie den Namen entsprechend.

von hier aus genommen

12
dollar2048

Target -> General -> Embedded Binaries lösche die älteren und wähle das Neue aus. So habe ich dieses Problem gelöst enter image description here

8
Michael Yang

Ich habe den gleichen Fehler erhalten, Sie fügen wahrscheinlich eine Erweiterung wie das Today-Widget hinzu, da die Erweiterung auch selbst eine Binärdatei ist, also über eine eigene Plist verfügt, und stellen Sie sicher, dass in der Erweiterungs-Plist die Bundle-ID der Bundle-ID der App vorangestellt ist. Hoffe das hilft.

4
coolbeet

In meinem Fall trat dieser Fehler auf, wenn ich die App-Bundle-ID änderte. Ich habe auch WatchKit App in meinem Projekt.

Aktualisieren Sie zur Behebung dieses Problems das Präfix WatchKit Extension und WatchKit App-Bundle mit der neuen Bundle-ID Ihrer App. Überprüfen Sie in beiden Zielen die info.plist.

Aktualisieren Sie auch die folgenden - 

Aktualisieren Sie Folgendes mit der neuen Watch-App-Bundle-ID . WatchKit-Erweiterung> Info.plist - NSExtension-> NSExtensionAttributes-> WKAppBundleIdentifier 

Aktualisieren Sie Folgendes mit der neuen App-ID . WatchKit App> Info.plist - WKCompanionAppBundleIdentifier

Nachdem Sie alle Werte geändert haben, vergessen Sie nicht, das Produkt einmal zu reinigen.

4
Namit Gupta

Es ist möglicherweise vorgekommen, dass Sie Ihre Ziele für eine Klon-App dupliziert haben. Sie haben beispielsweise jedes Ihrer Ziele ausgewählt und dupliziert. Wenn Sie Ihr Watchkit-Erweiterungsziel geklont haben, kann seine Zielmitgliedschaft automatisch der ursprünglichen Überwachungs-App zugewiesen werden. 

Um dies zu beheben, müssen Sie zu Ihrer ursprünglichen "WatchKit extension.appex" -Datei in Project Navigator gehen und die Option Zielmitgliedschaft im Datei-Inspector für Ihr neues Ziel der Clone-Watch-App deaktivieren. Sie sollten das Gegenteil für Ihr dupliziertes "Watchkit extension-copy.appex" tun und sicherstellen, dass dort nur das duplizierte Ziel "watch app-copy" ausgewählt ist.

3

Stellen Sie sicher, dass Ihre:

Ziel-App A -> Erstellte Einstellungen -> Codesignierung -> Freigeben

ist das gleiche mit:

Ziel-App A (Erweiterung) -> Erstellte Einstellungen -> Codesignatur -> Freigeben

2
Santana

Ich habe die meisten der hier angegebenen Lösungen ausprobiert, aber es half mir nicht, das Problem in Xcode 9.4 zu beheben

Diese SO Antwort hat mir geholfen, das Problem zu beheben.

Was ich getan habe, ist einfach 

  1. Deaktivieren Sie die Option Automatisch automatisch für alle Ziele und das Projekt verwalten

  2. In der Codesignatur wird es iOS Developer für alle Ziele und das Projekt.

  3. Reinigen Sie das Projekt, schließen Sie das Projekt und öffnen Sie es. 

  4. Aktivieren Sie jetzt das automatische Verwalten der Signatur für das Ziel und wählen Sie das Entwicklerkonto. Dann baue es. 

Es hat mich der Fehler behoben. Ich weiß nicht, wann Apple diese Art von Problemen beheben wird. Es isst viele Stunden.

Edit: Ich verwende Diese Antwort Auch, dass meine Ziel-Bundle-ID _ ​​com.companyname.projectname und für die Erweiterungs-Bundle-ID _ ​​com.companyname) ist .projektname.myextension 

1
R. Mohan

Das war hilfreich für mich:

Ich habe bekommen: 

Xcode konnte keine übereinstimmenden Provisioning-Profile für iOS App Development finden

Also änderte ich den Namen der Bundle-ID, dh com.example.something, in com.example.something1 und bereinigte den Build. 

Stellen Sie sicher, dass Sie auch alle abhängigen Bundle-IDs ändern. 

0
Hitesh

Ich säubere einfach den abgeleiteten Ordner und es hilft mir in diesen Situationen.

0

Gehen Sie zu jedem Ziel> Build-Einstellungen> Produkt-Bundle-ID> (Umbenennen in was auch immer)

0
Marin

Vergewissern Sie sich, dass der Bundle-ID der Erweiterung der App-Bundle-ID vorangestellt ist . Wenn der gleiche und immer noch ein Fehler auftritt, wechseln Sie in die .plist-Datei der Extension und ändern Sie deren Bundle-ID.

0
Manish Mahajan

Löschen Sie einfach die Bereitstellungsprofile für Apps aus ~/Library/MobileDevice/Provisioning Profile, laden Sie Xcode neu und beheben Sie Probleme, wenn Xcode dazu aufgefordert wird (oder laden Sie sie manuell aus dem iOS Dev Center herunter).

Dieses Problem wurde für mich behoben.

0
XeroX

Das Problem ist wahrscheinlich, dass Sie einen Ordner mit "Ordnerreferenzen erstellen" hinzugefügt haben, wenn Sie ihn (wie ich) zu Ihrem Projekt hinzufügen. @ Jacobs Fix funktionierte nicht für mich :(

enter image description here

Ich musste den Ordnerverweis löschen, den ich zu meinem Projekt hinzugefügt hatte, dann bereinigen und erstellen, und das hat es für mich behoben.

enter image description here

0
taber

Ich hatte die gleichen Probleme. Durch das Ändern des CFBundleIdentifier für meine WatchKit-Erweiterung auf einen anderen Wert als den ursprünglichen Wert, der beim ersten Hinzufügen der WatchKit-Erweiterung verwendet wurde, und die Berechtigung für die Freigabe einer gemeinsamen App-Gruppe neu festgelegt, wurde dies für mich behoben.

0
Ari Braginsky