2017-03-06 4 views
0

Ich verliere meinen Verstand auf ein Problem seit 1 ganze Woche ... Ich habe ein ReactNative-Projekt, das sehr gut auf Android-Simulator läuft, aber nicht auf Xcode.React-Native-Onesignal: Doppelfehler mit Pods

  1. Mein Code

Eigentlich habe ich in meinem package.json:

Package.json

... 
"react": "15.4.2", 
"react-native": "^0.40.0", 
... 
"react-native-onesignal": "^3.0.3", 
... 

I npm install oder npm update ohne Fehler ausführen können.

Außerdem habe ich in meinem Podfile, für mein iOS-Projekt, in dem iOS Ordner:

Podfile

# Uncomment the next line to define a global platform for your project 
# platform :ios, '9.0' 

target 'MyApp' do 
    pod 'OneSignal' 
end 

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '3.0' 
     end 
    end 
end 

Als ich pod install laufen, es funktioniert gut und die .xcworkspace Datei erstellen. Wenn ich es öffne, kann ich den ersten Fehler sehen:

Error in finding file

So habe ich es gegoogelt und fand die reagieren-native-onesignal Repo auf GitHub, mit einer Empfehlung der Entwickler über mein Problem: er sagt, richtig zu folgen iOS installation steps. Ich habe es getan, indem diese in Header Search Path Zugabe: $(SRCROOT)/../node_modules/react-native-onesignal/ios in recursive: Add header properly

Nun OneSignal.h gefunden wird, aber ich habe einen neuen Fehler mir zu sagen, dass die Bibliothek dupliziert: Error duplicate

für Informationen, hier ist meine Bibliothek, meine Dateien und meine Build-Phasen:

Library in General

Library

Files in Xcode

Files

Build Phases

Build phases


  1. Was ich

I h versucht haben, ave versucht zu:

  • löschen Sie die wichtigsten.m, da es dupliziert zu werden scheint,
    • eine Kopie der Bibliothek löschen, sowohl in der Bibliothek im Allgemeinen oder Bibliothek in Build Phasen,
    • im Dateisystem in Xcode manuell eine Kopie löschen,
    • entfernen $(inherited) Flag in Other Files Flag in meinem Ziel Build-Einstellungen: der Build erfolgreich, aber meine App funktioniert nicht mehr ... Ich habe versucht, andere Flags zu entfernen, aber keine Ergebnisse.

keine Lösungen, und ich bin immer verrückt.

Antwort

1

Also habe ich mein Problem gelöst. In der Tat, meine package.json installiert reactive-native-onesignal in der Version^3.0.2, also 3.0.3 derzeit. Daher, seit 3.0.3 CocoaPods aus dem Prozess entfernt hat, wurde es nicht ausgeführt ... Ich legte in package.json '3.0.2'. Ich werde Cocoapods entfernen und 3.0.3 später verwenden.

1

Seit Version 0.40 spielt reactive-native nicht gut mit Cocoapoden zusammen. Ich hatte tagelang einen ähnlichen Kampf, der nur gelöst wurde, wenn ich die Kokospalmen vollständig fallen ließ. Bevor Sie jedoch aufgeben, versuchen Sie auch, den abgeleiteten Datenordner zu löschen, den Sie unter Xcode > File > Project Settings finden.