2015-11-23 13 views
8

Quando compongo l'estensione di condivisione da Xcode per il dispositivo reale, Xcode interrompe arbitrariamente il debug. Ma quando lancio per il simulatore, il problema non si verifica.Impossibile eseguire il debug di iOS9 Share su Xcode

Ambiente
Xcode 7.1.1
iOS 9.1

dettagli
Quando costruisco estensione quota, Xcode mostra "Finito in esecuzione MobileSafari.app su iPhone", ma Safari non viene eseguito. E, il pulsante di arresto quadrato è arbitrariamente grigio. Quindi, lancio Safari da solo e scelgo la mia estensione e posta. La sezione di debug non mostra nulla. Inoltre, la richiesta URL non viene inviata al server Rails.

Questa è l'immagine quando creo l'estensione di condivisione per il dispositivo reale. enter image description here

Non so perché il dispositivo reale non può avviare l'estensione di condivisione su Xcode.
Se qualcuno conosce la risposta a questo problema, la prego di dirmelo.

risposta

0

Ho riscontrato anche questo problema, anche se sfortunatamente non conosco la soluzione esatta, forse posso offrire alcune informazioni che potrebbero essere utili.

I (come te, a giudicare dal tuo screenshot) stavo usando Cocoapods, e Cocoapods stava copiando le risorse dai pod nel pacchetto dell'estensione per app dopo che era stato firmato il codice. Se la memoria serve, questo ha interferito con la firma del codice in qualche modo, impedendo quindi l'esecuzione dell'app sotto il debugger.

Credo che uno dei sintomi di questo sia stato il fatto che i registri apparivano nella console del mac (o nella console del dispositivo, non ricordo quale) che dicevano qualcosa su "saltare sul dispositivo usando il vecchio metodo skool [sic]. "

Si può confermare che questo è il caso rimuovendo Cocoapod dal progetto, o qualsiasi pod che richiede risorse da copiare dopo la compilazione. Credo che la soluzione fosse quella di aggiungere una sorta di fase di build speciale al progetto di estensione per copiare le risorse del bundle e disabilitare qualsiasi cosa Cocoapods usi di default.

Come soluzione temporanea, ritengo che eliminare l'app dal dispositivo dovrebbe consentire di collegare il debugger una volta sola, durante l'esecuzione in cui l'app viene installata per la prima volta. Potresti anche provare a eliminare i dati derivati ​​per il tuo progetto.

+0

Grazie Ben. Dal tuo post ho notato che non avevo ancora reinstallato il dispositivo. – penlight

+0

Così ho provato, e controllato se l'estensione dell'app era OK. Il risultato è stato che l'estensione dell'app era in esecuzione su iPhone e che potevo vedere l'output del debugger. Non ho cancellato la libreria Cocoapods, ma penso che la tua risposta sia ragionevole. Quindi seleziono la risposta è la migliore risposta. – penlight

+0

Il problema si è riattivato.Quindi, dopo rimuovo il progetto di modulo Cocoapods ma il problema non è stato rimosso. – penlight

6

In genere è possibile eseguire il debug di un'estensione di condivisione andando su Debug -> Collega a processo o PID e inserendo il nome dell'estensione di condivisione. Da lì puoi aprire l'estensione di condivisione sul tuo dispositivo o simulatore e il debugger di Xcode dovrebbe collegarsi e colpire correttamente i punti di interruzione. Tuttavia, ho notato che i messaggi di registro non vengono visualizzati quando si esegue questa operazione, né i valori vengono compilati per le variabili nella vista del debugger.

Ecco come è stato eseguito correttamente il debug. Esegui lo schema di estensione della condivisione. Quando ti chiede quale applicazione eseguire, scegli "Foto" (perché è l'app in cui opererà l'estensione). L'app Foto verrà quindi avviata sul tuo dispositivo e potrai continuare a utilizzare la tua estensione. Il debugger in Xcode dovrebbe quindi funzionare come previsto.

+0

Lo controllerò presto. –

Problemi correlati