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

问题描述 投票:0回答:5

我已经设置了项目的构建设置,为 .使用这些选项,我可以为 iPhone 3G、iPhone 5 和 iPhone 5s(具有 32 和 64 位架构的硬件)构建项目,但当我尝试为模拟器构建项目时遇到问题。为什么?我有这样的错误

Undefined symbols for architecture arm64:
 "_BIO_f_base64", referenced from:
ios objective-c xcode build openssl
5个回答
2
投票

这是由于 OpenSSL 库

解决方案1:

  • 项目设置

  • 选择目标

  • 选择

    General
    选项卡

  • Frameworks, Libraries and Embedded Content
    下,单击加号按钮。

  • 从列表中找到

    OpenSSL.xcframework
    并点击添加。

  • Embed and sign
    中选择
    OpenSSL.xcframework

  • 再次运行 xcode build

解决方案2:

  1. 将此行添加到 Podfile 中
pod 'OpenSSL-Universal', :modular_headers => true, :configurations => ['Release']
  1. 只需在ios根目录下运行
    pod install
  2. 运行构建

解决方案3:

无论出于什么原因

Project settings > Select Target > Build Settings > Framework Search Paths

Screenshot 2023-04-07 at 9 45 48 PM

但是发布版缺少了其中的一些,所以我添加了这 2 个:

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

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


0
投票

那是因为模拟器运行在i386架构上,没有arm。 将 i386 之类的东西添加到支持的体系结构中。 (有关详细信息和屏幕截图,请参阅此处众多答案中的一个


0
投票

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


0
投票

您可以在终端中执行“lipo -info openssl.a”命令。 看看它的架构是什么? 应该是手臂。


0
投票

这篇文章可能会解决您的构建存档问题 在此输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.