2009-09-28 16 views
157

Ich habe gerade ein Provisioning - Profil zu XCode hinzugefügt (benötigt für die Unterstützung von Benachrichtigungen und beim App - Kauf), habe die Build - Konfiguration für die Ad - hoc - Verteilung eingerichtet und versucht, die App auf dem Gerät auszuführen (ich habe dies mehrmals in die Vergangenheit, ohne jedes Problem).iPhone Debugging: Wie zu beheben 'fehlgeschlagen, um die Aufgabe für den Prozess zu bekommen'?

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

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. 

Allerdings, wenn ich die Anwendung auf dem Gerät manuell zu starten, es funktioniert wie erwartet. Ich habe vor kurzem den neuesten XCode 3.2 für Snow Leopard installiert. Ist das ein bekannter Bug dieser Version von XCode oder mache ich etwas falsch?

EDIT: Es funktioniert gut mit Release-Verteilung mit dem Development Provisioning-Profil. Ich habe erneut das Ad-hoc-Bereitstellungsprofil überprüft, um sicherzustellen, dass es das Gerät enthält, das ich verwende.

+0

auch das kann helfen: gehen Sie zu Organizer -> Projekte -> DerivedData löschen und zu bereinigen. Stellen Sie sicher, dass alle Signaturen in Project und Target konsistent und korrekt gesetzt sind - das half in meinem Fall ... – user387184

Antwort

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 nicht auf dem Gerät zum Debuggen installiert werden muss. Im Allgemeinen habe ich diese Datei dann für Release-Builds (wo es für den App Store erforderlich ist) aufgenommen und zum Debuggen entfernt (damit ich die App von XCode aus debuggen kann). Das könnte hier dein Problem sein.

aktualisieren: Ab (mindestens) August 2010 (iPhone 4.1 SDK) die Entitlements.plist ist nicht mehr notwendig, in Ihrer Anwendung in vielen Fällen enthalten (zB Vertrieb über den App Store.) Siehe here für Weitere Informationen zu den Fällen, in denen "Entitlements.plist" erforderlich ist:

IMPORTANT: An Entitlements file is generally only needed when building for Ad Hoc Distribution or enabling Keychain data sharing. If neither of these is true, delete the entry in Code Signing Entitlements. (emphasis mine)

+0

Sie haben Recht, ich habe überprüft, dass es tatsächlich der get-task-allow boolsche Wert ist, der in Entitements auf false gesetzt ist. plist, die das Debuggen verhindert. Vielen Dank. –

+1

FYI, ich hatte genau das gleiche Problem und die Sache, die das Problem löste, war das Hinzufügen der Berechtigungsdatei mit dem get-task-allow-Set auf YES ... also wenn Sie das gleiche Problem haben und Sie nicht die Berechtigungsdatei haben , versuche es hinzuzufügen ...: P –

+0

hat mir in Xcode 4.6.2 nicht geholfen – brainray

289

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

+0

Diese Informationen habe ich meines Wissens nicht auf dem Entwicklerportal gesehen. Aber mein Kommentar zu fbrereto erklärt, warum das so ist: Wir haben die Datei "Entitlements.plist" weder in Debug- noch in Release-Konfigurationen. –

+5

Ich hatte das gleiche Problem, nachdem ich versehentlich die Code-Signatur Identität zu einer iPhone-Distribution in XCode 4 – cpungaliya

+1

Wie schalte ich das Profil zurück auf Debugging, wenn ich nur auf "Start" – spankmaster79

1

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

Mein Entwicklungsprovisionsprofil ist vor einigen Tagen abgelaufen und ich musste es erneuern. Ich habe das neue Profil auf meinem Telefon installiert und die gleiche Fehlermeldung angezeigt, als ich versuchte, meine App auszuführen. Als ich mir die Profileinstellungen auf meinem Handy ansah, bemerkte ich das abgelaufene Profil und entfernte es. Das hat den Fehler für mich geklärt.

19

Dies dauerte eine Weile, um herauszufinden.

Wenn Sie ein Verteilung/Ad-hoc/Profil verwenden, können Sie es nicht über xcode testen. Sie erhalten den Fehler: Das zu debuggende Programm wird nicht ausgeführt.

Sie können die App erstellen, gehen Sie in xcode zum Produktordner in Ihrer App, klicken Sie auf die Datei mit Ihrem Projektnamen und wählen Sie Enthüllen im Finder. Sie können diese App in iTunes ziehen und synchronisieren und an diesem Punkt können Sie Ihre App auf Ihrem Gerät testen.

+0

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 repariert. – vocaro

+1

Ich wünschte, XCode wäre mehr im Voraus darüber. Es ist überhaupt nicht offensichtlich, dass Sie eine Distribution, die auf einem Gerät erstellt wurde, nicht testen können, während Sie mit XCode verbunden sind. Es ist ein häufiger Anwendungsfall. – user798719

9

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

+0

ya ich habe das viele Male versucht und verstehe nicht, warum es das Problem nicht behebt.Dies wäre die beste Methode, wenn Sie immer noch testflightapp –

+0

WORKS !!!!!!!!!!! – ExceptionSlayer

+0

I mein Laufschema ist auf Debug eingestellt. Nur diese Lösung hat es für mich behoben! Vielen Dank. – Pieter

37

Ich habe das gleiche Problem, aber gelöst durch folgende einfache Schritte:

  1. sicher, dass Sie Debug anstatt Release ausgewählt haben.
  2. In Debug-Konfigurationen sollten Sie in den Projekteinstellungen das Profil & des Entwicklers ausgewählt haben, ohne die Berechtigungen plist angeben zu müssen.
  3. Auch die gleiche Einstellung gibt es unter: Ziele:, wenn nicht manuell ändern sie die oben für die Debug-Konfiguration. Es wird klappen.

Alles Gute.

+2

Das hat den Trick für mich gemacht! – Abramodj

+0

Das funktionierte wirklich für mich auch :-) –

+0

Der Grund, warum dies funktionierte, ist fast sicher, dass Ihre Debug-Konfiguration get-task-allow in Entitlements.plist gesetzt hat, während das Release nicht - das ist, Leute zu stoppen, die den Debugger anfügen Sie kopieren sie aus dem App Store (siehe auch die Antwort von Kai unten, um es auf "ja" zu setzen, damit es funktioniert). – dsmudger

1

Wie von Buffernet angegeben, können Sie ein Verteilungs-Bereitstellungsprofil nicht zum Debuggen verwenden. Als ich zu einem Entwickler-Bereitstellungsprofil wechselte, wurde der Fehler "Ein gültiges Bereitstellungsprofil für diese ausführbare Datei wurde nicht gefunden" angezeigt.

Eine schnelle Google für diese führen mich zu dem unten aufgeführten Artikel. Von da an wurde mir klar, dass ich kein gültiges Provisioning-Profil für Entwickler hatte, da mein iPhone nicht zum Provisioning-Portal hinzugefügt wurde und alle anderen involvierten Dinge.

Stellen Sie sicher, dass Sie ein iPhone Developer Provisioning-Profil ausführen und Ihr Gerät dem Provisioning-Portal hinzugefügt wurde!

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

13

Wenn Sie eine solche Fehlermeldung erhalten, könnte der einzige Grund, warum Sie sein ein Verteilungsprofil ist eher als ein Entwicklungsprofil in Xcode oder eine fehlende Berechtigung Eigenschaft. Wenn Sie die Datei "Entitlements.plist" nicht verwenden, kann der einzige mögliche Fehler darin bestehen, dass die App mit einem Verteilungsprofil verpackt wird. Sie können dies überprüfen, indem Sie die Build-Protokolle bestätigen. Um dies zu ändern, gehen Sie zu Build Setting des Projekts und überprüfen Sie die Einstellung für die Code Signing Entity. Damit das Debugging funktioniert, sollte diese Einstellung ein Entwicklerprofil für die Konfiguration sein, die Sie gerade verwenden.

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

Für sofortige Ergebnisse, löschen Sie alle mobilen Provisioning-Profile von Xcode und dem Entwickler-Profil installieren, die Sie verwenden möchten.

+0

Nur eine, die für mich arbeitete! Check this first – DevC

4

Gehe zu Edit Schemes und unter Run -> Info -> Build Configuration, Wechsel von Ad-Hoc zu Debug. Klicken Sie auf OK, um zu speichern.

-1

Ich habe mein Projekt mit JailCoder http://jailcoder.com/ und Problem gelöst gepatcht. Laden Sie es einfach herunter und ziehen Sie Ihr xcode-Projekt auf Es.

0

Ja, Provisioning-Profile, die für die Verteilung vorgesehen sind, d. H. Distrusions-Provisioning-Profile, unterstützen das Debuggen nicht und geben diesen Fehler an. Erstellen und verwenden Sie einfach das Debug-Provisioning-Profil (achten Sie beim Erstellen des Provisioning-Profils auf das Konto developer.apple.com darauf).

12

prüft Code ur Unterzeichnung section.make sicher, dass die Codesignatur ist iPhoneDeveloper Code signe

+0

Das hat meins - Aus irgendeinem Grund auf meinem Ziel hatte das 'Team' auf 'None' geändert - es wieder zu ändern sortierte es. Prost – Ralphonzo

1

ich diesen Fehler empfangen, wenn ich App von Xcode zu starten versucht, als ich dachte, ich nur Verteilungsprofil ausgewählt hatte. Build war erfolgreich, also habe ich eine .ipa-Datei erstellt. Ich habe testflightapp.com verwendet, um die App zu starten. Sie können auch iTunes verwenden.

13

Fast 2 Stunden zu diesem Thema!Und schließlich löste ich es von den

iPhone Developer

zu

iPhone Developer: My Dev Account Name

für Debug des CODE_SIGN_IDENTITY ersetzt: Target

  • Build-Einstellungen
  • Suche nach

    1. Select Project Code Zeichen "
    2. Ändern CODE_SIGN_IDENTITY Debug Zeile des Abschnitts mit "iPhone Developer: My Dev Account-Name", nicht nur "iPhone Developer".

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


    Umgebung: Xcode 5.0 (5A1412).

  • +1

    Keine Ahnung warum, aber es hat für mich funktioniert. –

    +0

    das hat auch bei mir funktioniert, danke. musste mit genau welchen Identitäten experimentieren, aber es mochte schließlich eine bestimmte Kombination. Xcode 6 benötigt wirklich eine "Auto-Korrektur" -Funktion für diese Art von Sachen, viel Hauswirtschaft, für die ich keine Zeit habe !! –

    +1

    Nur um das hinzuzufügen, was ich getan habe, war ähnlich, aber anders - ich habe das Profil geändert, um das Team-Profil (das für das Debuggen verwendet wird), die den Code-Unterzeichner als "automatisch" festlegen - in XCode 5+ sollten Sie wirklich Wählen Sie das Profil für einen Build aus und legen Sie fest, welcher Signierer basierend darauf verwendet werden soll. –

    0

    Ich habe gerade meinen bundleIdentifier-Namen geändert, der den Trick zu tun schien.