iOS 16 - Scanning barcode

Hi all,

I have an issue with barcode scanning on iOS 16 (and only on iOS 16). Our app doesn't scan barcode correctly, only QRCode are recognized. For example EAN13 are not detected by the "AVCaptureMetadataOutput".

If a limit "metadataObjectTypes" to AVMetadataObjectTypeEAN13Code, it works but not very well (it's low to detect the barcode)

Do you have the same problem ?

I see that a new component (DataScannerViewController) exists on iOS 16 but is it mandatory to implement it ?

Regards

Replies

If this is a regression compared to previous versions of iOS, I'd recommend filing a bug report using Feedback Assistant.

I see that a new component (DataScannerViewController) exists on iOS 16 but is it mandatory to implement it ?

It is not mandatory to implement it, but it would be interesting to know if you see different results with it.

Thx for your reply. I have just created a bug with your link.

I read that "DataScannerViewController" is only for swift and our app is on Ojective-C.

  • if you use metadataObjectTypes = [.code128, .qr]. Try this metadataObjectTypes = [.code128]

    It's works for me

  • Yes, it seems some combinations of metadataObjects are not working. I have yet to find a pattern. Are there a way to follow the created bug report?

  • Adding ".dataMatrix" objectType detection with other types is causing the issue. Other types are not scanned or barely scanned if you do this.

    I had following list of types before: [.ean8, .upce, .ean13, .itf14, .code128, .dataMatrix]

    now I need to have: [.ean8, .upce, .ean13, .itf14, .code128]

Thanks for your contributions.

This is the bug link : https://feedbackassistant.apple.com/feedback/11504535

I also encountered the same problem, on iOS16, it seems that the QR code cannot be set at the same time as the barcode. //

self.output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,
                 AVMetadataObjectTypeEAN13Code,
                 AVMetadataObjectTypeEAN8Code,
                 AVMetadataObjectTypeUPCECode,
                 AVMetadataObjectTypeCode39Code,
                 AVMetadataObjectTypeCode39Mod43Code,
                 AVMetadataObjectTypeCode93Code,
                 AVMetadataObjectTypeCode128Code,
                 AVMetadataObjectTypePDF417Code,
                 AVMetadataObjectTypeDataMatrixCode];

// Before iOS15, I set it like this and it worked fine. After iOS16, it fails.

I removed, AVMetadataObjectTypeQRCode AVMetadataObjectTypeDataMatrixCode, it can correctly identify the barcode.

But before iOS15, QR code and barcode are used at the same time, this is a bug of iOS16 system, I hope to get professional answers from Apple developers, thank you!

Same problem. Bug reported

Same problem. Anyone know if it will be fixed on 16.1?

hi,@christophen @gchiste do you have any update information for this problem?

@LuShuai

We had the same issue, after we updated our test device to iOS 16.0.2 our app stopped reading 2D barcodes properly (both QR Code and Data Matrix). On iOS 15, there was no issue detecting FNC1 character within the encoded data, which is used to read different GS1 elements. After the update, the app was unable to correctly detect the FNC1 character as well as other issues, which caused the workflow to be broken.

Today, we installed iOS 16.1 beta 3, I confirm that the app is working properly as intended, and the scanner is able to detect FNC1 character successfully. Everything went back to normal.

Post not yet marked as solved Up vote reply of rabi Down vote reply of rabi
  • We have the same issue. After iOS16 the parameter "stringValue" on the AVMetadataMachineReadableCodeObject which we get from the AVCaptureMetadataOutputObjectsDelegate have stopped giving us the whole string. It seemes like it is allready parsed using GS1. It is a problem for us because we need to parse out the different GS1 elements.

Add a Comment

@rabi

Are you under the impression that all combinations of metadataObjectTypes will work again in iOS 16 beta 3? For example, the following is likely to work again?

 output.metadataObjectTypes = [AVMetadataObject.ObjectType.qr,
                                                  AVMetadataObject.ObjectType.dataMatrix,
                                                  AVMetadataObject.ObjectType.ean13,
                                                  AVMetadataObject.ObjectType.ean8,
                                                  AVMetadataObject.ObjectType.upce,
                                                  AVMetadataObject.ObjectType.code39,
                                                  AVMetadataObject.ObjectType.code39Mod43,
                                                  AVMetadataObject.ObjectType.code93,
                                                  AVMetadataObject.ObjectType.code128,
                                                  AVMetadataObject.ObjectType.pdf417]
  • Just a FYI that iOS16 beta 3 did not fix my scanning issues. it seems we still cannot mix .qr and .dataMatrix in with the rest of the ObjectTypes...

Add a Comment

Same problem in iOS16.1

AVMetadataObjectTypeQRCode AVMetadataObjectTypeDataMatrixCode

If you specify the above types, you can scan only at the center of the screen.

(For example in [.ean13, .qr], the EAN-13 barcode is only recognized in the middle)

rectOfinterest does not work in iOS16

https://developer.apple.com/forums/thread/715055

Hi all! I recently discovered a non-obvious bug in iOS 16 related to rectOfInterest. If it is not in the center of the screen, and the qr type is selected, scanning does not occur. If anyone has noticed something similar, please write. And also if there is a bug report about this - please add a link

Add a Comment

This is fixed after iOS16.3 update!!

  • no, it doesn't... iOS 16.3.1 is with the same problem

Add a Comment