React-native-onesignal: React-native 0.60 -lPods-OneSignalNotificationExtension introuvable

Créé le 2 sept. 2019  ·  20Commentaires  ·  Source: OneSignal/react-native-onesignal

La description:

J'ai mis à niveau vers React-native 0.60 et j'ai suivi les étapes d'installation de onesignal comme indiqué ici : https://documentation.onesignal.com/docs/react-native-sdk-setup

Lorsque je lance l'application xcode, j'obtiens une erreur relative à OnesignalNotificationExtension.
Erreur : ld: library not found for -lPods-OneSignalNotificationServiceExtension

La cible OneSignalNotificationServiceExtension a les paramètres suivants :

  • Chemins de recherche d'en-tête : "${PODS_ROOT}/Headers/Public/react-native-onesignal"
  • Chemins de recherche du framework : "${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"

Environnement

  • React-native-onesignal version : 3.3.2
  • natif réactif : 0.60,5

Étapes pour reproduire le problème :

  1. Suivi de la configuration RN : https://documentation.onesignal.com/docs/react-native-sdk-setup
  2. Exécuter le projet xcode
  3. Attendez-vous à voir : ld: library not found for -lPods-OneSignalNotificationServiceExtension
Help Wanted

Commentaire le plus utile

J'ai eu le même problème lors de la mise à niveau de la version RN vers 0.63.2 et en essayant d'archiver l'application et j'ai été réparé
par ça.

Il s'agissait d'une incompatibilité de version entre la version que j'ai spécifiée dans Podfile et la version cible qui
J'ai mis pour l'extension OneSignal. Dès que j'ai modifié ces deux valeurs pour qu'elles correspondent,
le problème avait disparu.

Fichier Pod
image

OneSignalNotificationExtension (ou tout ce que vous avez nommé à l'extension de notification)
image

Tous les 20 commentaires

Salut,
Nous avons publié une nouvelle version hier. Pouvez-vous s'il vous plaît mettre à jour et réessayer? Essayez également d'effacer votre dossier DerivedData situé dans /Users//Bibliothèque/Développeur/Xcode/DerivedData

La dernière chose à essayer est la mise à jour du pod à partir de votre répertoire ios

@jamesone as -tu résolu ce problème ? La réponse de @rgomezp n'aide pas.

@rgomezp aucune des suggestions ci-dessus n'a fonctionné, en utilisant la dernière version 3.4.1. Pourrait faire avec une certaine attention sur cette question. Forcé de supprimer OneSignalNotificationExtension jusqu'à résolution, heureux d'essayer d'autres suggestions/versions.

+1 suivi !

Salut,
Veuillez essayer d'exécuter pod deintegrate && pod install partir du répertoire ios de votre projet

Les suggestions ci-dessus ne fonctionnent pas. Déjà mis à jour vers la dernière version v3.4.1, nettoyez les données dérivées, nettoyez les pods et réinstallez, mais obtenez toujours une erreur :

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_RCTOneSignalExtensionService", referenced from:
      objc-class-ref in NotificationService.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Podfile.lock

  - react-native-onesignal (3.4.1):
    - OneSignal (= 2.11.0)
    - React (< 1.0.0, >= 0.13.0)

METTRE À JOUR:
Ma faute. Il s'avère que je dois remplacer le contenu de NotificationService.m par le dernier code du DOC. J'utilisais toujours RCTOneSignalExtensionService.h . Lors de la mise à jour, l'erreur a disparu.

Ravi de l'entendre! Veuillez commenter si vous rencontrez toujours des difficultés avec ce problème et que je peux rouvrir

Son problème est toujours dans RN:0.60.10 avec pod.
comment utiliser le pod avec ?

Salut,
J'ai le même problème ld: library not found for -lPods-OneSignalNotificationServiceExtension
J'utilise react-native 0.61.4 et onesignal 3.6.1

avec désintégration et nettoyage du pod et DerivedData

J'ai trouvé, mais je ne sais pas pourquoi, lorsque je n'ai pas de configuration "Release" dans ma liste de configurations, l'"archive" échoue avec la bibliothèque introuvable.

échec de l'archivage :
Capture d’écran 2020-01-08 à 17 07 06

archive réussir
Capture d’écran 2020-01-08 à 17 16 44

Pour information, Dev, Preprod & Prod sont basés sur Release. Il fonctionnait sans "Release" sur mes anciens projets avec onesignal

Mettre à jour @rgomezp :

  • Créer un nouveau projet react-native
  • Ajouter un signal
  • construire et archiver > c'est ok
  • Renommez la configuration "Release" en un autre nom (comme Dev)
  • build & archive > ld : bibliothèque introuvable pour -lPods-OneSignalNotificationServiceExtension

Les suggestions ci-dessus ne fonctionnent pas. Déjà mis à jour vers la dernière version v3.4.1, nettoyez les données dérivées, nettoyez les pods et réinstallez, mais obtenez toujours une erreur :

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_RCTOneSignalExtensionService", referenced from:
      objc-class-ref in NotificationService.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Podfile.lock

  - react-native-onesignal (3.4.1):
    - OneSignal (= 2.11.0)
    - React (< 1.0.0, >= 0.13.0)

METTRE À JOUR:
Ma faute. Il s'avère que je dois remplacer le contenu de NotificationService.m par le dernier code du DOC. J'utilisais toujours RCTOneSignalExtensionService.h . Lors de la mise à jour, l'erreur a disparu.

Cela ne fonctionne pas pour moi

  • un signal (3.6.2)
  • natif réactif (0.60.0)

Avoir le même problème en ce moment. -lPods-OneSignalNotificationServiceExtension échoué lorsque j'ai ajouté de nouveaux schémas. Des mises à jour là-dessus ?

même

J'ai eu le même problème après la mise à niveau de react-native
Cela a résolu mon problème https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289

J'ai eu le même problème lors de la mise à niveau de la version RN vers 0.63.2 et en essayant d'archiver l'application et j'ai été réparé
par ça.

Il s'agissait d'une incompatibilité de version entre la version que j'ai spécifiée dans Podfile et la version cible qui
J'ai mis pour l'extension OneSignal. Dès que j'ai modifié ces deux valeurs pour qu'elles correspondent,
le problème avait disparu.

Fichier Pod
image

OneSignalNotificationExtension (ou tout ce que vous avez nommé à l'extension de notification)
image

J'ai le même problème mais aucun des conseils ci-dessus n'a résolu mon problème.

J'ai 2 projets assez similaires : l'un qui marche et l'autre qui ne marche pas.

Dans xcode, les étapes de construction et d'archivage sont correctes, mais sur mon CI ou sur mon ordinateur, la commande ci-dessous réussit sur un projet mais échoue sur l'autre

xcodebuild "-workspace" "/Users/vagrant/git/packages/mobile-pro/ios/WecasaPro.xcworkspace" "-scheme" "WecasaPro" "-configuration" "Staging" "COMPILER_INDEX_STORE_ENABLE=NO" "archive" "-archivePath" "/var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/__archive__581470914/WecasaPro.xcarchive" "-destination" "generic/platform=iOS" | xcpretty

Si je regarde les logs de la commande. Pour le projet qui fonctionne, j'ai

▸ Building Pods/Pods-OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building WecasaPro/OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Processing Info.plist
▸ Running script '[CP] Check Pods Manifest.lock'
▸ Compiling NotificationService.m
▸ Linking OneSignalNotificationServiceExtension
▸ Generating 'OneSignalNotificationServiceExtension.appex.dSYM'
▸ Touching OneSignalNotificationServiceExtension.appex
▸ Signing /Users/vagrant/Library/Developer/Xcode/DerivedData/WecasaPro-fuytaarwfdjqjucxpzvnzgjrhcvd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex
▸ Touching OneSignalNotificationServiceExtension.appex.dSYM

Pour le projet qui ne marche pas j'ai

▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Running script 'Copy generated compatibility header'
▸ Building library libPods-OneSignalNotificationServiceExtension.a

J'ai vérifié plusieurs fois la configuration des deux projets et ils semblent être similaires.

Est-ce que quelqu'un a une idée de ce qui peut causer cela ?

Après avoir comparé mes journaux pour les deux projets, j'ai découvert que celui qui réussit utilise le système de génération hérité mais que l'autre utilise le nouveau système de génération.

J'ai basculé le projet sur le système de build hérité mais le problème est toujours là.

Sur le projet qui réussit j'ai

CompileC /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/arm64/Pods-OneSignalNotificationServiceExtension-dummy.o Target\ Support\ Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension-dummy.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

et alors

Libtool /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/armv7/libPods-OneSignalNotificationServiceExtension.a normal armv7

mais sur l'autre projet après la compilation j'ai une commande Ld

Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/OneSignalNotificationServiceExtension normal armv7

Je ne sais pas quelle est la différence entre ces commandes et je ne sais pas pourquoi la séquence n'est pas la même

Dernier commentaire sur mon problème. J'ai supprimé la cible OneSignalNotificationServiceExtension, les fichiers objective-c associés et la référence à OneSignal dans mon podfile. La commande xcodebuild réussit.

J'ai rajouté un signal en effectuant toutes les étapes décrites dans la doc https://documentation.onesignal.com/docs/react-native-sdk-setup

Après cela, ma commande xcodebuild échoue toujours

Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary/OneSignalNotificationServiceExtension` normal armv7

le dossier /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary est vide, il ne contient pas OneSignalNotificationServiceExtension fichier

J'ai le même problème

Donc...

C'était vraiment difficile à retracer, j'ai dû recréer un nouveau projet RN 064.1 pour vraiment trouver la solution à mes problèmes. J'utilise des schémas dans mes projets et j'appliquais des correctifs pour qu'il se construise correctement sur M1.

Étant donné que le projet a été mis à jour pour utiliser le nouveau OneSignalXCFramework au lieu de l'ancien cadre fat, j'ai décidé de mettre à jour le NSE pour l'utiliser également dans Podfile.

Était confronté à une tonne de problèmes où le module n'a pas été trouvé, y compris celui-ci lors de la construction d'une version de version ou de la construction du simulateur ou d'un appareil

Il s'avère que la partie qui bloquait mon code et qui faisait que tout le problème ne fonctionnait pas est la section suivante du fichier Podfile

installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[iphonesimulator=*]"] = "arm64"
end

En fin de compte, je n'ai dû l'appliquer qu'aux versions de débogage et non aux versions de publication. Je ne suis pas un développeur iOS, donc je ne connais pas les subtilités sur la façon dont l'exclusion d'un simulateur d'une architecture empêcherait la détection des pods pour le NSE, mais c'était mon problème.

La suppression du bloc entier était ce qui l'a corrigé pour moi. On dirait que ce n'est plus nécessaire pour mon projet au moins.

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