iOS - XCODE -由于openssl而导致构建失败

xpcnnkqh  于 2023-06-24  发布在  iOS
关注(0)|答案(4)|浏览(236)

我已经设置了我的项目的构建设置,插入“标准架构(armv7,arm64)”和“有效架构(armv7,armv7s和arm64)”。有了这些选项,我可以为iPhone 3G,iPhone 5和iPhone 5s(32和64位架构的硬件)构建项目,但当我尝试为模拟器构建项目时,我遇到了问题。为什么?我也有这样的错误

Undefined symbols for architecture arm64:
 "_BIO_f_base64", referenced from:
avwztpqn

avwztpqn1#

这是因为模拟器运行在i386架构上,没有ARM。在支持的架构中添加类似i386的东西。(请参阅SO上的众多答案中的one以获取详细信息和截图)

brc7rcf0

brc7rcf02#

BIO_f_base64是OpenSSL(https://www.openssl.org/docs/crypto/BIO_f_base64.html)的一部分。这在iOS上不可用。您是否将OpenSSL的本地副本嵌入到您的应用程序中?看起来您可能没有正确地构建库。请确保您为iOS模拟器和x86_64加上i386构建它。

lrpiutwd

lrpiutwd3#

您可以在终端中执行“lipo -info openssl. a”命令。看看这是什么建筑?应该是武装。

dgenwo3n

dgenwo3n4#

这是由于OpenSSL库

方案一:

  • 项目设置
  • 选择目标
  • 选择General选项卡
  • Frameworks, Libraries and Embedded Content下,单击加号按钮。
  • 从列表中找到OpenSSL.xcframework并点击Add。
  • OpenSSL.xcframework中选择Embed and sign
  • 再次运行xcode build

方案二:

1.将这一行添加到Podfile中

pod 'OpenSSL-Universal', :modular_headers => true, :configurations => ['Release']

1.在ios根目录下运行pod install
1.运行构建

方案三:

Project settings > Select Target > Build Settings > Framework Search Paths中,无论出于什么原因:

但是发布版缺少了一堆,所以我添加了这两个:

"${PODS_ROOT}/OpenSSL-Universal/Frameworks"
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal"

然后调试和发布版本都对我有效。👍🏼

相关问题