説明:
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を追加しました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
問題を再現する手順:
ハウディ、
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
を手動で追加して、インストールを修正しました。
お役に立てれば!