Depois de atualizar para react-native 0,59 e tentar construir o aplicativo para iOS, recebo o seguinte erro:
Não foi possível encontrar o arquivo de entrada da compilação: '/app/node_modules/react-native/ReactCommon/yoga/yoga/YGFloatOptional.cpp'
O que é estranho para mim é que também não consigo encontrar este arquivo aqui no mestre atual: react-native/tree/master/ReactCommon/yoga/yoga
(apenas YGFloatOptional.h
)
Atualizamos um projeto de médio porte de 0,57,7 → 0,59.
O build deve funcionar perfeitamente como antes.
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
Acabei de reproduzir esse problema com o XCode: 10.1 e RN 0.59.0.
EDIT 1 : Eu poderia reproduzir com a ferramenta de construção XCode UI; mas está funcionando bem com react-native run-ios
(certifique-se de ter o cli 2.x mais recente).
EDIT 2 : Consegui fazer funcionar com o XCode 10.1 habilitando a compilação legada . Relacionado a # 19573
Hmm, acabei de atualizar de 0.58.4
para 0.59
, limpei os diretórios de compilação no XCode e consegui executar a depuração e arquivar o aplicativo. Estou usando o XCode 10.1.
Minha estratégia de atualização:
Quer saber se tudo poderia funcionar para mim porque eu estava trabalhando 0.58.4
e apenas apliquei coisas novas em cima dele?
EDITAR: Também executei npm ci
para remover meu node_modules
(apenas para ter certeza) e ainda consegui criar o aplicativo no XCode 🤔
EDIT2: E eu não tenho YGFloatOptional.cpp
:
Estou tendo o mesmo problema ao atualizar de 0.57.8 -> 0.59.1.
Olhando para um init 0.59.1 novo, não há nenhum arquivo YGFloatOptional.cpp
.
Adicione estas linhas ao seu 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'
e corra
pod install
@jpudysz Sim, funcionou depois de migrar para cocoapod e abrir o projeto XCode com o arquivo .xcworkspace
.
Tive de react-native unlink
e react-native link
bibliotecas em ponte para que usassem Podfile
.
A vinculação legada (sem cocoapod) deve ser descontinuada?
@jpudysz Funcionou para mim também. Certamente esta não pode ser a solução adequada, certo? Isso incha seriamente o projeto. Pods/boost-for-react-native
tem 160,8 MB.
Edit: Ok, seriamente estranho, eu removi os 3 pods, executei o Clean no Xcode e tentei construir. Desta vez, não recebi um erro ao compilar o Yoga.
Obrigado @jpudysz . Seguindo sua solução, recebo o seguinte erro:
Arquivo 'folly / Portability.h' não encontrado em JSBundleType.h
Alguém sabe o que está acontecendo?
Muito Obrigado.
Depois de tentar o que parecia ser quase tudo, RN standard upgrade, git upgrade tool, aplicando diff patch, acabei recriando um projeto completamente novo e fazendo o trabalho extremamente tedioso de reconstruir a base de código. Eles dizem que vai ser melhor a partir de 0,59 .. espero que eles estejam certos sobre isso
Acabei de atualizar de 0.59.0 para 0.59.1 e funcionou para mim
resolveu o problema do Yoga
Eu atualizei também, mas sem sorte até agora.
Eu tinha exatamente o mesmo problema. O bom e velho rm -rf node_modules && npm i
e limpar as pastas de compilação fizeram isso por mim
Depois de usar npm audit fix
, meu 'react-native' é atualizado automaticamente para a versão 0.59 e eu não consigo construir meu projeto.
Solução : Faça downgrade da versão para diminuir uma.
npm install react-native@<version>
exemplo: npm install [email protected]
Eu tentei atualizar do 0.58.4 manualmente (seguindo as alterações do rn-diff-purge), mas também estou enfrentando esse problema com o RN 0.59.0 ou 0.59.1
Sim, tínhamos YGFloatOptional.cpp
até 0,58 https://github.com/facebook/react-native/blob/0.58-stable/ReactCommon/yoga/yoga/YGFloatOptional.cpp
O que diabos está acontecendo aqui?
Editar
A solução de @jpudysz me leva a outro arquivo não encontrado, erro 'folly/Portability.h' file not found
Tive o mesmo problema com 'folly / Portability.h' após atualizar de 0.58.4 para 0.59.0 e 0.59.1
O que é estranho, é que o XCode informa depois de compilar que Portability.h não foi encontrado, mas no editor, ele obtém todos os tipos definidos no cabeçalho ...
O arquivo que não consegue compilar é RCTJavasScriptLoader.mm na biblioteca 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.
Eu tenho o mesmo problema ..., toda vez que há algum problema com upgrades no reagir nativo tão cansado ..
O arquivo parece ter sido excluído do projeto de ioga desde 13 de dezembro de 2018 e "embutido" em yoga/YGFloatOptional.h
: https://github.com/facebook/yoga/commit/96d93f29826257ff6e9bb6c19211adb423029c29
Meu palpite é que a referência a ReactCommon/yoga/yoga/YGFloatOptional.cpp
não é mais necessária.
Remover o cache e reconstruir o projeto não funcionou para mim imediatamente.
Tentei atualizar para o React Native 0.59.1 e reconstruir o projeto. Também não funcionou.
No entanto, ENTÃO, limpar meus node_modules, armazenar em cache e criar pastas e reconstruir o projeto funcionou, usando:
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
Então, parece que está relacionado ao cache.
Atualizar para React Native 0.59.1 talvez não seja necessário, acho que uma parte do script funcionou para mim.
Espero que isso ajude outras pessoas!
Desisti, apaguei todos os links para node_modules do arquivo Pods, em seguida, apaguei node_modules e o diretório de compilação e reinstalei tudo, e finalmente compilado com sucesso novamente.
Isso é tão exaustivo.
@jvandenaardweg Acho que você está certo ao dizer que é um problema de cache.
Para mim, o que funcionou foi excluir a pasta de dados derivados do meu Xcode e reiniciar o Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData
Assim que reiniciei, tentei construir e ela falhou e me pediu para fechar e reabrir meu espaço de trabalho xcode. Depois de fazer isso, tentei construir novamente e funcionou.
Certo pessoal, acho que esse problema geralmente é sobre problemas de cache de construção com a atualização (lendo as postagens) - então, se vocês tiverem problemas, acho que geralmente podem ser corrigidos:
rm -rf node_modules; rm -rf Pods
depois reinstalereact-native upgrade x.y.z
Isso é praticamente o mesmo para todas as versões, aposto. Eu talvez tentasse criar um problema no react-native-cli sobre como melhorar isso e talvez executar alguns dos comandos em si.
Alguém tem uma etapa de reprodução específica para isso?
Eu também estava vendo o erro #include <folly/Portability.h>
. O problema no meu caso estava faltando subespecificações no podfile.
Ele funciona bem para mim com:
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 o react-native 0.57.8 e 0.58.5, há uma grande mudança que foi adicionada ao projeto Xcode é que você tem que adicionar JavaScriptCore.Framework ao Linked FrameWorks and Libraries" - a partir daqui
MAIS
@jvandenaardweg resposta:
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
Fez o trabalho para mim.
É realmente frustrante, como outros disseram, precisar adivinhar o que está quebrando um código que estava funcionando antes.
Também no Android, tive que atualizar a versão Build Gradle para funcionar novamente.
precisando adivinhar
Sabemos que a atualização tem sido uma dor de longa data para a comunidade, portanto, a partir da v0.59, introduzimos um novo fluxo por meio da nova CLI .
Dito isso, estamos escrevendo as mudanças mais recentes no changelog e na guia de lançamentos, então não há necessidade de adivinhação real.
De qualquer forma, encerrando, já que isso está claramente relacionado à atualização - também, em geral, você pode usar o rn-diff-repo para verificar todos os passos necessários durante a atualização.
Olá,
Depois de muito pesquisar, consegui entender por que tinha esse problema. Limpar o cache e tudo mais não corrigiu o problema para mim e eu ainda estava tendo o #include
Estava compilando bem para o projeto React em meu projeto, mas falhando ao compilar para os pods que tenho.
Mesmo depois de adicionar os pods Folly / glog / DoubleConversion, eu ainda estava tendo o problema.
Em seguida, alterei o arquivo React.podspecs para editar a subespecificação do núcleo
Depois de adicionar a referência Folly ao pod_target_xcconfig, ele estava compilando sem nenhum outro problema.
ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
E aqui está o podfile completo que tenho
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
Estou na mesma situação. Eu atualizei de 0,57 para 0,59 seguindo o diff nativo e tudo funcionou perfeitamente até que eu atualizei 0,58,6 para 0,59.
Tentei de tudo neste tópico sem sorte, o erro do arquivo 'folly / Portability.h' não encontrado simplesmente não quer desaparecer.
Reverter para 0.58.6 funciona perfeitamente, mas no momento em que atualizo para 0.59.0 ou 0.59.1, o erro aparece.
Edit: encontrei o arquivo em node_modules / react-native / third-party / folly-2018.10.22.00 / folly / Portability.h, mas ainda diz que não está lá.
Percebi que minha postagem ficou muito confusa ... Desculpe por isso. Aqui está o arquivo diff que deve torná-lo mais explícito para pessoas que têm problemas com 'folly / Portability.h'
Tente fazer a seguinte modificação no arquivo nodes_modules / react-native / React.podspec, pelo menos no meu caso funcionou! Agora posso compilar meu projeto e iniciá-lo sem problemas.
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
Fazendo o que @aaska disse mais adicionando
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'
para o Podfile e a instalação do pod funcionou para mim.
Depois de usar as dicas @jpudysz , @jvandenaardweg e @johnryan , ele também foi
Obrigado rapazes!
@ th3ac3 que resolveu o problema para mim. Obrigado!
nenhum deles funcionou
@jvandenaardweg Acho que você está certo ao dizer que é um problema de cache.
Para mim, o que funcionou foi excluir a pasta de dados derivados do meu Xcode e reiniciar o Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData
Assim que reiniciei, tentei construir e ela falhou e me pediu para fechar e reabrir meu espaço de trabalho xcode. Depois de fazer isso, tentei construir novamente e funcionou.
Obrigado, eu fiz isso e funcionou novamente.
Então, depois de seguir a atualização de diff para 59,4 (usando rn-diff-purge ), ainda tive os mesmos problemas que todos aqui (erro YGFloatOptional.cpp
primeiro, e depois o erro folly/Portability.h
). No entanto, nenhuma das soluções funcionou sozinha, então isso é o que fiz para resolver os problemas:
# 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
Em seguida, atualizei meu Podfile para o seguinte:
# 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
Depois disso, reinstalei os pods
cd ios
pod install
Só então o projeto começou a ser construído com sucesso novamente
No meu caso, simplesmente esqueci de fazer o passo:
se você for um desenvolvedor iOS, precisará vincular manualmente JavaScriptCore.framework ao atualizar; Isso pode ser feito via Xcode e seguindo as etapas mostradas aqui.
depois que eu fiz isso, o xcode apenas compila ok
Nenhuma das opções acima funcionou para mim
verifique isso: https://github.com/facebook/react-native/issues/18408#issuecomment -386696744
resolveu o problema para mim.
coloque isso no console -> xcrun -k --sdk iphoneos --show-sdk-path
se a resposta for
xcrun: _ erro: SDK "iphoneos" não pode ser localizado
xcrun: erro: SDK "iphoneos" não pode ser localizado
xcrun: erro: não foi possível pesquisar o item 'Caminho' no SDK 'iphoneos'em seguida, coloque este sudo xcode-select --switch /Applications/Xcode.app
Em seguida, instale o pod novamente
Essa resposta funcionou para mim. Além de todas as coisas mencionadas acima neste tópico, eu precisava reabrir o terminal que meu bundler metro estava executando.
rebaixe para "react-native": "0.57.4",
e funcionará novamente
rebaixe para
"react-native": "0.57.4",
e funcionará novamente
Não acho que fazer downgrade para esta versão seja a melhor maneira @miukki. Esta versão (0,59) traz suporte de 64 bits para aplicativos Android e você precisa disso como um requisito futuro para publicar aplicativos (informações aqui ).
Ei, depois de abordar todas as soluções acima, peguei outro erro
ld: aviso: diretório não encontrado para a opção '-F / Users / pumeo / Library / Developer / Xcode / DerivedData / GreenPlanet-cekcooliietupofcqlsnkupeolal / Build / Products / Debug-iphonesimulator / React'
ld: framework não encontrado React
clang: erro: o comando do linker falhou com o código de saída 1 (use -v para ver a chamada)
quando eu inseri o post_install
alguém pode ajudar por favor?
Estou usando hackintosh
@ Pumeo1010 , mantenha-se no tópico.
No tópico: se esse problema for fechado, qual é a resolução? Eu tentei tudo acima e fiz funcionar de alguma forma (não sei o que funcionou). Agora eu tive que reconstruir e me deparei com o mesmo problema mais uma vez e tudo o que eu tento não consegue mais fazer funcionar.
Atualização: finalmente consegui funcionar de novo! Não tenho certeza, mas acho que remover os dados derivados do Xcode, remover Podfile.lock, remover / reinstalar o pods-dir, limpar a pasta de compilação do Xcode e reiniciar o sistema acabou resolvendo o problema.
Estou tentando atualizar o React Native quase dois dias de 0.57.8 para 0.59.9. Eu tentei todas as soluções acima deste comentário, mas ainda obtive os mesmos erros. Símbolos duplicados, cabeçalhos não encontrados, YGFloatOptional.cpp não encontrado .... Criei um novo projeto React Native e copiei meus arquivos de projeto existentes para o novo projeto e apliquei as diferenças com a ajuda de rn-diff-purge . Novamente dessa forma, eu obtive muitos erros de compilação diferentes e finalmente desisti! Eu amo v0.57.8
Então, depois de seguir a atualização de diff para 59,4 (usando rn-diff-purge ), ainda tive os mesmos problemas que todos aqui (erro
YGFloatOptional.cpp
primeiro, e depois o errofolly/Portability.h
). No entanto, nenhuma das soluções funcionou sozinha, então isso é o que fiz para resolver os problemas:# 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
Em seguida, atualizei meu Podfile para o seguinte:
# 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
Depois disso, reinstalei os pods
cd ios pod install
Só então o projeto começou a ser construído com sucesso novamente
@Hless Hi. Tentei sua solução. Aqui está o meu 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
Mas desta vez a construção falha devido ao erro de símbolos duplicados. Eu encontrei essa solução e agora ela foi construída com sucesso. Mas agora tenho outro problema. Depois de executar o aplicativo, ele trava imediatamente. Eu encontrei o motivo do erro na área de depuração do Xcode e é
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTRootView reactTag]: unrecognized selector sent to instance 0x7fbf02c05530'
a solução para este problema é o oposto da outra solução. Que história de atualização ruim. :(
Finalmente eu construí com sucesso o projeto iOS e o executei no simulador sem erros após trabalhar duro no progresso da atualização. Primeiro apliquei diffs com a ajuda de rn-diff-purge depois apliquei a solução nesta solução eu os consertei e agora o projeto está funcionando corretamente.
Resolvido com o seguinte:
rm -rf node_modules
rm -rf ios/Pods
rm ios/Podfile.lock
rm -rf ~Library/Developer/Xcode/DerivedData
Então eu reinstalei minhas dependências (npm e pod) e funcionou :)
rm -rf ~ Library / Developer / XCode / DerivedData
a linha certa será: rm -rf ~/Library/Developer/Xcode/DerivedData
Toda vez que encontro um problema complicado com RN me dando alguma mensagem de erro sem sentido, eu saio em uma busca desesperada no github por soluções. Na maioria das vezes, a solução é excluir o cache, excluir os dados derivados, reabrir o Xcode, limpar as pastas de construção etc. Ao longo dos anos, montei este script bash que adicionei como um script npm em meu package.json. Agora, minha primeira solução de ir para a maioria dos problemas é 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. E também resolveu este problema para mim: D
apenas pod install
funcionou para mim
por favor. Xcode 10.1 rebaixado
Outro react-native link
me ajudou. :(
React Native é insustentável, 100 resoluções oferecidas para cada bug que alguém encontra. Uma mudança e todo o processo de construção, clichê e razão para usar o react native se desintegram. Como as empresas podem realmente adicionar esse processo de desenvolvimento a um pipeline de produtos. ridículo!!!!
Eles dizem que vai ser melhor a partir de 0,59 .. espero que eles estejam certos sobre isso
@philipaarseth Espero que você tenha
Já vi isso em outros tópicos antes, mas executar o seguinte resolveu o problema para mim:
cd node_modules/react-native/scripts
./ios-install-third-party.sh
Pensei que isso tivesse sido corrigido no 0.59 ou antes e lembro-me de vê-lo rodando automaticamente em algumas compilações, mas parece que ainda há casos em que está faltando.
Definitivamente, vale a pena incluir na seção de solução de problemas do seu projeto, já que esta não é a primeira vez que vejo isso acontecendo.
Execute este comando: $ conda deactivate
@jpudysz obrigado, funciona para mim. mas por que erro de compilação de rn ioga tem relacionamento com folly / glog / doubleConversion?
meu log de erros é:
Os seguintes comandos produziram problemas de analisador:
Analise /Users/superqa/jenkins/workspace/xxxxx-xxxx-iOS-new/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64
Analisar Base / RCTModuleMethod.mm normal arm64
(2 comandos com problemas de analisador)
O Android funciona perfeitamente, apenas iOS ... :-(
A única solução promissora pode ser o downgrade da versão RN, infelizmente
Fica bastante difícil quando há muitas dependências de terceiros.
no meu caso, o Xcode apenas fez uma atualização automática e produziu esse problema.
o que fiz para resolver o problema foi:
cd ios
rm -fr Pods
rm Podfile.lock
pod instalar
reinstalar os pods e o Podfile resolveu meu problema
Excluir dados derivados
cd ios
remova Pods e Podfile.lock
pod instalar
Eu fiz todas as etapas acima, fiz a compilação funcionar e agora recebo este erro. FWIW Estou atualizando do Xcode 10.1 -> 11.1 E estou atualizando o react nativo 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
editar: Removi o RCTTest do podfile e ficou bom depois disso.
Eu também estava vendo o erro
#include <folly/Portability.h>
. O problema no meu caso estava faltando subespecificações no podfile.Ele funciona bem para mim com:
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'
Eu tive um problema para instalar o glog, acabei tendo que emitir este comando sudo xcode-select --switch /Applications/Xcode.app/
certeza porque eu estava executando o Xcode de um diretório diferente, então o movi para o meu diretório / Applications, e o conjunto de ferramentas estava todo confuso .
@jenskuhrjorgensen seu rm
está removendo todo o $ TMPDIR por causa de um espaço que você tem nele.
@ jduffy7 Isso é provavelmente um pouco exagero 😄 Thx, foi corrigido!
@jenskuhrjorgensen Obrigado !!!!!
Executar pod update
funcionou para mim.
Qualquer atualização .. ?
As soluções acima não funcionaram, as seguintes ajudaram meu projeto a construir novamente.
cd ios
pod repo update
pod update
Depois de executar esses comandos, fui capaz de construir no xcode, mas não usando react-native run-ios
. Em seguida, executei esses comandos (obrigado 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
que me ajudou a construir usando react-native run-ios
novamente.
@khanguslee eu faço isso, mas infelizmente não vai construir
e obteve este erro
* FALHA NA CONSTRUÇÃO *
Os seguintes comandos de compilação falharam:
PhaseScriptExecution [CP] Check Pods Manifest.lock /../ios/build/music/Build/Intermediates.noindex/music.build/Debug-iphonesimulator/music.build/Script-C5D676D55145145333E00AC9.sh
(1 falha)
Mostrando todas as mensagens
: -1: O sandbox não está sincronizado com o Podfile.lock. Execute 'pod install' ou atualize a instalação do CocoaPods.
O sandbox não está sincronizado com o Podfile.lock. Execute 'pod install' ou atualize a instalação do CocoaPods.
Uma rápida pesquisa no Google com sua mensagem de erro me dá uma solução aqui.
Comentários muito úteis
Eu tenho o mesmo problema ..., toda vez que há algum problema com upgrades no reagir nativo tão cansado ..