React-native-onesignal: IOSビルドの失敗:「ld:ライブラリが-lreact-native-onesignalに見つかりません」

作成日 2021年02月17日  ·  4コメント  ·  ソース: OneSignal/react-native-onesignal

説明:

React Native&ExpoSDKセットアップガイドに従いました。 手順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プロジェクトにSDKを追加しました
  • react-native-onesignal:4.0.3
  • 反応ネイティブ:0.63.3
  • XCode:12.4
  • ココアポッド:1.10.1

Podfile

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&ExpoSDKセットアップガイドに従ってください

  • XCodeでアプリをビルドする
  • Help Wanted iOS

    全てのコメント4件

    ハウディ、
    iosディレクトリからpod deintegrate && pod installを実行してみてください。 それでも問題が解決しない場合は、クリーンビルドを実行してみてください。 これらのいずれも機能しない場合は、派生データを削除してみてください。

    こんにちは@rgomezp

    返信ありがとうございます! 私はあなたの提案を試してみましたが、同じエラーが発生しました。

    自動リンクが機能していないため、この時点でライブラリを手動でリンクする必要があると考えています。 すべてをクリアした後、手動リンクを設定しました。 また、RCTOneSignalExtensionService.mに次のエラーが表示されます。

    node_modules/react-native-onesignal/ios/RCTOneSignal/RCTOneSignalExtensionService.m:4:9: 'OneSignal.h' file not found
    

    RCTOneSignal.xcodeprojの「Frameworks」ディレクトリを確認すると、 OneSignal.h参照がnode_modules/react-native-onesignal/ios/OneSignal.h指しているようです。 しかし、このファイルは存在しません。 それは手動リンクに影響を及ぼしている可能性がありますか?

    これに関する更新はありますか? Xcode 12にアップデートした後、同じ問題に直面しています。

    こんにちは@ hugoh59

    私にとっての問題は、Cocoapodsがライブラリの検索パスを更新しなかったことです。 理由はまだわかりません...

    メインターゲットのライブラリ検索パス([ビルド設定]> [検索パス]> [ライブラリ検索パス])に${PODS_CONFIGURATION_BUILD_DIR}/react-native-onesignalを手動で追加して、インストールを修正しました。

    お役に立てれば!

    このページは役に立ちましたか?
    0 / 5 - 0 評価