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 :
"${PODS_ROOT}/Headers/Public/react-native-onesignal"
"${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"
Environnement
Étapes pour reproduire le problème :
ld: library not found for -lPods-OneSignalNotificationServiceExtension
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/
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 :
archive réussir
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 deNotificationService.m
par le dernier code du DOC. J'utilisais toujoursRCTOneSignalExtensionService.h
. Lors de la mise à jour, l'erreur a disparu.
Cela ne fonctionne pas pour moi
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
OneSignalNotificationExtension (ou tout ce que vous avez nommé à l'extension de notification)
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.
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
OneSignalNotificationExtension (ou tout ce que vous avez nommé à l'extension de notification)