我们正在使用Vision库扫描GS1条形码.

The library does not recognize the special character "GS" in the iOS 16 versions.

"GS"-->组分隔符(ASCII 29)

在旧版本中,我们不会遇到这样的问题.例如,iOS 15.6或更低版本.我已经上传了下面的GS1条形码示例图片.

After scanning we should be getting: {GS}10BF50001A{GS}21003032{GS}1122012722VD020

What we get instead on iOS 16 is: 10BF50001A210030321122012722VD020

我还发布了一个关于如何使用库的示例代码.我们没有更改代码,该错误仅出现在iOS 16版本中.我们想知道是不是引入了窃听器.

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
    guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
        return
    }

    let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: .right)

    do {
        try imageRequestHandler.perform([detectBarcodeRequest])
    } catch {
        logger.error(tag: TAG, "barcode error: \(error)")
    }
}

private lazy var detectBarcodeRequest = VNDetectBarcodesRequest { [weak self] request, error in
    guard error == nil else {
        self?.logger.error(tag: self?.TAG, "barcode error: \(error)")
        return
    }
    self?.processVNRequest(request)
}

private func processVNRequest(_ request: VNRequest) {
    guard let barcodes = request.results else {
        return
    }

    for barcode in barcodes {
        guard let potentialBarcode = barcode as? VNBarcodeObservation else {
            return
        }

        guard let payload = potentialBarcode.payloadStringValue else {
            return
        }

        prepareToNotifyDetectionEvent(payload)
    }
}

提前谢谢您.

GS1 Barcode example

推荐答案

我们遇到了同样的问题,在我们将测试设备更新到iOS 16.0.2后,我们的应用程序无法正常读取2D条形码(二维码和数据矩阵).在iOS 15上,在用于读取不同GS1元素的编码数据中检测FNC1字符没有问题.更新后,该应用程序无法正确检测FNC1角色以及其他问题,导致工作流中断.

今天,我们安装了iOS 16.1 beta 3,我确认应用程序正常工作, scanner 能够成功检测到FNC1字符.一切都恢复了正常.

你可以将你的设备注册到苹果测试版软件计划中,以获得最新的公开测试版,比如我们测试的iOS 16.1测试版3.

Enrollment link:

https://beta.apple.com/sp/betaprogram/enroll#ios

Ios相关问答推荐

如何从ipad获取用户定义的设备名称,IOS版本应大于16在flutter

如何在SwiftUI ScrollView中zoom 中心项目?

如何在SwiftUI中拥有基于操作系统版本的条件修饰符?

有没有办法将滚动视图RTL(阿拉伯语)与Ltr动画一起使用?

SwiftUI - 搜索栏和导航标题之间的空间太大

WatchConnectivity - 从手表配套应用程序在 iOS 设备上启动 AVPlayer

快速 keys 串更新只有在第二次try 时才起作用

如何使用 pushViewController 从 UIHostingController 的 SwiftUI 视图中推送 ViewController?

Task.cancel() 的 TaskPriority 的区别

视觉扫描无法识别 iOS16 上的 GS1 条码特殊字符

VStack 显示错误实例方法 'sheet(item:onDismiss:content:)' 要求 'Int' 符合 'Identifiable'

.onAppear() 函数不适用于 NavigationLink

Flutter:无法构建 iOS 应用程序ARCHIVE FAILED,为设备归档时遇到错误

在 Swift 中为 UITextField/UIView 摇动动画

在 iOS 中获取设备位置(仅限国家/地区)

是否可以在没有 Mac 的情况下为 iOS 制作 PhoneGap 应用程序?

所有小部件的Flutter 填充?

如何在 Objective-C 中组合两个数组?

iOS UITextView 或 UILabel 带有可点击的动作链接

如何使用完成按钮制作 UIPickerView?