我在其他地方看到过这个问题,但它似乎总是与 Firebase 的 Cocoapods 安装有关。我的问题是相反的 - 当我尝试编译时,尝试从 pod 升级到 SPM 给了我这个问题:
ld: framework not found FBLPromises
Run Code Online (Sandbox Code Playgroud)
我目前在配备 M1 芯片的 Mac Mini 上运行 Xcode 13.3,但问题出现在早期版本的 Xcode 中。
之前我通过 SPM 安装了 Disk ( https://github.com/saoudrizwan/Disk ),通过 Cocoapods 安装了 Firebase/Messaging 和 Twilio (5.5.1)。我运行pod clean并pod deintegrate删除了所有 Pod 文件等,并使用 SPM 安装了 Twilio 和 Firebase Messaging。这给了我以下包依赖项(并且您可以看到 Promises 2.0.0 已成功添加):
当我研究这个问题时,我得到的最重要的结果是FBLPromises Framework not find,第二个答案建议将arm64添加为排除的架构,但这样做会给我带来进一步的问题(下面的警告和错误),我宁愿不排除盲目地构建架构,然后陷入困境,试图解决这个问题,因为它可能无法解决我最初的问题。
当我尝试排除arm64架构时出现警告和错误:
None of the architectures in ARCHS (arm64) are valid. Consider setting ARCHS to $(ARCHS_STANDARD) or updating it …
我尝试完全按照 Apple 网站 ( https://developer.apple.com/documentation/vision/recognizing_text_in_images ) 上的概述来实现 OCR,但是当我尝试执行 OCR 时,出现一系列指针错误。错误已在 Xcode 中用Thread 1: EXC_BAD_ACCESS (code=1, address=0x17dfe3ff0)或标记Thread 1: De-allocation of unallocated memory。
我的问题是这样的:
我认为这可能与 UIImage 在 VNImageRequestHandler 到达之前被取消分配有关?我有一个单独的相机框架,用于拍摄和裁剪照片并返回图像,因此图像可能被取消分配或被视为超出范围?我以前见过这个错误,它一夜之间就消失了,但我不想只是祈祷它消失!
编辑:根据评论中的建议,我关闭了地址消毒器,它似乎又可以工作了。没有将其标记为已解决,因为我希望我的代码在打开调试工具时不会中断......
@available(iOS 13.0, *)
class func recogniseText(inImage: UIImage, completionHandler: @escaping (_ recognisedText: String?) -> Void){
guard let cgImage = inImage.cgImage else{
return completionHandler(nil)
}
let requestHandler = VNImageRequestHandler(cgImage: cgImage)
let ocrRequest = VNRecognizeTextRequest { (request, error) in
guard let observations = request.results as? [VNRecognizedTextObservation] else{ …Run Code Online (Sandbox Code Playgroud)