2014-09-14 7 views
43

Ich versuche, meine App für die Einreichung zu erstellen, aber ich habe Probleme mit der Code-Signierung.Provisioning-Profil für Today Widget-Erweiterung

Grundsätzlich habe ich eine Today Widget Erweiterung für meine App. Ich bin unsicher, wofür ich das Bereitstellungsprofil einstellen soll. Ich nahm an, dass ich nur das gleiche Profil verwenden würde, das ich für meine App verwendet habe, aber ich bekomme diesen Fehler:

Das Provisioning-Profil in Ihren Build-Einstellungen ("AppName") angegeben hat eine AppID von "BundleID" stimmt nicht mit Ihrer Bundle-ID "BundleID2" überein. Xcode kann dieses Problem beheben, indem es ein neues Bereitstellungsprofil aus dem Mitgliedercenter herunterlädt.

Ich kann natürlich auf "Problem beheben" klicken, aber löst das tatsächlich das Problem? Es ändert nur meine Verteilungseinstellungen zu 'iOS Developer' und Profil zu 'Automatisch'.

+0

Wenn Sie die App erstellen, wird die Erweiterung in die App eingebettet. Sie müssen die Erweiterung nicht selbst senden. – dasdom

+0

Also, was würde ich das Code Signing und Provisioning-Profil als verlassen? 'iOS-Entwickler' und 'Automatisch'? – user3746428

+0

Nein. Sie benötigen ein Verteilungsprofil, weil Sie es im App Store verteilen möchten. Archivieren Sie dann die App mit diesem Verteilungsprofil. Die Erweiterung wird automatisch zur App hinzugefügt. – dasdom

Antwort

115

ich mit dem gleichen Problem zu kämpfen hatte, und beschlossen, es auf diese Weise:

  • Sie benötigen eine App-ID konfiguriert ist, um das Provisioning-Portal (ich nehme an, Sie Ihre com.apple.yourappname dort haben)
  • Sie müssen dann konfigurieren Sie die zweite App-ID für das Heute Widget (die com.apple.yourappname.something sein sollte, wo etwas der Name für Ihr Widget ist, wie heute)

Dann brauchen Sie zwei Profile App Store Verteilung Provisioning zu erstellen:

  • One für die Haupt App
  • zweite für das Widget

Dann weisen die richtigen Bereitstellungsprofile für jedes Ziel auf die Projekteinstellungen und legen Sie für die Verteilung zu bauen.

+9

Danke. Ich denke, es ist wirklich wichtig, dass Sie darauf hingewiesen haben, dass die Widget-App-ID com.apple.appname.something ist. Ich versuchte com.apple.widgetname und es schien nicht zu funktionieren – kevinl

+1

Danke @ markus-rautopuro! Ich benutze die Befehlszeile zum Erstellen. Wie weisen Sie Bereitstellungsprofile in der Befehlszeile zu? – DevellMen

+0

Das Provisioning sollte automatisch funktionieren, wenn Sie Bereitstellungsprofile auf '~/Library/MobileDevice/Provisioning Profiles 'setzen und dann das Xcode-Projekt für die automatische Bereitstellung einstellen. Wenn es aus irgendeinem Grund nicht funktioniert, versuchen Sie, Xcode zu öffnen und das Bereitstellungsprofil für die Ziele in den Projekteinstellungen auszuwählen und das Projekt zu speichern. –

1

Versuchen Sie, unter Zertifikate, Kennungen & Profile (https://developer.apple.com/account) eine neue App-ID für Ihre App-Erweiterung zu erstellen. Erstellen Sie dann ein Provisioing-Profil für die neu erstellte App-ID.

Wenn die Paket-ID für Ihre App com.apple.appname ist, erstellen Sie eine App-Erweiterung mit der Paket-ID com.apple.appname.appextensionname. Die gleiche ID wird dann in Xcode für das Widget verwendet.

+0

Welches Provisioning-Profil sollten Sie für das Today-Widget auswählen?Müssen Sie dem Provisioning-Portal die Paket-ID des Widgets als neue App hinzufügen? Benötigen Sie ein zweites Verteilungs-Bereitstellungsprofil für das Widget? –

+2

Ja, erstellen Sie eine neue App-ID auf dieselbe Weise wie für eine App. Dann erstellen Sie ein zweites Verteilungsprofil. –

+0

Sollte die Push-Benachrichtigung in der Widgets-App-ID aktiviert sein? –

Verwandte Themen