Описание:
Следовал руководству по установке React Native & Expo SDK . После выполнения шага 5 я попытался создать свое приложение в XCode. Сборка завершилась неудачно из-за следующей ошибки:
ld: library not found for -lreact-native-onesignal
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Я попытался выполнить действия по связыванию вручную, но обнаружил ту же ошибку. Интересно, кто-нибудь придумал решение этой проблемы?
Спасибо!
Окружающая обстановка
yarn add react-native-onesignal
Подфайл
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 3.0', '< 4.0'
end
target 'WellnessReactNative' do
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
pod 'Stripe', '~> 19.0.1'
pod 'tipsi-stripe', :path => '../node_modules/tipsi-stripe'
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
# use_flipper!
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-config'
phase = target.project.new(Xcodeproj::Project::Object::PBXShellScriptBuildPhase)
phase.shell_script = "cd ../../"\
" && RNC_ROOT=./node_modules/react-native-config/"\
" && export SYMROOT=$RNC_ROOT/ios/ReactNativeConfig"\
" && ruby $RNC_ROOT/ios/ReactNativeConfig/BuildDotenvConfig.ruby"
target.build_phases << phase
target.build_phases.move(phase,0)
end
end
# flipper_post_install(installer)
end
end
Шаги по воспроизведению проблемы:
Следуйте руководству по установке React Native и Expo SDK.
Привет,
Попробуйте запустить pod deintegrate && pod install
из каталога ios
. Если это не сработает, попробуйте запустить чистую сборку. Если ничего из этого не работает, попробуйте удалить производные данные.
Привет @rgomezp!
Спасибо за ответ! Я попробовал ваши предложения, но обнаружил ту же ошибку.
Я думаю, что на данный момент мне нужно связать библиотеку вручную, потому что автоматическое связывание не работает. Я установил ручную привязку после того, как все очистил. И я вижу следующую ошибку в RCTOneSignalExtensionService.m:
node_modules/react-native-onesignal/ios/RCTOneSignal/RCTOneSignalExtensionService.m:4:9: 'OneSignal.h' file not found
Проверяя каталог «Frameworks» в RCTOneSignal.xcodeproj
кажется, что ссылка OneSignal.h
указывает на node_modules/react-native-onesignal/ios/OneSignal.h
. Но этого файла не существует. Может ли это повлиять на ручное связывание?
Есть новости по этому поводу? Столкнувшись с той же проблемой после обновления до Xcode 12.
Привет @ hugoh59!
Проблема для меня заключалась в том, что мои Cocoapods не обновляли пути поиска в моей библиотеке. Все еще не уверен, почему ...
Я исправил свою установку, вручную добавив ${PODS_CONFIGURATION_BUILD_DIR}/react-native-onesignal
в пути поиска библиотеки (Настройки сборки> Пути поиска> Пути поиска библиотеки) в моей основной цели.
Надеюсь это поможет!