iOS组件化之 BitCode 问题

863 阅读1分钟

前言

组件化实践,记录一下遇到问题的解决方案。

问题描述

通过 CocoaPods 集成自建私有库,调试没有问题,但是 Archive 报错:

ld: warning: Could not find or use auto-linked framework 'opus'
Undefined symbols for architecture armv7:
  "_opus_decoder_destroy", referenced from:
      -[OpusCodec destroy] in OpusCodec.o
  "_opus_encoder_destroy", referenced from:
      -[OpusCodec destroy] in OpusCodec.o
  "_opus_decode", referenced from:
      -[OpusCodec decode:length:output:] in OpusCodec.o
  "_opus_encode", referenced from:
      -[OpusCodec encode:length:] in OpusCodec.o
  "_opus_decoder_ctl", referenced from:
      -[OpusCodec opusInit] in OpusCodec.o
  "_opus_encoder_create", referenced from:
      -[OpusCodec opusInit] in OpusCodec.o
  "_opus_decoder_create", referenced from:
      -[OpusCodec opusInit] in OpusCodec.o
  "_opus_encoder_ctl", referenced from:
      -[OpusCodec opusInit] in OpusCodec.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

原因

Framework 不支持 Bitcode 导致的。

解决方案

通过添加下面代码解决:

s.xcconfig = {'ENABLE_BITCODE' => 'NO'}