React-native-onesignal: React-native 0.60 -lPods-OneSignalNotificationExtension nicht gefunden

Erstellt am 2. Sept. 2019  ·  20Kommentare  ·  Quelle: OneSignal/react-native-onesignal

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:

  • Header-Suchpfade: "${PODS_ROOT}/Headers/Public/react-native-onesignal"
  • Framework-Suchpfade: "${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"

Umgebung

  • React-native-Onesignal-Version: 3.3.2
  • reaktiv: 0.60.5

Schritte zum Reproduzieren des Problems:

  1. Folgte dem RN-Setup: https://documentation.onesignal.com/docs/react-native-sdk-setup
  2. xcode-Projekt ausführen
  3. Erwarten Sie zu sehen: ld: library not found for -lPods-OneSignalNotificationServiceExtension
Help Wanted

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
image

OneSignalNotificationExtension (oder was auch immer Sie der Benachrichtigungserweiterung genannt haben)
image

Alle 20 Kommentare

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./Library/Developer/Xcode/DerivedData

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:
Capture d’écran 2020-01-08 à 17 07 06

Archiv erfolgreich
Capture d’écran 2020-01-08 à 17 16 44

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 von NotificationService.m durch den neuesten Code in DOC ersetzen muss. Ich habe immer noch RCTOneSignalExtensionService.h . Beim Update ist der Fehler weg.

Das funktioniert bei mir nicht

  • Ein-Signal (3.6.2)
  • reaktiv (0.60.0)

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
image

OneSignalNotificationExtension (oder was auch immer Sie der Benachrichtigungserweiterung genannt haben)
image

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen