Search code examples
iosiphoneiphone-xtouch-idface-id

Getting existing app with fingerprint authentication to work with iPhone X FaceId


I have an app already developed and is live on the store. Its working well and has fingerprint authentication implemented. Now that Apple has made it mandatory to provide iPhone X support, I will be releasing one more update of the app.

But, i wish to understand what will happen if install the already submitted version of the app on iPhone X..?

I have read that -

  1. App will provide a compatibility alert saying This app was designed to use Touch ID and may not fully support FaceID, But it goes away if we insert a key NSFaceIDUsageDescription in the plist.

  2. I have also read that the app will crash if build using iOS 11 SDk (without the key NSFaceIDUsageDescription in the plist).

Here is my question - what if the app is build using iOS 8 and installed in iOS 11, will it still crash ? if not, how will be the exact behaviour..? I have tested in the simulator and the app did not crash but i do not have iPhone X available at hands and cannot crosscheck the same on the actual device.

NOTE - This crash is observed on the device more and not on simulator.

  1. How important it is to have the word FaceId in the app running on iPhone X. What if I use a general terms like "Biometric authentication" in place of touchId & FaceId. Will the app still be fine and won't end up rejected ?

Any help or leads will be truly appreciated!


Solution

  • You're right in that you need the NSFaceIDUsageDescription key in your plist to properly support Face ID.

    If you built the app using Xcode 9 against the iOS 11 SDK, even if you set the target to iOS 8, you need to include that key to support iPhone X.

    That said, I don't see how this might be crashing. The same code that you use for Touch ID also supports Face ID.