我有一个react-native应用程序,它使用OpenSSL-Universal作为依赖项。
OpenSSL是从CPP代码调用的,CPP代码通过react-native swift库桥接。在模拟器中,整个代码运行良好。但当我建立应用程序的生产,存档它在X代码和安装在一个真实的的iPhone上,我得到以下错误:
DYLD error: Library not loaded: @rpath/OpenSSL.framework/OpenSSL
字符串
我已经将OpenSSL.framework
添加到目标->构建阶段->将二进制文件与库链接,并添加到
常规->框架、库和嵌入式内容
我错过了什么?它真的让我感到困惑,它在模拟器上运行良好,但在真正的设备上却不行
2条答案
按热度按时间b1zrtrql1#
这是由于没有正确集成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
中,无论出于什么原因:的数据
但是发布版缺少了一堆,所以我添加了这两个:
型
然后调试和发布版本都对我有效。👍🏼
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构建一起崩溃