uni-app 3.1.12版本引入离线打包后 liblibCamera.a 真机编译不通过

uni-app 3.1.12版本引入离线打包后 liblibCamera.a 真机编译不通过

操作步骤:

  • 引入最新的离线打包SDK(3.1.12.80425_20210428)

预期结果:

  • 编译通过

实际结果:

  • 编译报错
    • “_vImageBoxConvolve_ARGB8888”, referenced from:
      • -[UIImage(LFMECommon) LFME_transToBlurLevel:] in liblibCamera.a(UIImage+LFMECommon.o)
    • “_vImageMatrixMultiply_ARGB8888”, referenced from:
      • -[UIImage(LFMECommon) LFME_transToBlurLevel:] in liblibCamera.a(UIImage+LFMECommon.o)

bug描述:

  • 引入最新的离线打包SDK,编译时liblibCamera.a报错,提示如下信息:
    • Undefined symbols for architecture arm64:
      • “_vImageBoxConvolve_ARGB8888”, referenced from:
        • -[UIImage(LFMECommon) LFME_transToBlurLevel:] in liblibCamera.a(UIImage+LFMECommon.o)
      • “_vImageMatrixMultiply_ARGB8888”, referenced from:
        • -[UIImage(LFMECommon) LFME_transToBlurLevel:] in liblibCamera.a(UIImage+LFMECommon.o)
    • ld: symbol(s) not found for architecture arm64
    • clang: error: linker command failed with exit code 1 (use -v to see invocation)

更多关于uni-app 3.1.12版本引入离线打包后 liblibCamera.a 真机编译不通过的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

你是拿新的SDK 覆盖 还是纯新的SDK 工程

更多关于uni-app 3.1.12版本引入离线打包后 liblibCamera.a 真机编译不通过的实战教程也可以访问 https://www.itying.com/category-93-b0.html


新的SDK覆盖的

对照表格,framework和资源都已经引入了

回复 JDBeer: 没替换成功吧 你删了重新来一遍试试

回复 天生DR: 确定替换了,还是跟之前一样

回复 JDBeer: 官方Demo Hello-Uni 能跑吗?

回复 天生DR: 官方的能跑,应该是我代码的问题,我再检查一下

回复 JDBeer: 好的

这是一个典型的链接器错误,表明在编译过程中缺少必要的系统框架依赖。liblibCamera.a 中使用了 Accelerate.framework 中的图像处理函数,但项目配置中未正确链接该框架。

解决方案:

  1. 在 Xcode 项目中添加 Accelerate.framework 依赖

    • 打开 iOS 原生工程
    • 选择 Target → General → Frameworks, Libraries, and Embedded Content
    • 点击 “+” 按钮,搜索并添加 Accelerate.framework
    • 确保该框架的 Embed 设置为 “Do Not Embed”
  2. 如果使用 CocoaPods 管理依赖,可在 Podfile 中添加:

    pod 'Accelerate'
回到顶部