Как исправить ошибку сборки iOS / Xcode, неопределенный символ `__ C .NSURLSession.DataTaskPublisher`? - PullRequest
0 голосов
/ 19 июня 2020
• 1000 информация о том, что их вызвало, и из какой части кода они возникли, они просто печатаются после сборки и на этапе связывания, который теперь не выполняется.

Что означает эта ошибка? Что можно сделать, чтобы попытаться решить эту проблему?

Это оказался проект XCode, созданный с помощью встроенной в реакцию реакции, не уверен, что это актуально.

1 Ответ

0 голосов
/ 19 июня 2020

Проблема заключалась в том, что в нашем проекте, созданном react-native init, LIBRARY_SEARCH_PATHS было установлено на следующее:

LIBRARY_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)" "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)" "$(inherited)"

Если вы генерируете простой проект Xcode, LIBRARY_SEARCH_PATHS не устанавливается.

Также оказывается, что для добавленной нами зависимости требуется Swift 5.1, потому что он не совместим на двоичном уровне со старыми версиями Swift. Это вызвало поломку, потому что swift 5.0 был явно добавлен в проект react-native init по какой-то причине. Может быть, особая проблема c здесь в том, что соглашения об именах для скомпилированного кода изменились, и Swift 5.1 ожидает URLSession.DataTaskPublisher, а не NSURLSession.DataTaskPublisher? Кто знает ..

Простая очистка LIBRARY_SEARCH_PATHS, чтобы он был пустым, решила проблему для нас. Сборка отлично работает и без нее во всех остальных аспектах.

Связанный запрос на вытягивание: https://github.com/facebook/react-native/pull/29178

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