2017-02-10 33 views
10

Podczas fazy łączenia iOS zaczęły pojawiać się błędy w moim projekcie React Native.Reagowanie natywnych nagłówków bazowych dla ios nieodnalezionych

React Native wersję: 0.41.2, 0.40, 0.39

Wszystko działało w porządku, ja edytowany wersję Androida, React Native kod nie uległa zmianie, gdy tego rodzaju powiązanie błędy zaczęły pojawiać się z nagłówków na ścieżce nie /node_modules/react-native/React/Base/{RCTHeaderName.h} znajdowane:

The error

In file included from /Users/user/ReactNativeProject/node_modules/react-native-vector-icons/RNVectorIconsManager/RNVectorIconsManager.h:9: 
../react-native/React/Base/RCTBridgeModule.h:12:9: fatal error: 'React/RCTDefines.h' file not found 
#import <React/RCTDefines.h> 
     ^
  • W Binarnej bibliotece z bibliotekami Zawieram rdzeń biblioteki React (libReact.a).

  • Położenie RCTLog.h jest PROJECTROOT/node_modules/react-native/React/Base/RCTLog.h, ale import jest #import <React/RCTLog.h>

  • Nowo dodanie React.xcodeproj w bibliotekach nie pomaga, Xcode na Product > Clean nie pomaga, ani nie ponowne uruchomienie Xcode

  • react-native run-android działa, react-native run-ios pokazuje błąd

  • Plik Uprawnienia ustawione dla użytkownika wykonującego react-native run-ios

Odpowiedz

17

Czy masz Parallelize build opcja zaznaczona i reagować wymieniony jako pierwszy w swoich celów budować?

Można znaleźć to okno w Xcode => Twoja ikona projekt niedaleko przycisk Uruchom => Program Edit => Zbuduj Tab

+0

Wygląda na to, że znajdzie nagłówki, po ponownym zainstalowaniu 'reagować-rodzimy @ 0.41.2' i usuwanie nadmiernych ** ** Header ścieżek wyszukiwania. Zaczęło się wyświetlać zduplikowaną definicję interfejsu, co jest dobrym znakiem .. –

+0

@PeterGerhat Czy usunięcie katalogu danych wyjściowych jest pomocne? Możesz znaleźć folder w preferencjach Xcode => zakładka Lokalizacje – binchik

+0

Prawdopodobnie Xcode już to zrobił. ** Powielona definicja interfejsu ** była wynikiem tej zmiany https://github.com/facebook/react-native/issues/11725 i właśnie podążałem za wskazówkami, aby ją naprawić. –

3

Aktualizacja: rozwiązanie na Facebooku React-Native https://github.com/facebook/react-native/issues/11813

============

Ten problem przydarzył mi się również. Wygląda na to, że React.xcodeproj rozpoznaje tylko konfigurację Debugowanie i wydanie. Wszystkie dane wyjściowe pliku React.xcodeproj są zapisywane w Debug-iphonesimulator lub Release-iphonesimulator.

Oznacza to, że jeśli masz jakieś inne konfiguracje niż „Debug/Release”, wyjście nadal będą zapisywane w Debug-iphonesimulator lub Release-iphonesimulator, że nie jest to, co chcemy.

Rozwiązaniem jest dodanie tej samej konfiguracji w React.xcodeproj, aby dopasować ją do własnego projektu.

Na przykład, jeśli masz 4 konfiguracje "Debug/Release/Test/AppStore" we własnym projekcie, upewnij się, że React.xcodeproj ma te same 4 konfiguracje.

proszę kliknąć przycisk "+" w konfiguracjach, następnie "Powiel konfigurację wydania" i zmienić nazwę zgodnie z potrzebą.

enter image description here

+0

Skąd pochodzi nazwa 'Debug/iphonesimulator'? Skąd mam wiedzieć, że jest to nazwa konfiguracji, której potrzebuję? –

+0

Czy możesz pokazać zrzut ekranu, jak powinien wyglądać? –

+0

@PetrusTheron, prawidłowe rozwiązanie jest tutaj: https://github.com/facebook/react-native/issues/11813, dostarczone przez philipshurpik skomentował 21 lutego – User9527