Интеграция собственного приложения в проект iOS - PullRequest
0 голосов
/ 24 апреля 2020

Глядя на эти документы, помня, что я использую 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. оценили. Спасибо за чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...