React-native-onesignal: Échec de la construction IOS avec : "ld : bibliothèque introuvable pour -lreact-native-onesignal"

Créé le 17 févr. 2021  ·  4Commentaires  ·  Source: OneSignal/react-native-onesignal

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

  • Ajout du SDK au projet avec yarn add react-native-onesignal
  • réagir-natif-un-signal: 4.0.3
  • natif réactif : 0.63.3
  • XCode : 12.4
  • Cocopodes : 1.10.1

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 :

  • Suivez le guide de configuration du SDK React Native & Expo

  • Construire l'application dans XCode
  • Help Wanted iOS

    Tous les 4 commentaires

    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!

    Cette page vous a été utile?
    0 / 5 - 0 notes