React-native-onesignal: Ошибка сборки iOS: "ld: библиотека не найдена для -lreact-native-onesignal"

Созданный на 17 февр. 2021  ·  4Комментарии  ·  Источник: OneSignal/react-native-onesignal

Описание:

Следовал руководству по установке 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)

Я попытался выполнить действия по связыванию вручную, но обнаружил ту же ошибку. Интересно, кто-нибудь придумал решение этой проблемы?

Спасибо!

Окружающая обстановка

  • Добавлен SDK в проект с yarn add react-native-onesignal
  • реагировать-родной-одинсигнал: 4.0.3
  • реагировать-родной: 0.63.3
  • XCode: 12.4
  • Коко-моллюски: 1.10.1

Подфайл

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.

  • Создайте приложение в XCode
  • Help Wanted iOS

    Все 4 Комментарий

    Привет,
    Попробуйте запустить 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 в пути поиска библиотеки (Настройки сборки> Пути поиска> Пути поиска библиотеки) в моей основной цели.

    Надеюсь это поможет!

    Была ли эта страница полезной?
    0 / 5 - 0 рейтинги