Глядя на эти документы, помня, что я использую RN 62.2 . Добавляем плагин реагирования (приложение) в iOS приложение , есть раздел Ultimately, your Podfile should look something similar to this
, который показывает, что такое подфайл нашего ios приложение должно содержать. Он дает локальные пути к зависимостям, необходимым для запуска React-Native. Тем не менее, моя команда работает над проектом, который распространяет реактивное приложение как плагин, и мы должны разместить спецификации на репо. В интегрирующем приложении мы можем добавить репо в качестве источника вверху. Наше интегрированное приложение имеет свой собственный podspe c, который говорит, что ему нужно, и использует репозиторий для установки всех этих модулей. Вот пример dev-репо для спецификаций, которые я ставлю sh до спес-репо . С react-native@58.*
это выглядело так
# React is split into a set of subspecs, these are the essentials
s.dependency 'React/Core', react_native_version
s.dependency 'React/CxxBridge', react_native_version
s.dependency 'React/RCTActionSheet', react_native_version
s.dependency 'React/RCTAnimation', react_native_version
s.dependency 'React/RCTImage', react_native_version
s.dependency 'React/RCTLinkingIOS', react_native_version
s.dependency 'React/RCTNetwork', react_native_version
s.dependency 'React/RCTText', react_native_version
# React's Dependencies
s.dependency 'yoga', "#{react_native_version}.React"
react_podspecs = [
'../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec',
'../node_modules/react-native/third-party-podspecs/Folly.podspec',
'../node_modules/react-native/third-party-podspecs/glog.podspec'
]
# Native Dependencies
dep_podspecs = [
# CodePush
'../node_modules/react-native-code-push/CodePush.podspec',
# ReactNativeI18N
'../node_modules/react-native-i18n/RNI18N.podspec',
# ReactNativeAwesomeCardIO
'../node_modules/react-native-awesome-card-io/RNAwesomeCardIO.podspec',
# React Native SVG
'../node_modules/react-native-svg/RNSVG.podspec',
# React Native Haptic Feedback
'../node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec',
# @Paciolan/react-native-payments
'../node_modules/@paciolan/react-native-payments/lib/ios/ReactNativePayments.podspec',
# React Native Webview
'../node_modules/react-native-webview/react-native-webview.podspec',
# React Native Device Info
'../node_modules/react-native-device-info/RNDeviceInfo.podspec',
# React Native AsyncStorage
'../node_modules/@react-native-community/async-storage/RNCAsyncStorage.podspec'
]
# Ties the exact versions so host apps don't need to guess the version
# or have a potential mismatch
podspecs = react_podspecs + dep_podspecs
podspecs.each do |podspec_path|
spec = Pod::Specification.from_file podspec_path
s.dependency spec.name, "#{spec.version}"
end
Но теперь Podfile для автономного приложения сильно изменился. Нужно ли для подробностей брать каждый файл podspe c, указанный в разделе «В конечном итоге, ваш Podfile должен выглядеть примерно так» в первой ссылке и добавить его в podspe c моего плагина? Вот много Pods.
Вот то, что у меня есть в podspe c моего плагина. В основном я пытаюсь имитировать c зависимостей, необходимых автономному приложению.
s.dependency "React-Core", react_native_version
s.dependency "React-Core/DevSupport", react_native_version
s.dependency "React-Core/RCTWebSocket", react_native_version
s.dependency "React-RCTActionSheet", react_native_version
s.dependency "React-RCTAnimation", react_native_version
s.dependency "React-RCTBlob", react_native_version
s.dependency "React-RCTImage", react_native_version
s.dependency "React-RCTLinking", react_native_version
s.dependency "React-RCTNetwork", react_native_version
s.dependency "React-RCTSettings", react_native_version
s.dependency "React-RCTText", react_native_version
s.dependency "React-RCTVibration", react_native_version
# React's Dependencies
react_podspecs = [
'../node_modules/react-native/Libraries/FBLazyVector/FBLazyVector.podspec',
'../node_modules/react-native/Libraries/FBReactNativeSpec/FBReactNativeSpec.podspec',
'../node_modules/react-native/Libraries/RCTRequired/RCTRequired.podspec',
'../node_modules/react-native/Libraries/TypeSafety/RCTTypeSafety.podspec',
'../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec',
'../node_modules/react-native/third-party-podspecs/Folly.podspec',
'../node_modules/react-native/third-party-podspecs/glog.podspec',
'../node_modules/react-native/ReactCommon/yoga/Yoga.podspec',
'../node_modules/react-native/React-Core.podspec',
"../node_modules/react-native/ReactCommon/ReactCommon.podspec",
# '../node_modules/react-native/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec',
# '../node_modules/react-native/Libraries/NativeAnimation/React-RCTAnimation.podspec',
# '../node_modules/react-native/Libraries/Blob/React-RCTBlob.podspec',
# '../node_modules/react-native/Libraries/Image/React-RCTImage.podspec',
# '../node_modules/react-native/Libraries/LinkingIOS/React-RCTLinking.podspec',
# '../node_modules/react-native/Libraries/Network/React-RCTNetwork.podspec',
# '../node_modules/react-native/Libraries/Settings/React-RCTSettings.podspec',
# '../node_modules/react-native/Libraries/Text/React-RCTText.podspec',
# '../node_modules/react-native/Libraries/Vibration/React-RCTVibration.podspec',
'../node_modules/react-native/ReactCommon/cxxreact/React-cxxreact.podspec',
'../node_modules/react-native/ReactCommon/jsi/React-jsi.podspec',
'../node_modules/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec',
'../node_modules/react-native/ReactCommon/jsinspector/React-jsinspector.podspec',
]
# Native Dependencies
dep_podspecs = [
# CodePush
'../node_modules/react-native-code-push/CodePush.podspec',
# ReactNativeI18N
'../node_modules/react-native-i18n/RNI18N.podspec',
# ReactNativeAwesomeCardIO
'../node_modules/react-native-awesome-card-io/RNAwesomeCardIO.podspec',
# React Native SVG
'../node_modules/react-native-svg/RNSVG.podspec',
# React Native Haptic Feedback
'../node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec',
# @Paciolan/react-native-payments
'../node_modules/@paciolan/react-native-payments/lib/ios/ReactNativePayments.podspec',
# React Native Webview
'../node_modules/react-native-webview/react-native-webview.podspec',
# React Native Device Info
'../node_modules/react-native-device-info/RNDeviceInfo.podspec',
# React Native AsyncStorage
'../node_modules/@react-native-community/async-storage/RNCAsyncStorage.podspec'
]
# Ties the exact versions so host apps don't need to guess the version
# or have a potential mismatch
podspecs = react_podspecs + dep_podspecs
podspecs.each do |podspec_path|
spec = Pod::Specification.from_file podspec_path
s.dependency spec.name, "#{spec.version}"
end
Однако все ссылки s.dependency не загружают исходный код при установке модуля, они просто добавляют папку SupportFiles в модуле. Должны ли они быть перечислены явно, как все остальные? Одна из наших задач состояла в том, чтобы распространить наш плагин реагировать на родную систему в качестве фреймворка, и мы не могли понять, как объединить в один фреймворк. Теперь будет еще больше рамок для каждой капсулы. Любые мысли, комментарии и т. Д. c. оценили. Спасибо за чтение.