Beschreibung:
Ich habe auf React-native 0.60 aktualisiert und die Installationsschritte von onesignal wie hier gezeigt befolgt: https://documentation.onesignal.com/docs/react-native-sdk-setup
Wenn ich die xcode-Anwendung ausführen muss, erhalte ich einen Fehler in Bezug auf die OnesignalNotificationExtension.
Fehler : ld: library not found for -lPods-OneSignalNotificationServiceExtension
Das OneSignalNotificationServiceExtension- Ziel hat die folgenden Einstellungen:
"${PODS_ROOT}/Headers/Public/react-native-onesignal"
"${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"
Umgebung
Schritte zum Reproduzieren des Problems:
ld: library not found for -lPods-OneSignalNotificationServiceExtension
Hallo,
Wir haben gestern eine neue Version veröffentlicht. Können Sie bitte aktualisieren und erneut versuchen? Versuchen Sie auch, Ihren DerivedData-Ordner zu löschen, der sich unter /Benutzer/ befindet.
Das letzte, was Sie versuchen sollten, ist ein Pod-Update aus Ihrem ios
Verzeichnis
@jamesone hast du dieses Problem gelöst? Die Antwort von @rgomezp hilft nicht.
@rgomezp keiner der obigen Vorschläge hat mit der neuesten Version 3.4.1 funktioniert. Könnte etwas Aufmerksamkeit zu diesem Thema gebrauchen. Erzwungen, OneSignalNotificationExtension zu entfernen, bis das Problem behoben ist, gerne andere Vorschläge/Versionen ausprobieren.
+1 folgen !
Hallo,
Bitte versuchen Sie, pod deintegrate && pod install
aus dem ios-Verzeichnis in Ihrem Projekt auszuführen
Die obigen Vorschläge funktionieren nicht. Bereits auf die neueste Version v3.4.1 aktualisiert, abgeleitete Daten bereinigen, Pods bereinigen und neu installieren, aber immer noch Fehler:
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)
AKTUALISIEREN:
Mein Fehler. Es stellte sich heraus, dass ich den Inhalt von NotificationService.m
durch den neuesten Code in DOC ersetzen muss. Ich habe immer noch RCTOneSignalExtensionService.h
. Beim Update ist der Fehler weg.
Gut zu hören! Bitte kommentieren Sie, wenn Sie immer noch mit diesem Problem kämpfen und ich wieder öffnen kann
Es ist immer noch ein Problem in RN:0.60.10 mit Pod.
wie benutzt man pod damit?
Hallo,
Ich habe das gleiche Problem ld: library not found for -lPods-OneSignalNotificationServiceExtension
Ich verwende reaktive 0.61.4 und onesignal 3.6.1
mit Pod-Deintegration und -Bereinigung und DerivedData
Ich habe gefunden, aber ich weiß nicht, warum, wenn ich keine "Release" -Konfiguration in meiner Konfigurationsliste habe, das "Archiv" mit der Bibliothek nicht gefunden fehlschlägt.
Archiv fehlgeschlagen:
Archiv erfolgreich
Zu Ihrer Information, Dev, Preprod & Prod basieren auf Release. Bei meinen älteren Projekten mit onesignal hat es ohne "Release" funktioniert
@rgomezp aktualisieren :
- Erstellen Sie ein neues reaktives Projekt
- Onesignal hinzufügen
- bauen & archivieren > es ist ok
- Benennen Sie die "Release"-Konfiguration in einen anderen Namen um (wie Dev)
- build & archivieren > ld: Bibliothek für -lPods-OneSignalNotificationServiceExtension nicht gefunden
Die obigen Vorschläge funktionieren nicht. Bereits auf die neueste Version v3.4.1 aktualisiert, abgeleitete Daten bereinigen, Pods bereinigen und neu installieren, aber immer noch Fehler:
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)
AKTUALISIEREN:
Mein Fehler. Es stellte sich heraus, dass ich den Inhalt vonNotificationService.m
durch den neuesten Code in DOC ersetzen muss. Ich habe immer nochRCTOneSignalExtensionService.h
. Beim Update ist der Fehler weg.
Das funktioniert bei mir nicht
Habe gerade das gleiche Problem. -lPods-OneSignalNotificationServiceExtension
fehlgeschlagen, wenn ich neue Schemata hinzugefügt habe. Irgendwelche Updates dazu?
gleich
Ich hatte das gleiche Problem nach dem Upgrade von Reactive-native
Dies hat mein Problem behoben https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289
Ich hatte das gleiche Problem beim Upgrade der RN-Version auf 0.63.2 und beim Versuch, die App zu archivieren, und ich wurde behoben
dadurch.
Es war ein Versionskonflikt zwischen der Version, die ich in Podfile angegeben habe, und der Zielversion, die
Ich habe die OneSignal-Erweiterung eingestellt. Sobald ich diese beiden Werte so geändert habe, dass sie miteinander übereinstimmen,
das problem war weg.
Podfile
OneSignalNotificationExtension (oder was auch immer Sie der Benachrichtigungserweiterung genannt haben)
Ich habe das gleiche Problem, aber keiner der obigen Tipps hat mein Problem gelöst.
Ich habe 2 Projekte, die ziemlich ähnlich sind: eins, das funktioniert und ein anderes, das nicht funktioniert.
In xcode sind die Build- und Archivierungsschritte in Ordnung, aber auf meinem CI oder auf meinem Computer ist der folgende Befehl bei einem Projekt erfolgreich, beim anderen jedoch fehl
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
Wenn ich mir die Protokolle des Befehls anschaue. Für das Projekt das funktioniert habe ich
▸ 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
Für das Projekt das nicht funktioniert habe ich
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Running script 'Copy generated compatibility header'
▸ Building library libPods-OneSignalNotificationServiceExtension.a
Ich habe die Konfiguration beider Projekte mehrmals überprüft und sie scheinen ähnlich zu sein.
Hat jemand eine Ahnung woran das liegen kann?
Nachdem ich meine Protokolle für die beiden Projekte verglichen hatte, stellte ich fest, dass das erfolgreichste das Legacy-Build-System verwendet, das andere jedoch das neue Build-System.
Ich habe das Projekt auf ein Legacy-Build-System umgestellt, aber das Problem besteht immer noch.
Auf das Projekt, das erfolgreich ist, habe ich
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
und dann
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
aber auf dem anderen Projekt habe ich nach dem Kompilieren einen Ld-Befehl
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
Ich weiß nicht, was der Unterschied zwischen diesen Befehlen ist und ich weiß nicht, warum die Reihenfolge nicht gleich ist
Letzter Kommentar zu meinem Problem. Ich habe das OneSignalNotificationServiceExtension-Ziel, die zugehörigen Ziel-c-Dateien und den Verweis auf OneSignal in meiner Poddatei entfernt. Der Befehl xcodebuild
erfolgreich.
Ich habe ein Signal wieder hinzugefügt, indem ich alle Schritte ausgeführt habe, die im Dokument https://documentation.onesignal.com/docs/react-native-sdk-setup beschrieben sind
Danach schlägt mein Befehl xcodebuild
immer noch fehl
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
Der Ordner /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary
ist leer, er enthält keine OneSignalNotificationServiceExtension
Datei.
Ich habe das gleiche Problem
So...
Dies war wirklich schwer zu verfolgen, ich musste ein neues RN 064.1-Projekt neu erstellen, um wirklich die Lösung für meine Probleme zu finden. Ich verwende Schemata in meinen Projekten und habe Korrekturen angewendet, damit es richtig auf M1 aufbaut.
Da das Projekt auf das neue OneSignalXCFramework
anstelle des alten Fat-Frameworks aktualisiert wurde, habe ich beschlossen, die NSE zu aktualisieren, um dies auch in Podfile zu verwenden.
Hatte eine Menge Probleme, bei denen das Modul nicht gefunden wurde, einschließlich dieses beim Erstellen eines Release-Builds oder beim Erstellen des Simulators oder eines Geräts
Es stellt sich heraus, dass der Teil, der mit meinem Code geschraubt hat und das ganze Problem nicht funktioniert, der folgende Abschnitt in der Poddatei ist
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[iphonesimulator=*]"] = "arm64"
end
Am Ende musste ich es nur auf Debug-Builds anwenden und nicht auf Release-Builds. Ich bin kein iOS-Entwickler, daher kenne ich die Feinheiten nicht, wie das Ausschließen eines Simulators aus einer Architektur dazu führen würde, dass Pods für den NSE nicht erkannt werden, aber das war mein Problem.
Das Entfernen des gesamten Blocks war das, was es für mich behoben hat. Scheint zumindest für mein Projekt nicht mehr benötigt zu werden.
Hilfreichster Kommentar
Ich hatte das gleiche Problem beim Upgrade der RN-Version auf 0.63.2 und beim Versuch, die App zu archivieren, und ich wurde behoben
dadurch.
Es war ein Versionskonflikt zwischen der Version, die ich in Podfile angegeben habe, und der Zielversion, die
Ich habe die OneSignal-Erweiterung eingestellt. Sobald ich diese beiden Werte so geändert habe, dass sie miteinander übereinstimmen,
das problem war weg.
Podfile
OneSignalNotificationExtension (oder was auch immer Sie der Benachrichtigungserweiterung genannt haben)