Неопределенные символы для архитектуры, реагируют на проблемы нативного кокоса. - PullRequest
0 голосов
/ 03 октября 2018

У меня есть существующее собственное реактивное приложение, и я хотел бы использовать реактивную ссылку с новыми зависимостями, которые содержат PodSpecs.Однако это создает проблему, поскольку каждый из них зависит от React.

Я добавил следующее в свой Podfile:

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

# Explicitly include Yoga
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

Это решает проблемы зависимости от PodSpecs других модулей., но вводит следующую новую ошибку:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RCTCxxBridge", referenced from:
     objc-class-ref in libReact.a(RCTBridge.o)
ld: symbol(s) not found for architecture arm64

Эта ошибка, по-видимому, связана с тем, что я не перечисляю ни одну из подспецификаций для React (в частности, «CxxBridge»).Когда я добавляю CxxBridge в Podfile, я вынужден добавить следующие зависимости, поскольку «CxxBridge» зависит от Folly:

# Third party deps podspec link
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'

У меня нет проблем с добавлением этих зависимостей, но их источник уже существует в node_modules/react-native/third-party.В идеале я хотел бы указать путь в Podfile, чтобы мне не пришлось фиксировать огромное количество шаблонного кода, но я не смог этого сделать, поскольку исходные файлы не имеют PodSpec.

Есть ли способ связать CxxBridge с проектом, не добавляя дополнительный код, который уже существует в node_modules?Как другие используют PodSpecs в сторонних зависимостях (со ссылкой «native-native»)?Буду признателен за любую помощь или примеры Podfile

react-native: 0.57.1
xcode: 9.4.1

1 Ответ

0 голосов
/ 03 октября 2018

Отправка ответа на случай, если кто-то столкнется с чем-то подобным.Оказывается, что связанные библиотеки были неправильными, поскольку некоторые из них могли ссылаться на библиотеки в проекте React из node_modules, а некоторые, возможно, ссылались на библиотеки из React Pod.

Действия для исправления:

  • Удалите ссылки на React и любой из подспецификаций, содержащихся в проекте React.
  • Удалите все ранее созданные файлы Pod
  • добавьте сценарий после установки в Podfile
  • run pod install
  • связать все необходимые зависимости React

Скрипт после установки:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == "React"
            target.remove_from_project
        end
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...