Debug iPhone: come risolvere "impossibile ottenere l'attività per il processo"?


158

Ho appena aggiunto un profilo di provisioning a XCode (necessario per supportare le notifiche e nell'acquisto di app), impostato come necessario la configurazione di build per la distribuzione ad hoc e ho provato a eseguire l'app sul dispositivo (l'ho già fatto diverse volte in passato , senza alcun problema).

L'app è installata, ma non si avvia. Sulla console, vedo il seguente messaggio:

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.

Tuttavia, se avvio manualmente l'applicazione sul dispositivo, funziona come previsto. Di recente ho installato l'ultimo XCode 3.2 per Snow Leopard. È un bug noto di questa versione di XCode o sto facendo qualcosa di sbagliato?

EDIT: funziona bene con la distribuzione delle versioni usando il profilo di provisioning di sviluppo. Ho ricontrollato il profilo di provisioning ad hoc per assicurarmi che includa il dispositivo che sto utilizzando.


anche questo può aiutare: vai su Organizer -> Progetti -> DerivedData elimina e pulisci. Assicurati che tutte le firme in Progetto e Target siano impostate in modo coerente e corretto - questo ha aiutato nel mio caso ....
user387184

Risposte:


110

Ho riscontrato problemi durante il debug dei file binari sul dispositivo tramite XCode quando l'app include un file Entitlements.plist, che non è necessario installare sul dispositivo per il debug. In generale, quindi, ho incluso questo file per le build di rilascio (dove è richiesto per l'App Store) e l'ho rimosso per il debug (in modo da poter eseguire il debug dell'app da XCode). Questo potrebbe essere il tuo problema qui.

Aggiornamento : a partire da (almeno) agosto 2010 (iPhone 4.1 SDK) il Entitlements.plist non è più necessario da includere nella tua applicazione in molti casi (ad esempio, la distribuzione attraverso l'App Store.) Vedi qui per maggiori informazioni sui casi in cui Entitlements.plist è richiesto:

IMPORTANTE: un file Entitlements è generalmente necessario solo quando si crea per la distribuzione ad hoc o si abilita la condivisione dei dati del portachiavi. Se nessuno di questi è vero, eliminare la voce in Diritti firma codice. (enfatizzare il mio)


Hai ragione, ho verificato che è davvero il valore booleano get-task-allow impostato su false in Entitlements.plist che impedisce il debug. Grazie.
Massimo Cafaro,

1
Cordiali saluti, ho avuto lo stesso identico problema e la cosa che ha risolto il problema era AGGIUNGERE il file dei diritti con get-task-allow impostato su YES ... quindi se hai lo stesso problema e non hai il file dei diritti, prova ad aggiungerlo ...: P
Alex Zak,

A partire da iOS 8.1.3 entitelments.plist è richiesto anche per le app firmate dall'azienda.
Roy K,

289

Il profilo ad hoc non supporta il debug. È necessario eseguire il debug con un profilo di sviluppo e utilizzare il profilo Ad-Hoc solo per distribuire copie non debuggabili.


Per quanto ne so, non ho visto queste informazioni sul portale del programma di sviluppo. Ma il mio commento a fbrereto spiega perché è così: non abbiamo il file Entitlements.plist né nelle configurazioni di debug né nelle versioni di rilascio.
Massimo Cafaro,

5
Ho avuto lo stesso problema dopo aver impostato l'identità della firma del codice su una distribuzione iPhone in XCode 4
cpungaliya,

1
come posso ripristinare il debug del profilo se faccio semplicemente clic su "start"
spankmaster79

Solo un'altra di quelle piccole insidie ​​che Apple ha fatto per te. L'ho appena accaduto dopo aver ripetuto tutti i miei profili e i miei certificati grazie a un bug del portale ... sigh. Grazie per le informazioni, risolto il mio problema.
13

Questa era la risposta al mio problema. Non avevo niente da fare con i diritti.
DOOManiac

37

Ho avuto lo stesso problema, ma risolto seguendo i seguenti semplici passaggi:

  1. Assicurati di aver selezionato il debug anziché il rilascio.
  2. Nelle configurazioni di debug, nelle impostazioni del progetto, è necessario aver selezionato il profilo dello sviluppatore e non è necessario specificare la lista dei diritti.
  3. Anche la stessa impostazione è presente in: Target:, se non manualmente, cambiarli in sopra per la configurazione di debug. Funzionerà.

Ti auguro il meglio.


Il motivo per cui ha funzionato è quasi certamente che la configurazione di Debug ha get-task-allow impostato in Entitlements.plist mentre la versione 1 non lo fa - questo è per impedire alle persone di collegare il debugger alla copia che ottengono dall'App Store (vedi- anche la risposta di Kai qui sotto sull'impostazione di sì per farlo funzionare ..)
dsmudger

L'ho fatto per me. In qualche modo la build è stata impostata su "release" e i profili di rilascio non sono stati impostati correttamente.
KPK,

19

Mi ci è voluto un po 'di tempo per capire.

Se si utilizza un profilo di distribuzione / ad hoc / non è possibile verificarlo tramite xcode. Verrà visualizzato l'errore: il programma in fase di debug non è in esecuzione.

Puoi creare l'app, andare alla cartella dei prodotti nella tua app in xcode, fare clic sul file con il nome del tuo progetto e scegliere rivelare nel finder. Puoi trascinare questa app in iTunes e sincronizzarla e quel punto puoi testare l'app sul tuo dispositivo.


Sì, questo era il mio problema. Non avevo un file Entitlements, ma avevo cambiato la mia configurazione di build di debug in un profilo di distribuzione. Il passaggio a un profilo di sviluppo ha risolto tutto.
vocaro,

1
Vorrei che XCode fosse più diretto su questo. Non è affatto ovvio che non è possibile testare una build di distribuzione su un dispositivo durante la connessione a XCode. È un caso d'uso comune.
user798719

13

Se si verifica questo errore, l'unico motivo potrebbe essere l'utilizzo di un profilo di distribuzione anziché di un profilo di sviluppo in Xcode o di una proprietà di Entitlement mancante. Se non si utilizza Entitlements.plist, l'unico errore possibile potrebbe essere che l'app viene impacchettata con un profilo di distribuzione. È possibile verificarlo confermando i log di compilazione. Per modificarlo, vai a Build Setting del progetto e verifica l'impostazione Entità di firma del codice. Affinché il debug funzioni, questa impostazione dovrebbe essere un profilo sviluppatore per la configurazione attualmente in uso.

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

Per risultati immediati, elimina tutti i profili di provisioning per dispositivi mobili da xcode e installa il profilo di sviluppatore che intendi utilizzare.


13

Quasi 2 ore su questo problema! E finalmente l'ho risolto sostituendo il

Sviluppatore iPhone

per

Sviluppatore iPhone: My Dev Account Name

per Debug CODE_SIGN_IDENTITY:

  1. Seleziona Target progetto
  2. Costruisci impostazioni
  3. Cerca per "segno di codice"
  4. Modifica la riga Debug della sezione CODE_SIGN_IDENTITY con "iPhone Developer: My Dev Account Name" , non solo "iPhone Developer" .

Non ho idea del perché funzioni, ma funziona! Almeno per me!


Ambiente: Xcode 5.0 (5A1412).


questo ha funzionato anche per me, grazie. ha dovuto armeggiare con esattamente quali identità usare, ma alla fine è piaciuta una certa combinazione. Xcode 6 ha davvero bisogno di una funzione di "correzione automatica" per questo genere di cose, molte pulizie non ho tempo per !!
John Contarino,

1
Solo per aggiungere a ciò ciò che ho fatto è stato simile, ma diverso: ho cambiato il profilo per diventare il profilo del team (che viene utilizzato per il debug), che ha impostato il firmatario del codice su "automatico" - in XCode 5+ dovresti davvero essere selezionando il profilo per una build e lasciandolo decidere quale firmatario utilizzare in base a quello.
Kendall Helmstetter Gelner,

@KendallHelmstetterGelner thx, questo potrebbe essere utile agli altri! : D
Kjuly

Inoltre, devo aggiungere che ho modificato il profilo del team per la build "Debug", che viene utilizzato per eseguire sul dispositivo da XCode (a meno che non si modifichino le impostazioni dello schema)
Kendall Helmstetter Gelner

1
Ciò ha risolto il mio problema con questo problema senza fare altro che ricostruire con un'identità di firma del codice diversa. Grazie! Nel mio caso, stavo usando un'identità di distribuzione ad hoc.
Sean Michael Dorian,

12

Controlla la sezione relativa alla firma del codice. Assicurati che la firma del codice sia firmata da iPhone


Questo ha fatto il mio - Per qualche ragione sul mio Target il 'Team' era cambiato in 'Nessuno' - cambiandolo di nuovo in ordine. Saluti
Ralpharoo,

9

Apri Entitlements.plist e imposta il valore booleano get-task-allow su YES - il debugger può ora collegarsi!


ya ho provato molte volte e non capisco perché non risolve il problema. questo sarebbe il metodo migliore se volessi ancora incorporare testflightapp
owen gerig,

Il mio schema di esecuzione è impostato per il debug. Solo questa soluzione l'ha risolto per me! Grazie.
Pieter,

Grazie Mi aiuta davvero !!
Amir Hudani,

4

Vai a Modifica schemi e in Esegui -> Informazioni -> Crea configurazione, passa da Ad-Hoc a Debug. Fai clic su OK per salvare.


1

È possibile che tu abbia un profilo di sviluppo scaduto sul telefono.

Il mio profilo di provisioning di sviluppo è scaduto diversi giorni fa e ho dovuto rinnovarlo. Ho installato il nuovo profilo sul mio telefono e ho visualizzato lo stesso messaggio di errore quando ho provato a eseguire la mia app. Quando ho guardato le impostazioni del profilo sul mio telefono ho notato il profilo scaduto e l'ho rimosso. Ciò ha eliminato l'errore per me.


1

Ho ricevuto questo errore quando ho provato ad avviare l'app da Xcode poiché pensavo di aver selezionato solo il profilo di distribuzione. La compilazione ha avuto successo, quindi ho creato il file .ipa. Ho usato testflightapp.com per eseguire l'app. Puoi usare anche iTunes.


1

Come affermato da Buffernet, non è possibile utilizzare un profilo di provisioning di distribuzione per il debug. Quando sono passato a un profilo di provisioning per sviluppatori, ho ricevuto l'errore "Impossibile trovare un profilo di provisioning valido per questo eseguibile".

Un rapido google per questo mi porta all'articolo elencato di seguito. Da lì, mi sono reso conto di non avere un profilo di provisioning di sviluppo valido poiché il mio iPhone non era stato aggiunto al portale di provisioning e tutte le altre cose coinvolte.

Assicurati di eseguire un profilo di provisioning per sviluppatori iPhone e che il tuo dispositivo sia stato aggiunto al portale di provisioning!

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


0

Sì, i profili di provisioning a scopo di distribuzione, ovvero i profili di provisioning di Distrutions non supportano il debug e generano questo errore. Basta creare e utilizzare il profilo di provisioning di debug (occuparsi di questo quando si crea il profilo di provisioning dall'account developer.apple.com).


0

Ho appena cambiato il mio nome bundleIdentifier, che sembrava fare il trucco.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.