首页 > 解决方案 > 不变违规:RN原生模块不可用

问题描述

我使用 RN48 中的本机模块为 React-Native 开发了一个库,并且正在手动链接到 RN59 中的一个项目并且工作正常。但是当我将库的对等依赖项升级到 RN62 并自动链接(https://github.com/react-native-community/cli/blob/master/docs/autolinking.md)到 RN62 应用程序(通过 podspec和 pod install),本机模块不可用。图书馆有什么我需要更新的吗?

错误截图

播客文件:

platform: ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

def add_flipper_pods!(versions = {})
versions['Flipper'] || = '~> 0.33.1'
versions['DoubleConversion'] || = '1.1.7'
versions['Flipper-Folly'] || = '~> 2.1'
versions['Flipper-Glog'] || = '0.3.6'
versions['Flipper-PeerTalk'] || = '~> 0.0.4'
versions['Flipper-RSocket'] || = '~> 1.0'
pod 'FlipperKit', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'],: configuration => 'Debug'#
List all transitive dependencies
for FlipperKit pods# to avoid them being linked in Release builds
pod 'Flipper', versions['Flipper'],: configuration => 'Debug'
pod 'Flipper-DoubleConversion', versions['DoubleConversion'],: configuration => 'Debug'
pod 'Flipper-Folly', versions['Flipper-Folly'],: configuration => 'Debug'
pod 'Flipper-Glog', versions['Flipper-Glog'],: configuration => 'Debug'
pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'],: configuration => 'Debug'
pod 'Flipper-RSocket', versions['Flipper-RSocket'],: configuration => 'Debug'
pod 'FlipperKit/Core', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/CppBridge', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FBDefines', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FKPortForwarding', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'],: configuration => 'Debug'
pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'],: configuration => 'Debug'
end

# Post Install processing
for Flipper
def flipper_post_install(installer)
installer.pods_project.targets.each do |target |
  if target.name == 'YogaKit'
target.build_configurations.each do |config |
    config.build_settings['SWIFT_VERSION'] = '4.1'
end
end
end
end

target 'MiniProject'
do# Pods
for
MiniProject
pod 'FBLazyVector',: path => "../node_modules/react-native/Libraries/FBLazyVector"
pod 'FBReactNativeSpec',: path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
pod 'RCTRequired',: path => "../node_modules/react-native/Libraries/RCTRequired"
pod 'RCTTypeSafety',: path => "../node_modules/react-native/Libraries/TypeSafety"
pod 'React',: path => '../node_modules/react-native/'
pod 'React-Core',: path => '../node_modules/react-native/'
pod 'React-CoreModules',: path => '../node_modules/react-native/React/CoreModules'
pod 'React-Core/DevSupport',: path => '../node_modules/react-native/'
pod 'React-RCTActionSheet',: path => '../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation',: path => '../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob',: path => '../node_modules/react-native/Libraries/Blob'
pod 'React-RCTImage',: path => '../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking',: path => '../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork',: path => '../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings',: path => '../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText',: path => '../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration',: path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-Core/RCTWebSocket',: path => '../node_modules/react-native/'

pod 'React-cxxreact',: path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi',: path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor',: path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector',: path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'ReactCommon/callinvoker',: path => "../node_modules/react-native/ReactCommon"
pod 'ReactCommon/turbomodule/core',: path => "../node_modules/react-native/ReactCommon"
pod 'Yoga',: path => '../node_modules/react-native/ReactCommon/yoga',: modular_headers => true

pod 'DoubleConversion',: podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog',: podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly',: podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

pod 'react-native-video',: path => '../node_modules/react-native-video'

pod 'MyLibrary',: podspec => '../node_modules/my-library/MyLibrary.podspec'

use_native_modules!

  #Enables Flipper.##Note that
if you have use_frameworks!enabled, Flipper will not work and# you should disable these next few lines.
add_flipper_pods!
  post_install do |installer |
    flipper_post_install(installer)
  end
end

标签: javascriptreact-nativeshared-librariesnative-module

解决方案


推荐阅读