React Native iOS编译报错:无法加载RCTVibration.framework的Info.plist
解决方案
方案1:扩展静态库适配范围
问题根源是你开启了use_frameworks!后,仅对权限、RNScreens类pod设置了静态库编译,RCTVibration等React原生核心pod默认按动态框架编译,缺失对应的Info.plist配置。
修改Podfile中的pre_install代码块,把React相关的所有pod也加入静态库编译判定逻辑:
pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {} installer.pod_targets.each do |pod| # 新增React相关前缀的pod判定规则 is_react_pod = pod.name.start_with?('RCT', 'React', 'FBReact') if pod.name.eql?('RNPermissions') || pod.name.start_with?('Permission-') || pod.name.eql?('RNScreens') || is_react_pod def pod.build_type; Pod::BuildType.static_library # >= 1.9 end end end end
修改完成后执行以下操作再编译:
- 执行
pod deintegrate && pod install --repo-update - 按
Command+Shift+K清理Xcode构建文件夹后重新编译
方案2:全局指定静态链接框架
如果你没有必须用动态框架的特殊依赖,可以直接替换原来的use_frameworks!为全局静态链接配置:
use_frameworks! :linkage => :static
修改后同样执行pod更新、清理构建缓存的操作即可。
补充校验
如果修改后仍然报错,可以手动打开Xcode的Pods项目,找到RCTVibration对应的target,检查Build Settings中的Info.plist File配置项,为空的话手动填入$(inherited)即可。
内容的提问来源于stack exchange,提问作者luck99
相关产品推荐
相关产品推荐

