React-native-onesignal: OneSignal/OneSignal.h-Datei nicht gefunden

Erstellt am 24. Jan. 2017  ·  44Kommentare  ·  Quelle: OneSignal/react-native-onesignal

Es gab ein Thema, das bereits geöffnet und geschlossen wurde, aber das ist immer noch ein Thema. Siehe Ausgabe 133 .

Mein Kommentar zu dem Problem beschreibt das Problem.

Reagieren Nativ 0.40.0 OneSignal 3.0

Hilfreichster Kommentar

Zusammengeführt, getestet und repariert.

Alle 44 Kommentare

Im Grunde bedeutet dies, dass das Framework im Modul nicht aktualisiert wird, wenn Sie CocoaPods nicht verwenden. Hab ich recht?

Ja, ich denke, das ist richtig. Ich verwende keine CocoaPods.

Ich verstehe. Das aktuelle Problem besteht darin, dass ich keine Möglichkeit finden kann, die Bibliothek das Framework erkennen zu lassen, wenn sie sich außerhalb der Bibliothek befindet, beispielsweise in der Gruppe Frameworks im Xcode-Projekt. Dadurch ist die Bibliothek von einer bestimmten Version des Frameworks abhängig, anstatt sie manuell hinzuzufügen.

Hey, habe ein Repo mit Hinweisen für dich gefunden. Hat meinen Code wieder zum Laufen gebracht.
https://github.com/eriksape/react-native-onesignal#faq -repeating-issues

@avishayil ,

Ich bin mit Objective-c nicht wirklich vertraut, ich wünschte wirklich, ich könnte helfen, das Problem zu lösen.
Könnte es eine Aktualisierung der Dokumentation geben, um die Leute über das Problem zu informieren?

In der Zwischenzeit habe ich das OneSignal.framework-Verzeichnis mit dem richtigen "Header"-Verzeichnis und der "OneSignal"-Datei in mein iOS-Projekt kopiert und die "Framework-Suchpfade" so geändert, dass sie darauf zeigen.

Ich werde nach Updates Ausschau halten müssen, aber das funktioniert für mich vorerst. Vielen Dank!

@haxtrujillo Dieses Problem tritt auch auf, wenn CocoaPods nicht verwendet wird. Welche Header-Datei und OneSignal-Datei haben Sie geändert, damit dies über den direkten Import anstelle der offiziellen README-Anweisungen funktioniert? Vielen Dank!

@dguillamot Stellen Sie sicher, dass die "Header Search Paths" und "Header Search Paths" eingestellt sind, kopieren Sie die Dateien von Version "B" (Aktuell) zwei Ebenen nach oben.

screen shot 2017-01-25 at 11 13 26 pm

Ich frage mich immer noch, wie ich es ohne diesen "hässlichen" Weg lösen kann. @jkasten2 kannst du hier helfen?

Ich habe das gleiche Problem, plus React/<...>.h nicht gefunden.
screen shot 2017-01-26 at 2 31 54 pm

screen shot 2017-01-26 at 7 37 18 pm

Ich habe auch das gleiche Problem mit React-Native 0.4.0,

Nach der Installation eines Plugins (react-native-firestack) passiert es plötzlich.

@rustykey @bitsal

Ich musste 2 verschiedene Dinge tun, damit es funktioniert:

0 - Ich habe einen Unterordner in meinem Hauptprojektordner (in dem sich die xcode-Workspace-Datei befindet) namens /ios/OneSignal erstellt

1 - Dann können Sie, ähnlich wie oben von haxtrujillo, im Ordner node_modules/react-native-onesignal/ios/Frameworks auf die Datei OneSignal.framework doppelklicken/erweitern. Darin befindet sich ein Unterordner Versions/B. Wählen Sie dort die Dateien 'Headers' und 'OneSignal' aus, kopieren Sie ( CMD-C ) und wählen Sie dann die OneSignal.framework 'Datei' erneut aus und fügen Sie sie ein.

Dann habe ich diese neue OneSignal.framework-Datei in den Ordner /ios/OneSignal kopiert, den ich oben in Schritt 0 erstellt habe.

2 - Als nächstes habe ich die Datei node_modules/react-native-onesignal/ios/RCTOneSignal.xcodeproj und den Ordner RCTOneSignal in den Ordner ios/OneSignal kopiert, den ich in Schritt 0 erstellt habe.

Dann habe ich in Xcode die OneSignal.Framework-Datei zum Frameworks-Ordner meines xcode-Workspace hinzugefügt und RCTOneSignal.xcodeproj zum Libraries-Ordner hinzugefügt. Dann habe ich die xcodeproj-Datei in meinem Bibliotheken-Ordner in xcode ausgewählt. Um zu überprüfen, ob das Ziel RCTOneSignal war, ging ich zu BuildSettings und änderte die Framework-Suchpfade in '$(PROJECT_DIR)/OneSignal' .. Auf diese Weise konnte das neue OneSignal.framework, das ich erstellt habe, gefunden werden. Ich habe auch die Header-Suchpfade im selben Bereich mit den Build-Einstellungen geändert, um sicherzustellen, dass React aufgenommen wird. In meinem Fall war es am einfachsten relativ zu PROJECT_DIR als '$(PROJECT_DIR)/../node_modules/react-native/React'

Nach diesen Änderungen ist jetzt alles in meinem ios/OneSignal-Ordner und ich brauche den node_modules-Ordner nicht wirklich. Ich benutze es immer noch für Android. Wenn Sie jedoch nur ios sind, benötigen Sie den Ordner node_module nicht, da dieser Workaround im Grunde eine lokale Kopie erstellt hat.

Dies ist definitiv keine gute langfristige Lösung und sollte rückgängig gemacht werden, sobald der Autor dieses Paket aktualisiert hat. Es ist nur eine Verknüpfung des Knotenmoduls, indem das Projekt kopiert wird, damit Sie die Build-Einstellungen ändern können. Sobald das Knotenmodul geändert wurde, um dieses Problem zu beheben, sollten diese Änderungen rückgängig gemacht werden.

Danke @dguillamot !

Ich habe es etwas anders gemacht, aber der Sinn ist der gleiche, denke ich
package.json :

"scripts": {
     ...
    "fix-onesignal-ios-issue-161": "cd node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework && cp -R Versions/B/* . && cd ../../../../..",
    "run-ios": "npm run fix-onesignal-ios-issue-161 && echo '.env.local' > /tmp/envfile && react-native run-ios",
     ...
}

PS:
@avishayil
Ich habe in den Header- Suchpfaden des RCTOneSignal-Projekts eine Zeile wie diese "$(SRCROOT)/../../../ios/Pods/Headers/Public/OneSignal" bemerkt.
Es scheint, dass die Bibliothek erfordert, dass ich die Ordner node_modules und ios auf derselben Ebene habe. In einigen Fällen (wenn die Projektstruktur etwas anders ist) funktioniert es nicht, weil es keinen Ordner $(SRCROOT)/../../../ios .

PS2:
Außerdem hatte ich ein Problem wie React/RCT<...>.h file not found . Ich habe das behoben, indem ich React zuerst aus dem XCode erstellt habe (siehe https://github.com/facebook/react-native/issues/12042#issuecomment-275025960).

react-native run-ios funktioniert noch nicht (, nur von XCode.

Seit Version 2.1.5 des nativen iOS OneSignal SDK gibt es keinen Versions/B Ordner mehr. Können Sie überprüfen, ob Sie das neueste OneSignal.framework verwenden? Derzeit ist 2.3.5 das Neueste.

@jkasten2 richtig, 2.3.5 Version jetzt
Ich bin mir sicher, weil ich oft laufe

rm -rf node_modules/react*
rm -rf ios/build/* && rm -rf ios/Pods/*
rm -rf ~/Library/Developer/Xcode/DerivedData/*

Übrigens,

react-native-cli: 2.0.1
react-native: 0.40.0

Pod-Datei:

pod 'OneSignal', '~> 2.0'

aber tatsächlich installiert es 2.3.5 , ich sehe es in der Konsolenausgabe

@jkasten2 ,
Ich verwende React Native 0.40.0, OneSignal 3.0 und keine CocoaPods.

@jkasten2
Du hast recht. Es gibt keinen Versions/B Ordner in ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework/Versions/ :

Current -> A

aber Versions/B ist noch da node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework/Versions/

Paket.json
"react-native-onesignal": "3.0.0",

Bei dem Problem scheinen Symlinks aus dem Release-Tag 3.0.0 zu fehlen.

@avishayil Mir ist aufgefallen, dass das Tag v3.0.0 fehlt, aber der Master hat sie.
https://github.com/geektimecoil/react-native-onesignal/tree/v3.0.0/ios/Frameworks/OneSignal.framework
https://github.com/geektimecoil/react-native-onesignal/tree/master/ios/Frameworks/OneSignal.framework

Das native iOS SDK-Repository enthält hier auch Symlinks.
https://github.com/OneSignal/OneSignal-iOS-SDK/tree/2.3.5/iOS_SDK/Framework/OneSignal.framework

Können Sie ein Update mit diesen fehlenden Dateien veröffentlichen?

@jkasten2 Los geht's, in diesem Projekt im examples Zweig:
https://github.com/geektimecoil/react-native-onesignal/tree/examples/examples/RNOneSignalFramework

Versuchen Sie, dieses Projekt zu erstellen, es sagt, dass die Header-Dateien fehlen.

@avishayil Ich habe einen neuen Klon erstellt und die folgenden Anweisungen .h Problem gestoßen .
https://github.com/geektimecoil/react-native-onesignal#running -example-project

Hinweis: Die Anweisungen sollten cd OneSignalRN anstelle von cd OneSignalRNExample lauten.

Führen Sie das Projekt sowohl vom Terminal aus wie in den Anweisungen angegeben aus und bauen Sie es direkt aus Xcode auf, indem Sie die Datei RNOneSignal.xcworkspace öffnen.

Hallo @jkasten2 , kein Problem beim Erstellen eines Projekts mit CocoaPods. Problem ist, wenn versucht wird, ein Projekt mit dem Framework ohne CocoaPods zu erstellen.

Ich habe dies bereits erwähnt, verzeihen Sie mir, wenn dies ein Duplikat ist, aber: Eines der Probleme ist, dass die Header-Datei OneSignal.h im Repository IST, aber sie befinden sich nicht in einem Ordner namens "OneSignal", wie sie sind referenziert.

@avishayil ist immer noch das Problem ohne Kakao?

@eriksape ja

@avishayil Ich weiß nicht, was passiert, meine Methode zum Einfügen ist immer noch in Ordnung, da Kakaoschoten dasselbe tun, jedoch automatisch und viele Pakete mit der letzten Version von OneSignal-iOS-SDK herunterladen, wie von

Leute, ich habe das Header-Problem bei der Verwendung von v2 und Cocoapods :/ Irgendein Hinweis warum? Soll ich ein dediziertes Issue erstellen?

Ich werde mir diese Woche v2 anschauen.

Ich verwende RN40 und OneSignal3.0, verwende das Framework und erhalte immer noch "OneSignal/OneSignal.h not found". Meine Header- / Framework-Pfade sind korrekt eingestellt, die Bibliothek wurde mit einem reaktiven Link verknüpft, sodass ich kein Problem beim Setup sehe.

Ich hatte das gleiche mit Cocoapods.

Ich hatte diesen Fehler für v3.0.0 und reagierte nativ 0.41. Ich habe es erstellt, indem ich den Befehl reaktiv-nativer Link ausgeführt habe.

Korrektur: immer noch ein Build-Fehler :(

Benutzt ihr CocoaPods?

@avishayil Nein, ich verwende keine Cocoapods und werde sie nicht verwenden. Ich habe gerade Ihre neuesten Änderungen in 3.0.2 erhalten und es wird immer noch nicht erstellt. Irgendwelche Updates zur Behebung dieses Problems?

@larryranches Dies ist immer noch etwas, das ich zusammen mit dem Team von OneSignal betrachte. @jkasten2 und ich werde aktualisieren, wenn wir eine Lösung dafür haben.

@avishayil Danke, dass

Gleiches Problem bei der Ausführung mit Xcode. Die App startet mit node node_modules/react-native/local-cli/cli.js run-ios aber abgestürzt, weil RNOneSignal undefined .

@avishayil Ich habe versucht, Coca und das Framework zu verwenden, das gleiche Ergebnis.

@edo1493 können Sie ein Repo mit dem reproduzierten Fehler

Dieser Pull-Request hat bei mir funktioniert ✌️:
https://github.com/geektimecoil/react-native-onesignal/pull/184

Interessant, wie hast du das aufgebaut? Von Grund auf neu oder zu einem bestehenden Projekt?

@avishayil in ein bestehendes Projekt (mit dem hier beschriebenen Problem) und folgte der aktualisierten README unter https://github.com/jkasten2/react-native-onesignal.
(Musste Podfile und zugehörige Dateien entfernen)

PR #184 funktioniert bei mir auch

Zusammengeführt, getestet und repariert.

Ich habe alles getan, was immer noch nicht gefunden wurde :(

Ich habe diesen Fehler auch bei Cacaopods ... RN 0.50 und Reak-native-Onesignal ^3.0.5

jemand diesen Fehler beheben? ich stehe auf RN 0.51 und reaktiv-native-einssignal ^ 3.0.5

Die Neuinstallation eines Signals von Grund auf hat mir geholfen, dieses Problem zu beheben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen