我已经设置了项目的构建设置,为 .使用这些选项,我可以为 iPhone 3G、iPhone 5 和 iPhone 5s(具有 32 和 64 位架构的硬件)构建项目,但当我尝试为模拟器构建项目时遇到问题。为什么?我有这样的错误
Undefined symbols for architecture arm64:
"_BIO_f_base64", referenced from:
这是由于 OpenSSL 库
项目设置
选择目标
选择
General
选项卡
在
Frameworks, Libraries and Embedded Content
下,单击加号按钮。
从列表中找到
OpenSSL.xcframework
并点击添加。
从
Embed and sign
中选择
OpenSSL.xcframework
再次运行 xcode build
pod 'OpenSSL-Universal', :modular_headers => true, :configurations => ['Release']
pod install
无论出于什么原因
Project settings > Select Target > Build Settings > Framework Search Paths
:
但是发布版缺少了其中的一些,所以我添加了这 2 个:
"${PODS_ROOT}/OpenSSL-Universal/Frameworks"
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal"
然后调试和发布版本都对我有用。 👍🏼
那是因为模拟器运行在i386架构上,没有arm。 将 i386 之类的东西添加到支持的体系结构中。 (有关详细信息和屏幕截图,请参阅此处众多答案中的一个)
BIO_f_base64 是 OpenSSL 的一部分 (https://www.openssl.org/docs/crypto/BIO_f_base64.html)。 这在 iOS 上不可用。 您是否将 OpenSSL 的本地副本嵌入到您的应用程序中? 看起来您可能没有正确构建库。 确保您为 iOS 模拟器和 x86_64 加 i386 构建它。
您可以在终端中执行“lipo -info openssl.a”命令。 看看它的架构是什么? 应该是手臂。
这篇文章可能会解决您的构建存档问题 在此输入链接描述