BlinkID / blinkid-react-native

ID scanning for cross-platform apps built with ReactNative.
175 stars 59 forks source link

iPhone 14 scanning problems #202

Closed kevinswartz closed 1 year ago

kevinswartz commented 1 year ago

Hi Guys, We've started receiving numerous reports from customers about issues scanning IDs using iPhone 14 devices. We have sentry logging hooked up, and it looks like the error is ProcessingStatus.BarcodeRecognitionFailed. The report is that scanning never works with any ID. We are on blinkid-react-native version 5.17.0. I do not have an iPhone 14 available to test, and since Apple does not support using the camera from within a simulator I'm a little stuck.

The code we use to scan is:

    let blinkIdCombinedRecognizer = new BlinkIDReactNative.BlinkIdCombinedRecognizer();
    blinkIdCombinedRecognizer.returnFullDocumentImage = false;
    blinkIdCombinedRecognizer.returnFaceImage = false;
    blinkIdCombinedRecognizer.skipUnsupportedBack = true;

    const scanningResults = await BlinkIDReactNative.BlinkID.scanWithCamera(
      new BlinkIDReactNative.BlinkIdOverlaySettings(),
      new BlinkIDReactNative.RecognizerCollection([blinkIdCombinedRecognizer]),
      blinkIdLicenseKey
    );

Any ideas? Thanks for your help! Kevin

somyaguptagit commented 1 year ago

Hello kevin, Thank you for reaching out! Just to gather a bit more information, would you mind telling us if this issue occurs on iPhone 14 or the Pro version. The reason being this is a known issue; the problem happens due to the 14 Pro’s camera being unable to auto-focus properly on the barcode. This month we will release a new version of BlinkID which is also a major release, v6.0. It will include the improved scanning accuracy for all IDs that hold a PDF417 or other barcode types. You can read more about it here. Please let us know if you have any other questions.

kevinswartz commented 1 year ago

I know that at least one of the devices exhibiting this behavior was an iPhone 14 pro. We've had more than one report and I'm not sure what devices the other users were using. Since this error also occurs as a part of normal operations, it's hard to identify which devices are producing the problem erroneously.

Is there any chance we could get some kind of patch for this in the meantime? It is impacting a significant number of users for us, and it prevents people from using a major feature of our app. This feels high priority since iPhone 14 has been out for quite some time. Thanks for your help!

kevinswartz commented 1 year ago

The new features in v6.0 look great btw!

somyaguptagit commented 1 year ago

Hello Kevin, Thank you for your response and the feedback! Unfortunately, there is no workaround or a patch at this moment which would fix the issue and we are expecting this to be resolved in the upcoming release.

kevinswartz commented 1 year ago

Ok, understood. Thanks for your help! We are anxiously awaiting the new version. :)

CoreyBovalina commented 1 year ago

Hello Kevin, Thank you for your response and the feedback! Unfortunately, there is no workaround or a patch at this moment which would fix the issue and we are expecting this to be resolved in the upcoming release.

when is version 6.0.0 for react native going to be released?

somyaguptagit commented 1 year ago

Hello Corey,

We reached out to our internal teams regarding release of an updated version of BlinkID React-Native and were informed that we can expect it to be released by end of January or first week of February but unfortunately we don't have the precise timeline. Once the release is out, we will make a follow-up here and provide an update. In the meantime, please let us know if you have any additional questions.

Best Regards, Somya Gupta

kevinswartz commented 1 year ago

Thanks Somya! I'm glad we have a timeframe, but is there absolutely no patch or workaround in the meantime? Is there any scan configuration that we can change? Are there any versions of blinkid-react-native that we could roll back to?

I'm not trying to be a pain, but the lack of iPhone 14 support is a pretty big problem for us. We have many affected users that don't have the option of using a different device.

somyaguptagit commented 1 year ago

Hello Kevin! Thanks for your response! We understand and apologize that this is causing inconvenience on your end.

Since this issue requires release with camera features exposed on cross platforms, there is no workaround, though we have a workaround for the Native platforms. However, we have also forwarded this issue to our internal teams and as soon as we have any update or info, we will come back to you with our findings. We also confirmed with them that the release should come up somewhere in mid January (around Jan 16th to be more precise). Hope you find this information helpful. Please let us know if there is anything else we can help you with.

Best Regards, Somya Gupta

kevinswartz commented 1 year ago

Hi Somya, It's Jan 16th and I just wanted to follow up about the status of a fix for this. Thanks! Kevin

somyaguptagit commented 1 year ago

Hello Kevin,

Thank you for following up!

We checked with our internal teams and unfortunately the release has been delayed for now. The expected timeline is around January end or February first week.

However, there is a possible workaround that our teams shared:

You can go to the following file in the path in the project:

…/node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Overlays/Serialization/MBBlinkIdOverlaySettingsSerialization.m

and after line 31 add the following line of code:

sett.cameraSettings.cameraPreset = MBCameraPreset4K;

This will modify the camera preset settings, please test it out and let us know if this works.

Once the release is out, we will follow up here with an update. If you have any additional questions, we are here.

kevinswartz commented 1 year ago

Hi Somya, Thanks for the workaround, I can confirm that this works for me locally. We're still looking forward to the upcoming release, but this will work for us for now. Thanks for your help! Kevin