La description:
Suivi du guide d'installation du SDK React Native & Expo . Après avoir terminé l'étape 5, j'ai essayé de créer mon application dans XCode. La compilation a échoué avec l'erreur suivante :
ld: library not found for -lreact-native-onesignal
clang: error: linker command failed with exit code 1 (use -v to see invocation)
J'ai essayé de suivre les étapes de liaison manuelle mais j'ai rencontré la même erreur. Vous vous demandez si quelqu'un a trouvé une solution à ce problème ?
Merci!
Environnement
yarn add react-native-onesignal
Fichier Pod
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
Étapes pour reproduire le problème :
Salut,
Essayez d'exécuter pod deintegrate && pod install
partir de votre répertoire ios
. Si cela ne fonctionne pas, essayez d'exécuter une version propre. Si aucun de ces éléments ne fonctionne, essayez de supprimer vos données dérivées.
Salut @rgomezp ,
Merci d'avoir répondu ! J'ai essayé vos suggestions mais j'ai rencontré la même erreur.
Je pense à ce stade que je dois lier la bibliothèque manuellement car la liaison automatique ne fonctionne pas. J'ai mis en place la liaison manuelle après avoir tout effacé. Et je vois l'erreur suivante dans RCTOneSignalExtensionService.m :
node_modules/react-native-onesignal/ios/RCTOneSignal/RCTOneSignalExtensionService.m:4:9: 'OneSignal.h' file not found
En vérifiant le répertoire "Frameworks" dans le RCTOneSignal.xcodeproj
il semble que la référence OneSignal.h
pointe vers node_modules/react-native-onesignal/ios/OneSignal.h
. Mais ce fichier n'existe pas. Cela pourrait-il affecter la liaison manuelle?
Une mise à jour pour ceci ? Face au même problème après la mise à jour vers Xcode 12.
Salut @hugoh59 ,
Le problème pour moi était que mes Cocoapods ne mettaient pas à jour mes chemins de recherche de bibliothèque. Je ne sais toujours pas pourquoi...
J'ai corrigé mon installation en ajoutant manuellement ${PODS_CONFIGURATION_BUILD_DIR}/react-native-onesignal
aux chemins de recherche de bibliothèque (Paramètres de construction > Chemins de recherche > Chemins de recherche de bibliothèque) dans ma cible principale.
J'espère que cela t'aides!