Ответ 1
[Обновление 20190926: Если вы реагируете на нативную версию 0. 60+, которая является нативной для Cocoapods, такого рода вещи никогда не должны происходить, и обходной путь, который я разместил ниже, не должен быть необходимым]
Если я могу сделать некоторые предположения, вы используете реагирующую нативу (на которую ссылается libyoga), вы используете новую систему сборки из XCode 10+ (не унаследованную систему) и у вас есть встроенные CocoaPods (вероятно, использующие Firebase или аналогичные).
Пожалуйста, исправьте меня, если я ошибаюсь, но это мои настройки и то, что вызвало эту ошибку для меня.
У вас есть три варианта в порядке возрастания усилий и правильности.
Во-первых, вы можете двигаться в этот момент без особых усилий, просто игнорируя/скрывая проблему, переключая свою сборку на Legacy Build System [1]:
1. In Xcode, go to File->Project/Workspace settings.
2. Change the build system to Legacy Build system.
Во-вторых, вы можете приступить к работе с новой системой сборки XCode без особых усилий, если добавите обходной фрагмент [2] в свой Podfile, пока проблема не будет устранена в восходящем потоке в реагирующем или Cocoapods. Я делаю это сейчас, и мой проект успешно архивирует:
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
(тогда, как указывает @jules-randolph, вы должны запустить pod install
в папке iOS, чтобы начать использовать сделанные вами подфайлы)
В-третьих, вы можете выполнить всю работу, чтобы полностью преобразовать ваш проект в Pods, удалив любые оставшиеся ссылки на реагирующие нативные фреймворки в вашем проекте (в отличие от рабочего пространства, настроенного Pods). [3]. Я еще этого не сделал, но это правильно, и проблема с добычей закрыта.
Ссылки, и обратите внимание на родительский вопрос в целом полезно
[1] https://github.com/facebook/react-native/issues/20492#issuecomment-422958184
[2] https://github.com/facebook/react-native/issues/20492#issuecomment-409599358
[3] https://github.com/facebook/react-native/issues/20492#issuecomment-464343895