Après la mise à jour vers react-native 0.59 et en essayant de créer l'application pour iOS, j'obtiens l'erreur suivante:
Le fichier d'entrée de construction est introuvable: '/app/node_modules/react-native/ReactCommon/yoga/yoga/YGFloatOptional.cpp'
Ce qui m'est étrange, c'est que je ne trouve pas ce fichier ici non plus dans le master actuel: react-native/tree/master/ReactCommon/yoga/yoga
(seulement YGFloatOptional.h
)
Nous avons amélioré un projet de taille moyenne de 0,57,7 → 0,59.
Build devrait fonctionner correctement comme avant.
React Native Environment Info:
System:
OS: macOS 10.14.3
CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Memory: 2.95 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.15.1 - /var/folders/1r/ymkpxdlj21lb638kzp4jxvwm0000gn/T/yarn--1552463658468-0.20119758467048565/node
Yarn: 1.13.0 - /var/folders/1r/ymkpxdlj21lb638kzp4jxvwm0000gn/T/yarn--1552463658468-0.20119758467048565/yarn
npm: 6.4.1 - /usr/local/Cellar/node@10/10.15.1/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 23, 24, 25, 27, 28
Build Tools: 23.0.1, 23.0.3, 24.0.1, 25.0.0, 27.0.3, 28.0.3
System Images: android-24 | ARM 64 v8a, android-24 | ARM EABI v7a, android-24 | Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom_64
IDEs:
Android Studio: 3.3 AI-182.5107.16.33.5264788
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.0 => 0.59.0
Je viens de reproduire ce problème avec XCode: 10.1 et RN 0.59.0.
EDIT 1 : Je pourrais reproduire avec l'outil de construction XCode UI; mais cela fonctionne bien avec react-native run-ios
(assurez-vous d'avoir le dernier cli 2.x).
EDIT 2 : J'ai réussi à le faire fonctionner avec XCode 10.1 en activant la version héritée . Associé à # 19573
Hmm, je viens de passer de 0.58.4
à 0.59
, de nettoyer les répertoires de construction dans XCode et j'ai pu exécuter à la fois le débogage et l'archivage de l'application. J'utilise XCode 10.1.
Ma stratégie de mise à niveau:
Vous vous demandez si tout pourrait fonctionner pour moi parce que j'avais travaillé 0.58.4
et que je venais d'appliquer de nouvelles choses en plus?
EDIT: J'ai également exécuté npm ci
afin de supprimer mon node_modules
(juste pour être sûr) et j'ai toujours pu créer l'application à partir de XCode 🤔
EDIT2: Et je n'ai pas YGFloatOptional.cpp
:
J'obtiens le même problème lors de la mise à niveau de 0.57.8 -> 0.59.1.
En regardant une nouvelle init 0.59.1, il n'y a pas YGFloatOptional.cpp
fichier
Ajoutez ces lignes à votre Podfile:
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
et courir
pod install
@jpudysz Oui, cela a fonctionné après la migration vers cocoapod et l'ouverture du projet XCode avec le fichier .xcworkspace
.
J'ai dû utiliser les bibliothèques pontées react-native unlink
et react-native link
pour qu'elles utilisent plutôt Podfile
.
Les liens hérités (sans cocoapode) devraient-ils être abandonnés?
@jpudysz a également travaillé pour moi. Cela ne peut certainement pas être la bonne solution, n'est-ce pas? Cela gonfle sérieusement le projet. Pods/boost-for-react-native
correspond à 160,8 Mo.
Edit: Ok sérieusement étrange, j'ai supprimé ces 3 pods, exécuté Clean dans Xcode et essayé de construire. Cette fois, je n'ai pas eu d'erreur lors de la compilation de Yoga.
Merci @jpudysz . Suite à votre solution, j'obtiens alors l'erreur suivante:
Fichier 'folly / Portability.h' introuvable dans JSBundleType.h
Quelqu'un sait-il ce qui se passe?
Merci beaucoup.
Après avoir essayé ce qui ressemble à à peu près tout, la mise à niveau standard RN, l'outil de mise à niveau git, l'application du patch de diff, j'ai fini par recréer un projet complètement nouveau et faire le travail extrêmement fastidieux de reconstruction de la base de code. Ils disent que ce sera mieux à partir de 0,59 ... j'espère qu'ils ont raison à ce sujet
Je viens de passer de 0.59.0 à 0.59.1 et cela a fonctionné pour moi
résolu le problème du yoga
J'ai mis à niveau aussi mais sans chance pour l'instant.
J'ai eu exactement le même problème. Le bon vieux rm -rf node_modules && npm i
et le nettoyage des dossiers de construction l'ont fait pour moi
Après avoir utilisé npm audit fix
, mes 'react-native' sont automatiquement mis à niveau vers la version 0.59 et je ne peux pas ne pas construire mon projet.
Solution : rétrograder la version à une version inférieure.
npm install react-native@<version>
exemple: npm install [email protected]
J'ai essayé de mettre à jour manuellement à partir de 0.58.4 (après les changements de rn-diff-purge) mais je suis également confronté à ce problème avec RN 0.59.0 ou 0.59.1
Ouais, nous avions YGFloatOptional.cpp
jusqu'à 0,58 https://github.com/facebook/react-native/blob/0.58-stable/ReactCommon/yoga/yoga/YGFloatOptional.cpp
Mais qu'est ce qu'il se passe ici?
Éditer
La solution de @jpudysz me conduit à un autre fichier non trouvé erreur 'folly/Portability.h' file not found
Vous avez le même problème avec 'folly / Portability.h' après la mise à niveau de 0.58.4 à 0.59.0 et 0.59.1
Ce qui est bizarre, c'est que XCode déclare après la compilation que Portability.h n'est pas trouvé, mais dans l'éditeur, il obtient tous les types définis dans l'en-tête ...
Le fichier qui n'a pas pu être compilé est RCTJavasScriptLoader.mm dans la bibliothèque React.
CompileC /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.o /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target: React)
cd /Users/xxx/Projects/xxx/ios/Pods
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++14 -stdlib=libc++ -fobjc-arc -fobjc-weak -fmodules -fmodules-cache-path=/Users/xxx/Projects/xxx/ios/build/xxx/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Projects/xxx/ios/build/xxx/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -DPOD_CONFIGURATION_DEBUG=1 -DDEBUG=1 -DCOCOAPODS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -mios-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability -fobjc-abi-version=2 -fobjc-legacy-dispatch -index-store-path /Users/xxx/Projects/xxx/ios/build/xxx/Index/DataStore -iquote /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-generated-files.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-own-target-headers.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-all-non-framework-target-headers.hmap -ivfsoverlay /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/all-product-headers.yaml -iquote /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-project-headers.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Products/Debug-iphonesimulator/React/include -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Private -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Private/React -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public/React -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public/yoga -I/Users/xxx/Projects/xxx/node_modules/react-native/ReactCommon -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/DerivedSources/x86_64 -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/DerivedSources -F/Users/xxx/Projects/xxx/ios/build/xxx/Build/Products/Debug-iphonesimulator/React -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -include /Users/xxx/Projects/xxx/ios/Pods/Target\ Support\ Files/React/React-prefix.pch -MMD -MT dependencies -MF /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.d --serialize-diagnostics /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.dia -c /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm -o /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.o
In file included from /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm:12:
/Users/xxx/Projects/xxx/node_modules/react-native/ReactCommon/cxxreact/JSBundleType.h:
info fatal error:
'folly/Portability.h' file not found
#include <folly/Portability.h>
^~~~~~~~~~~~~~~~~~~~~
1 error generated.
J'ai eu le même problème ..., Chaque fois qu'il y a un problème avec les mises à niveau dans React Native si fatigué ...
Le fichier semble avoir été supprimé du projet de yoga depuis le 13 décembre 2018 et "intégré" dans yoga/YGFloatOptional.h
: https://github.com/facebook/yoga/commit/96d93f29826257ff6e9bb6c19211adb423029c29
Je suppose que la référence à ReactCommon/yoga/yoga/YGFloatOptional.cpp
n'est plus nécessaire.
La suppression du cache et la reconstruction du projet n'ont pas fonctionné pour moi tout de suite.
J'ai donc essayé de mettre à niveau vers React Native 0.59.1 puis de reconstruire le projet. Cela n'a pas fonctionné non plus.
Cependant, ALORS nettoyer mes node_modules, mettre en cache et créer des dossiers et reconstruire le projet a fonctionné, en utilisant:
rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-* && watchman watch-del-all && npm cache clean --force && npm cache verify && rm -rf ios/build && rm -rf node_modules/ && npm i
Donc, cela semble lié au cache.
La mise à niveau vers React Native 0.59.1 n'est peut-être pas nécessaire, je pense qu'une partie du script a fait l'affaire pour moi.
J'espère que cela aide les autres!
J'ai abandonné, j'ai supprimé tous les liens vers node_modules du fichier Pods, puis supprimez node_modules et le répertoire de construction et réinstallé tout puis finalement construit à nouveau avec succès.
C'est tellement épuisant.
@jvandenaardweg Je pense que vous avez raison de dire que c'est un problème de mise en cache.
Pour moi, ce qui a fonctionné était de supprimer le dossier de données dérivées de mon Xcode et de redémarrer Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData
Une fois que j'ai redémarré, j'ai tenté une compilation et cela a échoué et m'a invité à fermer et rouvrir mon espace de travail xcode. Une fois que j'ai fait cela, j'ai essayé de reconstruire et cela a fonctionné.
Très bien, je pense que ce problème concerne généralement les problèmes de cache de construction lors de la mise à niveau (en lisant les articles) - donc si vous rencontrez des problèmes, je pense qu'il peut généralement être résolu par:
rm -rf node_modules; rm -rf Pods
puis réinstallezreact-native upgrade x.y.z
C'est à peu près la même chose pour chaque version, je parie. Je voudrais peut-être envisager de créer un problème sur le react-native-cli pour améliorer cela et peut-être exécuter certaines des commandes elles-mêmes.
Quelqu'un a-t-il une étape de reproduction spécifique pour cela?
Je voyais également l'erreur #include <folly/Portability.h>
. Le problème dans mon cas était l'absence de sous-spécifications dans le fichier pod.
Cela me convient parfaitement avec:
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge', # Include this for RN >= 0.47
'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
'RCTText',
'RCTNetwork',
'RCTWebSocket', # needed for debugging
'RCTImage',
'RCTWebSocket', # Needed for debugging
'RCTAnimation', # Needed for FlatList and animations running on native UI thread
# Add any other subspecs you want to use in your project
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
# Third party deps podspec link
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
"Entre 0,57,8 et 0,58,5 react-native, il y a un grand changement qui a été ajouté dans le projet Xcode est que vous devez ajouter JavaScriptCore.Framework aux FrameWorks et bibliothèques liés" - à partir d'ici
PLUS
Réponse @jvandenaardweg :
rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-* && watchman watch-del-all && npm cache clean --force && npm cache verify && rm -rf ios/build && rm -rf node_modules/ && npm i
A fait le travail pour moi.
C'est vraiment frustrant, comme d'autres l'ont dit, d'avoir besoin de deviner ce que c'est de casser un code qui fonctionnait auparavant.
Aussi sur Android, j'ai dû mettre à niveau la version Build Gradle pour fonctionner à nouveau.
besoin de deviner
Nous savons que la mise à niveau a été une douleur durable pour la communauté, donc à partir de la v0.59, nous avons introduit un nouveau flux via la nouvelle CLI .
Cela dit, nous avons écrit les changements de rupture dans le journal des modifications et dans l' onglet des versions, donc il n'y a pas vraiment besoin de deviner.
Quoi qu'il en soit, fermeture car cela est clairement lié à la mise à niveau - également, en général, vous pouvez utiliser rn-diff-repo pour vérifier toutes les étapes nécessaires lors de la mise à niveau.
Bonjour,
Après beaucoup de recherches, j'ai réussi à comprendre pourquoi j'ai eu le problème. Nettoyer le cache et tout n'a pas résolu le problème pour moi et j'avais toujours le #include
La compilation était correcte pour le projet React dans le cadre de mon projet, mais n'a pas réussi à compiler pour les pods que j'ai.
Même après avoir ajouté les pods Folly / glog / DoubleConversion, j'avais toujours le problème.
J'ai ensuite modifié le fichier React.podspecs pour modifier la sous-spécification Core
Après avoir ajouté la référence Folly au pod_target_xcconfig, il était compilé sans aucun autre problème.
ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
Et voici le podfile complet que j'ai
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
target 'CryptoReact' do
platform :ios, '9.0'
pod 'CodePush', :path => '../node_modules/react-native-code-push'
pod 'Firebase/Core', '~> 5.14.0'
pod 'react-native-sqlite-storage', :path => '../node_modules/react-native-sqlite-storage'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/yoga.podspec'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'react-native-randombytes', :path => '../node_modules/react-native-randombytes'
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
pod 'RNLocalize', :path => '../node_modules/react-native-localize/ios'
pod 'react-native-camera', :path => '../node_modules/react-native-camera'
pod 'RNPermissions', :path => '../node_modules/react-native-permissions'
pod 'react-native-keep-awake', :path => '../node_modules/react-native-keep-awake'
pod 'SwiftyJSON', '4.2.0'
pod 'Charts', '3.1.1'
pod 'Fabric', '~> 1.9.0'
pod 'Crashlytics', '~> 3.12.0'
pod 'Firebase/Performance', '~> 5.14.0'
pod 'Firebase/Auth', '~> 5.14.0'
pod 'lottie-ios', :path => '../node_modules/lottie-ios'
pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
pod 'react-native-webview', :path => '../node_modules/react-native-webview'
pod 'RNScreens', :path => '../node_modules/react-native-screens'
pod 'ReactNativeExceptionHandler', :podspec => '../node_modules/react-native-exception-handler/ReactNativeExceptionHandler.podspec'
pod 'RCTRestart', :path => '../node_modules/react-native-restart/ios'
pod 'react-native-version-number', :path => '../node_modules/react-native-version-number'
pod 'RNBackgroundFetch', :path => '../node_modules/react-native-background-fetch'
pod 'React', :path => '../node_modules/react-native', :subspec => [
'Core',
'ART',
'cxxreact',
'CxxBridge', # Include this for RN >= 0.47
'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
'RCTText',
'RCTNetwork',
'RCTWebSocket', # needed for debugging
'RCTImage',
'RCTWebSocket', # Needed for debugging
'RCTAnimation', # Needed for FlatList and animations running on native UI thread
'RCTPushNotification',
# Add any other subspecs you want to use in your project
]
end
swift4 = ['Charts']
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if swift4.include?(target.name)
config.build_settings['SWIFT_VERSION'] = '4.1'
end
end
end
end
Je suis dans la même situation. J'ai mis à niveau de 0,57 à 0,59 après la réaction native diff et tout a parfaitement fonctionné jusqu'à ce que je mette à niveau 0,58,6 à 0,59.
J'ai tout essayé sur ce fil sans chance, l'erreur de fichier 'folly / Portability.h' introuvable ne veut tout simplement pas disparaître.
Revenir à 0.58.6 fonctionne parfaitement mais au moment où je mets à jour à 0.59.0 ou 0.59.1, l'erreur apparaît.
Edit: J'ai trouvé le fichier dans node_modules / react-native / third-party / folly-2018.10.22.00 / folly / Portability.h mais il dit toujours que ce n'est pas là.
Je me rends compte que mon message n'était pas très clair ... Désolé pour ça. Voici le fichier diff qui devrait le rendre plus explicite pour les personnes ayant des problèmes avec 'folly / Portability.h'
Essayez d'apporter la modification suivante au fichier nodes_modules / react-native / React.podspec, du moins dans mon cas, cela a fonctionné! Je peux maintenant compiler mon projet et le lancer sans problème.
diff --git a/node_modules/react-native/React.podspec b/node_modules/react-native/React.podspec
s.subspec "Core" do |ss|
[...]
ss.header_dir = "React"
ss.framework = "JavaScriptCore"
ss.libraries = "stdc++"
- ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
+ ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
end
Faire ce que @aaska a dit et ajouter
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
au Podfile et au pod en les installant a fonctionné pour moi.
Après avoir utilisé les astuces @jpudysz , @jvandenaardweg et @johnryan , cela a également été
Merci les gars!
@ th3ac3 qui a résolu le problème pour moi. Je vous remercie!
aucun d'eux n'a fonctionné
@jvandenaardweg Je pense que vous avez raison de dire que c'est un problème de mise en cache.
Pour moi, ce qui a fonctionné était de supprimer le dossier de données dérivées de mon Xcode et de redémarrer Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData
Une fois que j'ai redémarré, j'ai tenté une compilation et cela a échoué et m'a invité à fermer et rouvrir mon espace de travail xcode. Une fois que j'ai fait cela, j'ai essayé de reconstruire et cela a fonctionné.
Merci, j'ai fait ça et ça a fonctionné à nouveau.
Donc, après avoir suivi la mise à niveau diff vers 59.4 (en utilisant rn-diff-purge ), j'ai toujours eu les mêmes problèmes que tout le monde ici (erreur YGFloatOptional.cpp
d'abord, puis l'erreur folly/Portability.h
). Cependant, aucune des solutions n'a fonctionné d'elle-même, c'est donc ce que j'ai fait pour résoudre les problèmes:
# Clean caches/build folder/existing pods
rm -rf node_modules
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ios/build
rm -rf ios/Pods
# Reinstall deps
npm install
Puis mis à jour mon Podfile comme suit:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'CityChallenge' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
pod 'React', :path => '../node_modules/react-native', subspecs: [
# Comment out any unneeded subspecs to reduce bundle size.
'Core',
'CxxBridge', # --> I was missing Cxxbridge here, may have resolved the issue for me as well
'DevSupport',
'RCTActionSheet',
'RCTAnimation',
'RCTBlob',
'RCTCameraRoll',
'RCTGeolocation',
'RCTImage',
'RCTNetwork',
'RCTPushNotification',
'RCTSettings',
'RCTTest',
'RCTText',
'RCTVibration',
'RCTWebSocket',
'RCTLinkingIOS'
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
# Third party --> This bit is also new
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
end
Après cela, j'ai réinstallé les pods
cd ios
pod install
Ce n'est qu'alors que le projet a recommencé à être construit avec succès
Dans mon cas, j'ai juste oublié de faire l'étape:
si vous êtes un développeur iOS, vous devrez lier manuellement JavaScriptCore.framework lors de la mise à niveau; cela peut être fait via Xcode et en suivant les étapes indiquées ici.
après avoir fait ça, xcode compile juste ok
Aucun de ces éléments n'a fonctionné pour moi
Vérifiez ceci: https://github.com/facebook/react-native/issues/18408#issuecomment -386696744
cela a résolu le problème pour moi.
mettez ceci dans la console -> xcrun -k --sdk iphoneos --show-sdk-path
si la réponse est
xcrun: _ erreur: le SDK "iphoneos" est introuvable
xcrun: erreur: le SDK "iphoneos" est introuvable
xcrun: erreur: impossible de rechercher l'élément 'Path' dans le SDK 'iphoneos'puis mettez ce sudo xcode-select --switch /Applications/Xcode.app
Puis réinstallez le pod
Cette réponse a fonctionné pour moi. En plus de toutes les choses mentionnées ci-dessus dans ce fil, j'avais besoin de rouvrir le terminal que mon groupeur de métro exécutait.
rétrograder à "react-native": "0.57.4",
que cela fonctionne à nouveau
rétrograder à
"react-native": "0.57.4",
que cela fonctionne à nouveau
Je ne pense pas que la mise à niveau vers cette version soit la meilleure façon de @miukki. Cette version (0.59) apporte un support 64 bits pour les applications Android et vous en avez besoin comme une exigence future pour publier des applications (info ici ).
Hé après avoir abordé toutes les solutions ci-dessus, j'ai attrapé une autre erreur
ld: avertissement: répertoire introuvable pour l'option '-F / Users / pumeo / Library / Developer / Xcode / DerivedData / GreenPlanet-cekcooliietupofcqlsnkupeolal / Build / Products / Debug-iphonesimulator / React'
ld: framework non trouvé React
clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)
quand j'ai inséré le post_install
n'importe qui peut aider s'il vous plaît?
J'utilise hackintosh
@ Pumeo1010 , restez sur le sujet.
Sur le sujet: si ce problème est clos, quelle est la résolution? J'ai tout essayé ci-dessus et je l'ai fait fonctionner d'une manière ou d'une autre (je ne sais pas ce qui a fait le truc). Maintenant, j'ai dû reconstruire et j'ai rencontré le même problème une fois de plus et quoi que j'essaie, je ne peux plus le faire fonctionner.
Mise à jour: enfin, il fonctionne à nouveau! Je ne suis pas tout à fait sûr, mais je pense que la suppression des données dérivées de Xcode, la suppression de Podfile.lock, la suppression / la réinstallation de pods-dir, le nettoyage du dossier de construction Xcode et un redémarrage du système ont fini par faire l'affaire.
J'essaye de mettre à niveau React Native presque deux jours de 0.57.8 à 0.59.9. J'ai essayé toutes les solutions ci-dessus ce commentaire mais j'ai toujours les mêmes erreurs. Symboles en double, en-têtes non trouvés, YGFloatOptional.cpp introuvable .... J'ai créé un nouveau projet React Native, puis copié mes fichiers de projet existants dans le nouveau projet et j'ai appliqué les différences à l'aide de rn-diff-purge . Encore une fois, de cette façon, j'ai eu de nombreuses erreurs de construction différentes et j'ai finalement abandonné! J'adore la v0.57.8
Donc, après avoir suivi la mise à niveau diff vers 59.4 (en utilisant rn-diff-purge ), j'ai toujours eu les mêmes problèmes que tout le monde ici (erreur
YGFloatOptional.cpp
d'abord, puis l'erreurfolly/Portability.h
). Cependant, aucune des solutions n'a fonctionné d'elle-même, c'est donc ce que j'ai fait pour résoudre les problèmes:# Clean caches/build folder/existing pods rm -rf node_modules rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ios/build rm -rf ios/Pods # Reinstall deps npm install
Puis mis à jour mon Podfile comme suit:
# Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'CityChallenge' do # Uncomment the next line if you're using Swift or would like to use dynamic frameworks # use_frameworks! pod 'React', :path => '../node_modules/react-native', subspecs: [ # Comment out any unneeded subspecs to reduce bundle size. 'Core', 'CxxBridge', # --> I was missing Cxxbridge here, may have resolved the issue for me as well 'DevSupport', 'RCTActionSheet', 'RCTAnimation', 'RCTBlob', 'RCTCameraRoll', 'RCTGeolocation', 'RCTImage', 'RCTNetwork', 'RCTPushNotification', 'RCTSettings', 'RCTTest', 'RCTText', 'RCTVibration', 'RCTWebSocket', 'RCTLinkingIOS' ] pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga' # Third party --> This bit is also new pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' end
Après cela, j'ai réinstallé les pods
cd ios pod install
Ce n'est qu'alors que le projet a recommencé à être construit avec succès
@Hless Salut. J'ai essayé votre solution. Voici mon Podfile
target '..' do
# this is very important to have!
rn_path = '../node_modules/react-native'
pod 'yoga', path: "#{rn_path}/ReactCommon/yoga/yoga.podspec"
pod 'React', path: rn_path, subspecs: [
'Core',
'CxxBridge',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'RNImageCropPicker', :path => '../node_modules/react-native-image-crop-picker'
pod 'AppCenter/Crashes', '~> 1.12.0'
pod 'AppCenter/Analytics', '~> 1.12.0'
pod 'AppCenterReactNativeShared', '~> 1.11.0'
pod 'Fabric'
pod 'Crashlytics'
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
platform :ios, '9.0'
pod 'react-native-webview', :path => '../node_modules/react-native-webview'
pod 'react-native-document-picker', :path => '../node_modules/react-native-document-picker'
pod 'react-native-video', :path => '../node_modules/react-native-video'
pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'
pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
end
end
Mais cette fois, la construction échoue en raison d'une erreur de symboles en double. J'ai trouvé cette solution et maintenant elle se construit avec succès. Mais maintenant, j'ai un autre problème. Une fois que j'exécute l'application, elle se bloque immédiatement. J'ai trouvé la raison de l'erreur dans la zone de débogage de Xcode et c'est
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTRootView reactTag]: unrecognized selector sent to instance 0x7fbf02c05530'
la solution à ce problème est l'opposé de l'autre solution. Quelle mauvaise histoire de mise à niveau. :(
Enfin, j'ai réussi à créer un projet iOS et à l'exécuter sur un simulateur sans aucune erreur après avoir travaillé dur sur la progression de la mise à niveau. J'ai d'abord appliqué les diffs à l'aide de rn-diff-purge, puis j'ai appliqué la solution @Hless à la fin, j'ai fait face à une erreur de symboles en double et en suivant les étapes de cette solution, je les ai corrigées également maintenant que le projet fonctionne correctement.
Résolu avec ce qui suit:
rm -rf node_modules
rm -rf ios/Pods
rm ios/Podfile.lock
rm -rf ~Library/Developer/Xcode/DerivedData
Ensuite, j'ai réinstallé mes dépendances (npm & pod) et cela a fonctionné :)
rm -rf ~ Bibliothèque / Developer / XCode / DerivedData
la ligne de droite sera: rm -rf ~/Library/Developer/Xcode/DerivedData
Chaque fois que je rencontre un problème d'épilation avec RN qui me donne un message d'erreur absurde, je pars à la recherche de solutions désespérées. La plupart du temps, la solution consiste à supprimer le cache, supprimer les données dérivées, rouvrir Xcode, effacer les dossiers de construction, etc. Au fil des ans, j'ai mis en place ce script bash que j'ai ajouté en tant que script npm dans mon package.json. Maintenant, ma première solution goto pour la plupart des problèmes est npm run clear
.
// package.json
{
"scripts": {
"clear": ". scripts/Clear.sh",
}
}
// scripts/Clear.sh
#!/bin/bash
echo "rm -rf ios/build..."
rm -rf ios/build
echo "rm -rf android/app/build..."
rm -rf android/app/build
echo "Removed all Xcode derived data..."
rm -rf ~/Library/Developer/Xcode/DerivedData
echo "rm -rf lib... (for Flow)"
rm -rf lib
echo "watchman watch-del-all..."
watchman watch-del-all
echo "rm -rf node_modules..."
rm -rf node_modules
echo "npm install..."
npm install
echo "rm -rf $TMPDIR/react-*..."
rm -rf $TMPDIR/react-*
echo "rm -rf $TMPDIR/haste-map-react-native-packager-*..."
rm -rf $TMPDIR/haste-map-react-native-packager-*
PS. Et cela a résolu ce problème pour moi aussi: D
juste pod install
a fonctionné pour moi
S'il vous plaît. rétrogradé Xcode 10.1
Un autre react-native link
m'a aidé. :(
React Native n'est pas durable, 100 résolutions sont proposées pour chaque bug rencontré. Un changement et tout le processus de construction, le passe-partout et la raison d'utiliser React Native s'effondrent. Comment les entreprises peuvent-elles vraiment ajouter ce processus de développement à un pipeline de produits? ridicule!!!!
Ils disent que ce sera mieux à partir de 0,59 ... j'espère qu'ils ont raison à ce sujet
@philipaarseth J'espère que vous avez mangé vos mots quand 0.60 est sorti 😆
J'ai déjà vu cela dans d'autres threads, mais l'exécution de ce qui suit a résolu le problème pour moi:
cd node_modules/react-native/scripts
./ios-install-third-party.sh
Je pensais que cela avait été corrigé dans la version 0.59 ou avant et je me souviens de l'avoir vu s'exécuter automatiquement dans certaines versions, mais il semble qu'il y ait encore des cas où il manque.
Cela vaut vraiment la peine d'être inclus dans la section de dépannage de votre projet, car ce n'est pas la première fois que je vois cela se produire.
Exécutez cette commande: $ conda disable
@jpudysz merci, cela fonctionne pour moi. mais pourquoi rn yoga build error a des relationshop avec folly / glog / doubleConversion?
mon journal d'erreurs est:
Les commandes suivantes ont généré des problèmes avec l'analyseur:
Analysez /Users/superqa/jenkins/workspace/xxxxx-xxxx-iOS-new/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64
Analyze Base / RCTModuleMethod.mm bras normal64
(2 commandes avec des problèmes d'analyseur)
Android fonctionne vraiment parfaitement, juste iOS ... :-(
Le seul travail prometteur pourrait être la rétrogradation de la version RN malheureusement
Cela devient assez difficile avec de nombreuses dépendances tierces.
dans mon cas, Xcode vient de faire une mise à jour automatique et a produit un tel problème.
ce que j'ai fait pour résoudre le problème était:
cd ios
rm -fr Pods
rm Podfile.lock
installation du pod
réinstaller les pods et Podfile a résolu mon problème
Supprimer les données dérivées
cd ios
supprimer les pods et Podfile.lock
installation du pod
J'ai fait toutes les étapes ci-dessus, j'ai fait fonctionner la construction et maintenant j'obtiens cette erreur. FWIW Je mets à niveau de Xcode 10.1 -> 11.1 ET je mets à niveau React native de 0.57.8 -> 0.59.9
dyld: Library not loaded: @rpath/XCTest.framework/XCTest
Referenced from: /Users/par/Library/Developer/CoreSimulator/Devices/2B68242E-D2AF-49A4-9AEA-C320820D8D2F/data/Containers/Bundle/Application/E665681B-C213-42C0-9A51-746B4CA17599/Kismet.app/Kismet
Reason: image not found
edit: J'ai supprimé RCTTest du podfile et c'était bien après ça.
Je voyais également l'erreur
#include <folly/Portability.h>
. Le problème dans mon cas était l'absence de sous-spécifications dans le fichier pod.Cela me convient parfaitement avec:
pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', # Include this for RN >= 0.47 'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43 'RCTText', 'RCTNetwork', 'RCTWebSocket', # needed for debugging 'RCTImage', 'RCTWebSocket', # Needed for debugging 'RCTAnimation', # Needed for FlatList and animations running on native UI thread # Add any other subspecs you want to use in your project ] pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga' # Third party deps podspec link pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
J'ai eu un problème pour installer glog, j'ai fini par avoir à émettre cette commande sudo xcode-select --switch /Applications/Xcode.app/
assez sûr parce que j'exécutais Xcode à partir d'un répertoire différent, puis je l'ai déplacé dans mon répertoire / Applications, et l'outillage était tout foiré .
@jenskuhrjorgensen votre commande rm
supprime tout $ TMPDIR à cause d'un espace que vous avez dedans.
@ jduffy7 C'est probablement un peu exagéré 😄 Thx, ça a été corrigé!
@jenskuhrjorgensen Merci !!!!!
Lancer pod update
fonctionné pour moi.
Toute mise à jour .. ?
Les solutions ci-dessus n'ont pas fonctionné, ce qui suit a aidé mon projet à se reconstruire.
cd ios
pod repo update
pod update
Après avoir exécuté ces commandes, j'ai pu construire sur xcode mais sans utiliser react-native run-ios
. J'ai ensuite exécuté ces commandes (merci https://github.com/facebook/react-native/issues/23886#issuecomment-509528212):
rm -rf ios/build
rm -rf ~/Library/Developer/Xcode/DerivedData
watchman watch-del-all
rm -rf node_modules
npm install
ce qui m'a aidé à construire à nouveau en utilisant react-native run-ios
.
essayez avec: https://react-native-community.github.io/upgrade-helper/
@khanguslee je le fais mais malheureusement ça ne va pas se construire
et j'ai cette erreur
* ÉCHEC DE CONSTRUCTION *
Les commandes de construction suivantes ont échoué:
PhaseScriptExecution [CP] Vérifiez les pods Manifest.lock /../ios/build/music/Build/Intermediates.noindex/music.build/Debug-iphonesimulator/music.build/Script-C5D676D55145145333E00AC9.sh
(1 échec)
Affichage de tous les messages
: -1: Le bac à sable n'est pas synchronisé avec le Podfile.lock. Exécutez 'pod install' ou mettez à jour votre installation CocoaPods.
Le bac à sable n'est pas synchronisé avec le Podfile.lock. Exécutez 'pod install' ou mettez à jour votre installation CocoaPods.
Une recherche rapide sur Google avec votre message d'erreur me donne une solution ici.
Commentaire le plus utile
J'ai eu le même problème ..., Chaque fois qu'il y a un problème avec les mises à niveau dans React Native si fatigué ...