Does the evaluatedPolicyDomainState change when a user upgrades from iOS 9 to iOS 10?

I have an app that uses LAContext and Touch ID to assist user log in. I have noticed that when users upgrade from iOS 9 to iOS 10 the evaluatedPolicyDomainState seems to change causing the login to fail.


Here is my code:


//Get the current domain state:

LAContext *context = [[LAContext alloc] init];

[self checkDomainState:context.evaluatedPolicyDomainState]


// Check against the previously saved domain state

-(BOOL)checkDomainState:(NSData *)domainState {

NSData *previousDomainState = [UICKeyChainStore dataForKey:@"SavedDomainState" service:@APP_ID]; // Pull previous saved state from the keychain


if (previousDomainState.length == 0 || previousDomainState == nil) {

[self saveInitialFingerprintDomainState]; // Domain state not saved, save initial domain state.

return TRUE;

}


return [domainState isEqualToData:previousDomainState]; // Evaluate if the saved state is the same as the current state

}


Does anyone know if Apple changed the domain state structure between iOS 9 and iOS 10? I have gone through the iOS 10 doumentation, but have seen nothing that might be causing this issue. Any help you can give me is gratly appreciated.


Thank you.

Replies

I've seen the same behaviour in one of my apps. All my users has experienced the problem, it seems that Apple has changed something in the state with the iOS update.

So far did not reoccur between iOS 10 versions.


This is what I got from Apple as a response to openning a bug:


Hi,

This is a follow-up regarding Bug ID# 29158087.

Please update your report directly at https://bugreport.apple.com for the fastest response. Please do not email your updates.

Please know that our engineering team has determined that this issue behaves as intended based on the information provided.

iOS 10 changed the way how this value is computer from privacy and security reasons. We do not plan any other change like that in the future, but applications should always expect that this value can change and reestablish the trust.

Developer Bug Reporting Team

Apple Worldwide Developer Relations

https://developer.apple.com

In addition, in the current documentation of the property you'll see a warning:

Please note that the value returned by this property can also change between OS versions even if

there was no change of the enrolled fingerprints.