TesseractOCRiOS框架导入及使用中的多类问题求助
解决Tesseract-OCR-iOS在Xcode14.2(M2 Pro)上的集成问题
针对你遇到的四个集成问题,逐个给出解决方案:
1. Carthage安装后提示"No such module 'TesseractOCR'"
- 执行Carthage命令时指定iOS平台,避免编译其他平台产物:
carthage update --use-xcframeworks --platform iOS - 打开项目Build Settings,搜索Framework Search Paths,添加路径
$(SRCROOT)/Carthage/Build/iOS,并设置为recursive - 不要手动添加
Carthage/Build/Static/iOS下的静态框架,改用Carthage生成的TesseractOCR.xcframework,直接拖到项目的Frameworks, Libraries, and Embedded Content中
2. 模拟器构建时架构冲突报错
M系列芯片的模拟器为arm64架构,与真机arm64产生冲突,正确设置方式:
- 打开项目Build Settings,搜索Excluded Architectures
- 点击"+",选择Any iOS Simulator SDK,添加
arm64(仅针对模拟器排除,真机目标不要设置) - 同时确保Build Settings中的VALID_ARCHS(若存在),模拟器设为
x86_64 arm64,真机设为arm64
3. 实例化Tesseract时出现"Undefined symbol error"
这个错误是缺少依赖库导致的,按以下步骤检查:
- 确认Build Phases的Link Binary With Libraries中添加了以下系统库:
libz.tbdlibpng.tbdlibjpeg.tbdlibc++.tbd
- 如果使用静态框架,还需手动添加
libtesseract.a和libleptonica.a(Carthage的xcframework已包含这些,无需额外添加) - 检查tessdata文件夹的添加方式:选择Create folder references(而非Create groups),并确保该文件夹在Build Phases的Copy Bundle Resources中
- 不要将静态框架设置为"Embed & Sign",静态框架只需"Do Not Embed"
4. Pod安装仍出现类似错误
- 确保Podfile中指定最新稳定版本:
pod 'TesseractOCRiOS', '~> 5.0' - 执行
pod install --repo-update后,必须打开项目的.xcworkspace文件(不要打开.xcodeproj) - 在Podfile中添加架构兼容配置,避免模拟器冲突:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if config.sdk_name&.include?('simulator') config.build_settings['EXCLUDED_ARCHS'] = 'arm64' end end end end - 执行
pod install生效配置,再重新构建项目
内容的提问来源于stack exchange,提问作者AmirTocha
相关产品推荐
相关产品推荐

