我已经设置了我的项目的构建设置,插入“标准架构(armv7,arm64)”和“有效架构(armv7,armv7s和arm64)”。有了这些选项,我可以为iPhone 3G,iPhone 5和iPhone 5s(32和64位架构的硬件)构建项目,但当我尝试为模拟器构建项目时,我遇到了问题。为什么?我也有这样的错误
Undefined symbols for architecture arm64: "_BIO_f_base64", referenced from:
avwztpqn1#
这是因为模拟器运行在i386架构上,没有ARM。在支持的架构中添加类似i386的东西。(请参阅SO上的众多答案中的one以获取详细信息和截图)
brc7rcf02#
BIO_f_base64是OpenSSL(https://www.openssl.org/docs/crypto/BIO_f_base64.html)的一部分。这在iOS上不可用。您是否将OpenSSL的本地副本嵌入到您的应用程序中?看起来您可能没有正确地构建库。请确保您为iOS模拟器和x86_64加上i386构建它。
lrpiutwd3#
您可以在终端中执行“lipo -info openssl. a”命令。看看这是什么建筑?应该是武装。
dgenwo3n4#
这是由于OpenSSL库
General
Frameworks, Libraries and Embedded Content
OpenSSL.xcframework
Embed and sign
1.将这一行添加到Podfile中
pod 'OpenSSL-Universal', :modular_headers => true, :configurations => ['Release']
1.在ios根目录下运行pod install1.运行构建
pod install
在Project settings > Select Target > Build Settings > Framework Search Paths中,无论出于什么原因:
Project settings > Select Target > Build Settings > Framework Search Paths
但是发布版缺少了一堆,所以我添加了这两个:
"${PODS_ROOT}/OpenSSL-Universal/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal"
然后调试和发布版本都对我有效。👍🏼
4条答案
按热度按时间avwztpqn1#
这是因为模拟器运行在i386架构上,没有ARM。在支持的架构中添加类似i386的东西。(请参阅SO上的众多答案中的one以获取详细信息和截图)
brc7rcf02#
BIO_f_base64是OpenSSL(https://www.openssl.org/docs/crypto/BIO_f_base64.html)的一部分。这在iOS上不可用。您是否将OpenSSL的本地副本嵌入到您的应用程序中?看起来您可能没有正确地构建库。请确保您为iOS模拟器和x86_64加上i386构建它。
lrpiutwd3#
您可以在终端中执行“lipo -info openssl. a”命令。看看这是什么建筑?应该是武装。
dgenwo3n4#
这是由于OpenSSL库
方案一:
General
选项卡Frameworks, Libraries and Embedded Content
下,单击加号按钮。OpenSSL.xcframework
并点击Add。OpenSSL.xcframework
中选择Embed and sign
方案二:
1.将这一行添加到Podfile中
1.在ios根目录下运行
pod install
1.运行构建
方案三:
在
Project settings > Select Target > Build Settings > Framework Search Paths
中,无论出于什么原因:但是发布版缺少了一堆,所以我添加了这两个:
然后调试和发布版本都对我有效。👍🏼