React Native集成Clay SDK遇VirgilCrypto加载失败问题求助
React Native集成Clay SDK启动报错:dyld Library not loaded @rpath/VirgilCrypto.framework/VirgilCrypto
问题背景
在React Native 0.71.6 + React 18.2.0环境下集成Clay SDK,已完成Pod配置并成功构建,但App启动时触发以下错误:
dyld[49561]: Library not loaded: @rpath/VirgilCrypto.framework/VirgilCrypto
VirgilCrypto是Clay SDK的依赖库,已尝试手动添加该Pod、取消架构排除、清理Derived Data并重新集成Pods等操作,问题仍未解决。
可行解决方案步骤
1. 锁定VirgilCrypto依赖版本
在Podfile中明确指定与Clay SDK兼容的VirgilCrypto版本(建议使用5.11.0版本,适配多数Clay SDK版本):
pod 'VirgilCrypto', '~> 5.11.0' pod 'ClaySDK', :git => 'https://gitlab.com/claysolutions/public/clay-sdk.git'
执行命令重新安装Pods:
cd ios pod deintegrate pod install --repo-update
2. 配置Xcode框架搜索路径
打开Xcode项目,进入App目标的Build Settings:
- 找到Framework Search Paths,添加以下路径并设置为Recursive:
$(PROJECT_DIR)/Pods/VirgilCrypto $(PROJECT_DIR)/Pods/ClaySDK
3. 确保框架正确嵌入并签名
在Xcode的General标签页,进入Frameworks, Libraries, and Embedded Content:
- 检查VirgilCrypto.framework和ClaySDK.framework是否存在,若没有则点击
+按钮,从Pods/Products目录中添加 - 将两个框架的嵌入方式设置为Embed & Sign
4. 修复Runpath搜索路径
在Build Settings中找到Runpath Search Paths,确保包含以下路径:
@executable_path/Frameworks @loader_path/Frameworks
这两个路径是动态库加载的核心路径,缺失会导致找不到依赖框架。
5. 彻底清理并重新构建
执行以下命令清理缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData cd ios pod clean pod install
回到Xcode,选择Product > Clean Build Folder,再重新构建运行App。
6. 调整架构兼容性设置
进入Build Settings > Architectures:
- 设置Architectures为
$(ARCHS_STANDARD) - 若在模拟器运行,取消Exclude Architectures中的
arm64选项;若为真机则保留默认设置
内容的提问来源于stack exchange,提问作者Donovan Charpin
相关产品推荐
相关产品推荐

