Sono d'accordo con Paul Cezanne, non penso che si possa fare l'acquisizione mentre il processo TouchID è attivo. Mentre non vedo alcuna informazione specifica nei documenti o nei file di intestazione, attraverso alcuni test puoi vedere cosa sta succedendo.
In primo luogo, il prompt TouchID è in esecuzione al di fuori del processo.
1. Avviare l'applicazione abilitata per TouchID su un dispositivo nel debugger.
2. Ottenere l'applicazione per visualizzare il prompt TouchID.
3. In Xcode, mettere in pausa l'app.
Normalmente, l'app viene congelata sul dispositivo, ma in questo caso è comunque possibile utilizzare l'impronta digitale o il pulsante Annulla per chiudere la finestra di dialogo. Una volta chiuso il prompt TouchID, l'app viene messa in pausa come previsto.
Impostare un punto di interruzione nel callback evaluatePolicy. Accetta TouchID con il tuo dito e vedrai che il blocco viene chiamato da CoreAuthentication.daemon.
-[ViewController startTouchID:]_block_invoke at .../testTouchIDThreadding/testTouchIDThreadding/ViewController.m:60
-[LAContext evaluatePolicy:options:reply:]_block_invoke() /*THIS IS MY BLOCK*/
...
-[NSXPCConnection _sendInvocation:withProxy:remoteInterface:withErrorHandler:timeout:userInfo:]_block_invoke310()
...
Enqueued from com.apple.NSXPCConnection.m-user.com.apple.CoreAuthentication.daemon (Thread 3)Queue : com.apple.NSXPCConnection.m-user.com.apple.CoreAuthentication.daemon (serial)
...
Dal TouchID sta sfruttando l'hardware del dispositivo per leggere l'identificazione personale e confrontarlo con la stampa memorizzati sul chip penso che ha bisogno di limitare l'accesso a qualsiasi altro hardware dispositivo mentre il processo è in esecuzione.
Dalla tua esperienza e una app di test che ho appena lanciato insieme, questo sembra essere vero. Ho aperto la fotocamera usando UIImagePickerController e, mentre aperta, ho chiamato laContext evaluationPolicy: ... e ha messo in pausa l'acquisizione della videocamera.
Quindi, in sintesi, quando si utilizza la convalida TouchID:
- Il vostro processo è ancora l'applicazione attiva, ma hanno chiamato fuori del vostro processo di
- Apple sta limitando l'accesso al dispositivo hardware per la durata
fonte
2015-05-21 20:42:17
Sospetto che Apple prenda realmente il controllo dell'app quando viene visualizzata la schermata Touch ID. So che la mia app non ha metodi di rotazione e so anche che quando si esamina la tua app con un ispettore visivo come Reveal.app la schermata Touch ID non fa parte della gerarchia della vista. Spero che questo aiuti ... –
Wow, non mi ero reso conto che esistessero cose come Reveal App. Sembra utile – Randomblue
È un prodotto straordinario. Molto di ciò che fa può essere fatto in Xcode ora, ma non su un dispositivo, e se stai catturando video o utilizzando Touch ID hai bisogno di un dispositivo reale. –