Our DNA is written in Swift

Serious iOS Issue with GS1-128 Barcodes

Barcodes with iOSAs you might now I have an dual interest in product barcodes. First, there is my book treating all kinds of barcode symbologies supported by iOS. Second, there is ProductLayer where we are building a crowd-sourced product database via the social network.

At first I thought that the problem would only exist for really low quality bar codes (rdar://19438067) but now I found a perfectly good looking specimen that has the same issue: iOS does not recognize it.

Filed as rdar://22048146 and on Open Radar. I am hoping that Apple can fix this issue before iOS 9 is done.

This is troubling me a lot since we see more and more grocery manufacturers switching to Code 128 (away from GTIN) so that they can also represent a sell-by date for the POS. I found eggs and read-to-eat salad bowls in my local supermarket using these. Read up on GS1-128 application identifiers in the free first chapter of my book.

AVFoundation unable to recognize GS1-128 Codes


More and more manufacturers of groceries switch from GTIN (aka UPC) to GS1-128 because next to the product code they can include a best-before date. AVFoundation’s metadata object detector has a serious issue with these Code128 barcodes as it does not recognize them. At least not in the range of quality that can be found on product packages.

Steps to Reproduce

  1. Print out the provided barcode
  2. Try to scan it with a AVCaptureMetadataOutput set up to detect AVMetadataObjectTypeCode128Code

Expected Results

  • The metadata object should be delivered
  • It’s content’s should be (01)09002233023062(15)150720

In this case 01 is the product GTIN

Actual Results

  • No metadata object is delivered to the delegate
  • … regardless of how you rotate the device around
  • the crummy zBar app (free on app store) is able to detect it and opens a google search for 9002233023062


This is a severe problem because this weakness still exists in iOS 9 making the iPhone effectively unusable for scanning GS1-128 barcodes which are getting more and more prevalent in Europe.

Not recognized GS1-128 barcode

Categories: Bug Reports

1 Comment »


  1. eBay Delays Make-or-Break Move toward Catalog - Binary Option EvolutionBinary Option Evolution

Leave a Comment

%d bloggers like this: