xcode DYLD错误:库未加载:@rpath/OpenSSL.framework/OpenSSL

mv1qrgav  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(183)

我有一个react-native应用程序,它使用OpenSSL-Universal作为依赖项。
OpenSSL是从CPP代码调用的,CPP代码通过react-native swift库桥接。在模拟器中,整个代码运行良好。但当我建立应用程序的生产,存档它在X代码和安装在一个真实的的iPhone上,我得到以下错误:

DYLD error: Library not loaded: @rpath/OpenSSL.framework/OpenSSL

字符串
我已经将OpenSSL.framework添加到目标->构建阶段->将二进制文件与库链接,并添加到
常规->框架、库和嵌入式内容
我错过了什么?它真的让我感到困惑,它在模拟器上运行良好,但在真正的设备上却不行

b1zrtrql

b1zrtrql1#

这是由于没有正确集成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"


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

kiayqfof

kiayqfof2#

我找到了一个解决方案,感觉像是一个变通方案:
1.克隆并构建openssl for iPhone存储库
1.将arm 64(iPhone)构建复制到项目中(lib和include文件夹)
1.通过XCode中的“Other Linker Flags”注册库,因此-I[PATH TO“include”FOLDER]和-L[PATH TO“lib”FOLDER]
虽然这是可行的,但如果能找到一个开箱即用的选项,而不需要任何额外的配置,那就太好了。现在,如果我想在模拟器上运行,我必须恢复这些更改,因为模拟器当然会与链接的iPhoneOpenSSL构建一起崩溃

相关问题