Ich versuche, ein Erweiterungsprojekt zu erstellen, und Xcode wirft weiterhin den Fehler im Betreff.
Die Bundle-ID der Erweiterung wird mit der Bundle-ID der App vorangestellt.
Produktname: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier
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?
Versuchen Sie es vor dem Build mit einem Clean. Das Problem für mich wurde behoben (Xcode 6b2).
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.
Ich habe Änderungen vorgenommen wie:
Haupt-App-Bundle-ID: com.myapp.testapp
und
Erweiterungs-App-Bundle-ID: com.myapp.testapp.myextension
und seine Werke !!!
Ich musste die BundleID in der info.plist der Erweiterung auf das ändern, was ich brauchte.
Ich habe ein Radargerät eingereicht: rdar: // 17487465
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.
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.
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.
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.
Stellen Sie sicher, dass Ihre:
Ziel-App A -> Erstellte Einstellungen -> Codesignierung -> Freigeben
ist das gleiche mit:
Ziel-App A (Erweiterung) -> Erstellte Einstellungen -> Codesignatur -> Freigeben
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
Deaktivieren Sie die Option Automatisch automatisch für alle Ziele und das Projekt verwalten
In der Codesignatur wird es iOS Developer für alle Ziele und das Projekt.
Reinigen Sie das Projekt, schließen Sie das Projekt und öffnen Sie es.
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
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.
Ich säubere einfach den abgeleiteten Ordner und es hilft mir in diesen Situationen.
Gehen Sie zu jedem Ziel> Build-Einstellungen> Produkt-Bundle-ID> (Umbenennen in was auch immer)
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.
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.
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 :(
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.
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.