Статические и динамические модули не работают одновременно в Podfile React NativeIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Статические и динамические модули не работают одновременно в Podfile React Native

Сообщение Anonymous »


Изображение ошибки XCode В настоящее время я работаю над проектом React Native, который предполагает использование нескольких модулей Pod. Однако я столкнулся с проблемой при попытке запустить проект в Xcode.

Проблема заключается в том, что некоторые из моих модулей связаны статически, например «glog», а другие — динамически, например «Shuftipro». Я пробовал различные подходы к использованию обоих типов ссылок, но пока не нашел подходящего решения.

В представленном ниже подфайле я настроил статическую связь, в результате чего все модули будут связаны статически. Однако я намерен связать «Socket.IO» динамически, поскольку настройка динамической связи по отдельности позволяет ему работать, в то время как статическая связь вызывает проблемы с другими модулями.

Мой подфайл.

require_relative '../node_modules/react-native/scripts/react_native_pods' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' платформа: ios, min_ios_version_supported подготовить_react_native_project! # Если вы используете `react-native-flipper`, ваша сборка iOS завершится неудачно, если установлено `NO_FLIPPER=1`. # потому что `react-native-flipper` зависит от (FlipperKit,...), который будет исключен # # Чтобы это исправить, вы также можете исключить `react-native-flipper`, используя `react-native.config.js` # ```js # модуль.экспорт = { # зависимости: { # ...(process.env.NO_FLIPPER ? { 'react-native-flipper': {платформы: { ios: null } } } : {}), # ``` флиппер_конфигурация = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled связь = ENV['USE_FRAMEWORKS'] связь = 'статический' если связь != ноль Pod::UI.puts "Настройка модуля с помощью #{linkage}ally связанных фреймворков".green используйте_frameworks! :linkage => linkage.to_sym конец # use_frameworks! # связь = 'динамический' # Pod::UI.puts "Вот USE_FRAMEWORKS #{linkage}связанные фреймворки".red # если связь != ноль # Pod::UI.puts "Настройка модуля с помощью #{linkage}союзников связанных фреймворков".green # use_frameworks! :linkage => linkage.to_sym # конец цель 'testshufti' сделать конфигурация = use_native_modules! # Флаги меняются в зависимости от значений env. флаги = get_default_flags() use_react_native!( :path => config[:reactNativePath], # Гермес теперь включен по умолчанию. Отключите, установив для этого флага значение false. # Будущие версии React Native могут полагаться на get_default_flags(), но # здесь мы явно указываем это, чтобы облегчить процесс обновления React Native. :hermes_enabled => флаги[:hermes_enabled], :fabric_enabled => флаги[:fabric_enabled], # Включает Флиппер. # # Обратите внимание: если у вас есть use_frameworks! включен, Flipper не будет работать и # вам следует отключить следующую строку. # :flipper_configuration => flipper_config, # Абсолютный путь к корню вашего приложения. :app_path => "#{Pod::Config.instance.installation_root}/.." ) цель «testshuftiTests» сделать наследовать! :полный # Подов для тестирования конец post_install сделать |установщик| реакции_native_post_install( установщик, # Установите для `mac_catalyst_enabled` значение `true`, чтобы применить исправления # необходимо для сборок Mac Catalyst :mac_catalyst_enabled => ложь ) __apply_Xcode_12_5_M1_post_install_workaround (установщик) installer.aggregate_targets.each do |target| target.xcconfigs.each do |вариант, xcconfig| xcconfig_path = target.client_root + target.xcconfig_relative_path(вариант) IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) конец конец installer.pods_project.targets.each do |target| target.build_configurations.each do |config| если config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference xcconfig_path = config.base_configuration_reference.real_path IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) конец if ['Socket.IO-Client-Swift', 'Starscream'].include? цель.имя config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'ДА' config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' конец конец конец конец конец Я хочу использовать динамические и статические модули в одном подфайле
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Статические и динамические модули не работают одновременно в Podfile React Native
    Гость » » в форуме IOS
    0 Ответы
    48 Просмотры
    Последнее сообщение Гость
  • Статические и динамические модули не работают одновременно в Podfile React Native
    Гость » » в форуме IOS
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость
  • Неверный файл Podfile: неинициализированная константа Pod::Podfile::FlipperConfiguration
    Anonymous » » в форуме IOS
    0 Ответы
    83 Просмотры
    Последнее сообщение Anonymous
  • Неверный файл Podfile: неинициализированная константа Pod::Podfile::FlipperConfiguration
    Anonymous » » в форуме IOS
    0 Ответы
    108 Просмотры
    Последнее сообщение Anonymous
  • Как одновременно связать статические и динамические библиотеки?
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»