iPhone-Debugging: Wie kann behoben werden, dass die Aufgabe für den Prozess nicht abgerufen werden konnte?

158

Ich habe gerade ein Bereitstellungsprofil zu XCode hinzugefügt (zur Unterstützung von Benachrichtigungen und beim Kauf von Apps erforderlich), die Build-Konfiguration für die Ad-hoc-Verteilung nach Bedarf eingerichtet und versucht, die App auf dem Gerät auszuführen (dies habe ich in der Vergangenheit mehrmals durchgeführt ohne Probleme).

Die App ist installiert, startet aber nicht. Auf der Konsole wird die folgende Meldung angezeigt:

Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.

Wenn ich die Anwendung jedoch manuell auf dem Gerät starte, funktioniert sie wie erwartet. Ich habe kürzlich den neuesten XCode 3.2 für Snow Leopard installiert. Ist dies ein bekannter Fehler dieser Version von XCode oder mache ich etwas falsch?

BEARBEITEN: Es funktioniert gut mit der Release-Verteilung unter Verwendung des Entwicklungsbereitstellungsprofils. Ich habe das Ad-hoc-Bereitstellungsprofil erneut überprüft, um sicherzustellen, dass es das von mir verwendete Gerät enthält.

Massimo Cafaro
quelle
Dies kann auch hilfreich sein: Gehen Sie zu Organizer -> Projekte -> DerivedData löschen und bereinigen.
Stellen

Antworten:

110

Ich hatte Probleme beim Debuggen von Binärdateien auf dem Gerät über XCode, wenn die App eine Entitlements.plist-Datei enthält, die zum Debuggen nicht auf dem Gerät installiert werden muss. Im Allgemeinen habe ich diese Datei dann für Release-Builds (wo sie für den App Store erforderlich ist) eingefügt und zum Debuggen entfernt (damit ich die App von XCode aus debuggen kann). Das könnte hier Ihr Problem sein.

Update : (. ZB Vertrieb über den App Store) Ab (mindestens) August 2010 (iPhone 4.1 SDK) die Entitlements.plist ist nicht mehr notwendig , in vielen Fällen in der Anwendung enthalten Sehen Sie hier für weitere Informationen über die Fälle , in denen Entitlements.plist ist erforderlich:

WICHTIG: Eine Berechtigungsdatei wird im Allgemeinen nur benötigt, wenn für die Ad-hoc-Verteilung erstellt oder die gemeinsame Nutzung von Schlüsselbunddaten aktiviert wird. Wenn beides nicht zutrifft, löschen Sie den Eintrag in Code Signing Entitlements. (Hervorhebung von mir)

fbrereto
quelle
Sie haben Recht, ich habe überprüft, dass es tatsächlich der boolesche Wert get-task-allow ist, der in Entitlements.plist auf false gesetzt ist, der das Debuggen verhindert. Danke dir.
Massimo Cafaro
1
Zu Ihrer Information, ich hatte genau das gleiche Problem und das Problem wurde durch Hinzufügen der Berechtigungsdatei mit der Einstellung get-task-allow auf YES behoben. Wenn Sie also das gleiche Problem haben und die Berechtigungsdatei nicht haben, versuchen Sie es hinzuzufügen ...: P
Alex Zak
Ab iOS 8.1.3 ist entitelments.plist auch für von Unternehmen signierte Apps erforderlich.
Roy K
289

Das Ad-hoc-Profil unterstützt das Debuggen nicht. Sie müssen mit einem Entwicklungsprofil debuggen und das Ad-hoc-Profil nur zum Verteilen von nicht debuggbaren Kopien verwenden.

cdespinosa
quelle
Nach meinem besten Wissen habe ich diese Informationen nicht im Entwicklungsprogrammportal gesehen. Mein Kommentar an fbrereto erklärt jedoch, warum dies so ist: Wir haben die Datei Entitlements.plist weder in Debug- noch in Release-Konfigurationen.
Massimo Cafaro
5
Ich hatte das gleiche Problem, nachdem ich versehentlich die Code-Signatur-Identität für eine iPhone-Distribution in XCode 4 festgelegt hatte
cpungaliya
1
Wie
schalte
Nur eine weitere dieser kleinen Fallstricke, die Apple für Sie aufgezeigt hat. Dies geschah gerade, nachdem ich alle meine Profile und Zertifikate dank eines Portalfehlers erneut erstellt hatte ... seufz. Danke für die Info, mein Problem behoben.
n13
Dies war die Antwort auf mein Problem. Hatte nichts mit Ansprüchen zu tun.
DOOManiac
37

Ich hatte das gleiche Problem, löste es jedoch durch die folgenden einfachen Schritte:

  1. Stellen Sie sicher, dass Sie Debug statt Release ausgewählt haben.
  2. In Debug-Konfigurationen sollten Sie in den Projekteinstellungen das Entwicklerprofil ausgewählt haben und die Berechtigungsliste nicht angeben müssen.
  3. Die gleiche Einstellung finden Sie auch unter: Ziele: Wenn nicht, ändern Sie sie für die Debug-Konfiguration wie oben beschrieben. Es wird klappen.

Alles Gute.

Aks
quelle
Der Grund, warum dies funktioniert hat, ist mit ziemlicher Sicherheit, dass in Ihrer Debug-Konfiguration get-task-allow in Entitlements.plist festgelegt ist, während dies in Release 1 nicht der Fall ist. Dies soll verhindern, dass Benutzer den Debugger an eine Kopie anhängen, die sie aus dem App Store erhalten (siehe- auch Kai's Antwort unten über das Setzen von Ja, damit es funktioniert ..)
Dsmudger
Hab es für mich getan. Irgendwie wurde der Build auf "Release" gesetzt und die Release-Profile wurden nicht korrekt eingerichtet.
KPK
19

Ich brauchte eine Weile, um das herauszufinden.

Wenn Sie eine Distribution / Ad-hoc / ein Profil verwenden, können Sie diese nicht über xcode testen. Sie erhalten die Fehlermeldung: Das zu debuggende Programm wird nicht ausgeführt.

Sie können die App erstellen, in xcode in den Produktordner Ihrer App wechseln, auf die Datei mit Ihrem Projektnamen klicken und im Finder anzeigen auswählen. Sie können diese App in iTunes ziehen und synchronisieren. An diesem Punkt können Sie Ihre App auf Ihrem Gerät testen.

Atma
quelle
Ja, das war mein Problem. Ich hatte keine Berechtigungsdatei, aber ich hatte meine Debug-Build-Konfiguration auf ein Verteilungsprofil umgestellt. Der Wechsel zu einem Entwicklungsprofil hat alles behoben.
Vocaro
1
Ich wünschte, XCode wäre diesbezüglich offener. Es ist überhaupt nicht offensichtlich, dass Sie eine auf einem Gerät erstellte Distribution nicht testen können, während Sie mit XCode verbunden sind. Es ist ein häufiger Anwendungsfall.
user798719
13

Wenn Sie einen solchen Fehler erhalten, besteht der einzige Grund darin, dass Sie ein Verteilungsprofil anstelle eines Entwicklungsprofils in Xcode oder eine fehlende Berechtigungseigenschaft verwenden. Wenn Sie die Entitlements.plist nicht verwenden, besteht der einzig mögliche Fehler darin, dass die App mit einem Verteilungsprofil gepackt wird. Sie können dies überprüfen, indem Sie die Erstellungsprotokolle bestätigen. Um dies zu ändern, gehen Sie zu Build-Einstellung des Projekts und überprüfen Sie die Einstellung der Codesignaturentität. Damit das Debuggen funktioniert, sollte diese Einstellung ein Entwicklerprofil für die Konfiguration sein, die Sie derzeit verwenden.

https://developer.apple.com/library/ios/#qa/qa1682/_index.html

Löschen Sie für sofortige Ergebnisse alle mobilen Bereitstellungsprofile aus xcode und installieren Sie das Entwicklerprofil, das Sie verwenden möchten.

Varun Bhatia
quelle
13

Fast 2 Stunden zu diesem Thema! Und schließlich habe ich es gelöst, indem ich das ersetzt habe

iPhone Entwickler

zu

iPhone-Entwickler: Name meines Dev-Kontos

für Debugs CODE_SIGN_IDENTITY:

  1. Wählen Sie Projektziel
  2. Build-Einstellungen
  3. Suche nach "Codezeichen"
  4. Ändern CODE_SIGN_IDENTITY Bereich von Debug Zeile mit "iPhone Developer: My Dev Account - Name" , nicht nur "iPhone Developer" .

Ich habe keine Ahnung, warum es funktioniert, aber es funktioniert! Zumindest für mich!


Umgebung: Xcode 5.0 (5A1412).

Kjuly
quelle
das hat auch bei mir funktioniert, danke. musste genau mit den zu verwendenden Identitäten herumspielen, aber es gefiel schließlich eine bestimmte Kombination. Xcode 6 braucht wirklich eine "Autokorrektur" -Funktion für diese Art von Sachen, viel Housekeeping, für das ich keine Zeit habe !!
John Contarino
1
Nur um das hinzuzufügen, was ich getan habe, war es ähnlich, aber anders - ich habe das Profil in das Teamprofil (das zum Debuggen verwendet wird) geändert, wodurch der Code-Signierer auf "automatisch" gesetzt wurde - in XCode 5+ sollten Sie es wirklich sein Wählen Sie das Profil für einen Build aus und lassen Sie es entscheiden, welcher Unterzeichner darauf basierend verwendet werden soll.
Kendall Helmstetter Gelner
@KendallHelmstetterGelner Danke, das könnte für andere hilfreich sein! : D
Kjuly
Außerdem sollte ich hinzufügen, dass ich das Teamprofil für den Build "Debug" geändert habe, der verwendet wird, um auf einem Gerät in XCode ausgeführt zu werden (es sei denn, Sie ändern die
Schemaeinstellungen
1
Dies löste mein Problem mit diesem Problem, ohne etwas anderes zu tun, als mit einer anderen Codesignaturidentität neu zu erstellen. Danke dir! In meinem Fall habe ich eine Ad-hoc-Verteilungsidentität verwendet.
Sean Michael Dorian
12

Überprüfen Sie Ihren Abschnitt zur Codesignatur. Stellen Sie sicher, dass die Codesignatur iPhoneDeveloper-Codesignatur ist

user1770342
quelle
Dies tat mir - Aus irgendeinem Grund hatte sich das 'Team' auf meinem Ziel in 'Keine' geändert - durch Zurücksetzen wurde es sortiert. Prost
Ralpharoo
9

Öffnen Sie Entitlements.plist und setzen Sie den booleschen Wert get-task-allow auf YES - der Debugger kann jetzt anhängen!

Kai
quelle
ya ich habe dies viele Male versucht und verstehe nicht, warum es das Problem nicht behebt. Dies wäre die beste Methode, wenn Sie noch Testflightapp
Owen Gerig
Ich mein Run-Schema ist auf Debug eingestellt. Nur diese Lösung hat es für mich behoben! Danke dir.
Pieter
Danke, es hilft mir wirklich !!
Amir Hudani
4

Gehen Sie zu Schemas bearbeiten und wechseln Sie unter Ausführen -> Info -> Konfiguration erstellen von Ad-hoc zu Debuggen. Klicken Sie zum Speichern auf OK.

Arunabh Das
quelle
1

Möglicherweise haben Sie ein abgelaufenes Entwicklungsprofil auf Ihrem Telefon.

Mein Entwicklungsbereitstellungsprofil ist vor einigen Tagen abgelaufen und ich musste es erneuern. Ich habe das neue Profil auf meinem Telefon installiert und beim Versuch, meine App auszuführen, dieselbe Fehlermeldung angezeigt. Als ich mir die Profileinstellungen auf meinem Telefon ansah, bemerkte ich das abgelaufene Profil und entfernte es. Das hat den Fehler für mich behoben.

hkatz
quelle
1

Ich habe diesen Fehler erhalten, als ich versucht habe, die App über Xcode zu starten, da ich dachte, ich hätte nur das Distributionsprofil ausgewählt. Die Erstellung war erfolgreich, daher habe ich eine IPA-Datei erstellt. Ich habe testflightapp.com verwendet, um die App auszuführen. Sie können auch iTunes verwenden.

Horn
quelle
1

Wie von Buffernet angegeben, können Sie zum Debuggen kein Distributionsbereitstellungsprofil verwenden. Beim Wechsel zu einem Entwickler-Bereitstellungsprofil wurde die Fehlermeldung "Ein gültiges Bereitstellungsprofil für diese ausführbare Datei wurde nicht gefunden" angezeigt.

Ein kurzer Blick auf Google führte mich zu dem unten aufgeführten Artikel. Von dort aus wurde mir klar, dass ich kein gültiges Entwicklungsbereitstellungsprofil hatte, da mein iPhone nicht zum Bereitstellungsportal und allen anderen beteiligten Dingen hinzugefügt worden war.

Stellen Sie sicher, dass Sie ein Bereitstellungsprofil für iPhone-Entwickler ausführen und Ihr Gerät zum Bereitstellungsportal hinzugefügt wurde!

http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html

Jarada
quelle
0

Ja, Bereitstellungsprofile, die für Verteilungszwecke bestimmt sind, dh Bereitstellungsprofile für Distrikte, unterstützen das Debuggen nicht und geben diesen Fehler aus. Erstellen und verwenden Sie einfach das Debug-Bereitstellungsprofil (beachten Sie dies, wenn Sie ein Bereitstellungsprofil über das Konto "developer.apple.com" erstellen).

Rakesh
quelle
0

Ich habe gerade meinen Namen für bundleIdentifier geändert, das schien den Trick zu tun.

Joe Barbour
quelle
-1

Ich habe mein Projekt mit JailCoder http://jailcoder.com/ gepatcht und das Problem behoben. Laden Sie es einfach herunter und ziehen Sie Ihr xcode-Projekt darauf.

Andrés Canavesi
quelle