React-native: Setelah memutakhirkan ke react-native 0.59 iOS build gagal

Dibuat pada 13 Mar 2019  ·  69Komentar  ·  Sumber: facebook/react-native

🐛 Laporan Bug

Setelah memperbarui ke react-native 0.59 dan mencoba membangun aplikasi untuk iOS, saya mendapatkan kesalahan berikut:

File input build tidak dapat ditemukan: '/app/node_modules/react-native/ReactCommon/yoga/yoga/YGFloatOptional.cpp'

Yang aneh bagi saya adalah, saya tidak dapat menemukan file ini di sini baik di master saat ini: react-native/tree/master/ReactCommon/yoga/yoga (hanya YGFloatOptional.h )

Untuk Mereproduksi

Kami meningkatkan proyek berukuran sedang dari 0,57,7 → 0,59.

Perilaku yang Diharapkan

Build harus berjalan dengan baik seperti sebelumnya.

Lingkungan Hidup

  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
Bug Follow Up iOS Locked

Komentar yang paling membantu

Saya mendapat masalah yang sama ..., Setiap kali ada masalah dengan peningkatan di react native jadi capek ..

Semua 69 komentar

Saya baru saja mereproduksi masalah ini dengan XCode: 10.1 dan RN 0.59.0.

EDIT 1 : Saya dapat mereproduksi dengan alat build XCode UI; tetapi berfungsi dengan baik dengan react-native run-ios (pastikan untuk memiliki 2.x cli terbaru).
EDIT 2 : Saya berhasil membuatnya berfungsi dengan XCode 10.1 dengan mengaktifkan versi lama . Terkait dengan # 19573

Hmm, saya baru saja memutakhirkan dari 0.58.4 menjadi 0.59 , membersihkan direktori build di XCode dan saya dapat menjalankan debug dan mengarsipkan aplikasi. Saya menggunakan XCode 10.1.
Strategi peningkatan saya:

  1. Dependensi gabungan menurut versi stabil terbaru.
  2. Pelajari setiap perbandingan di https://github.com/react-native-community/rn-diff-purge dan terapkan secara manual.

Bertanya-tanya apakah semuanya mungkin berhasil untuk saya karena saya telah mengerjakan 0.58.4 dan baru saja menerapkan hal-hal baru di atasnya?

EDIT: Saya juga menjalankan npm ci untuk menghapus node_modules (hanya untuk memastikan) dan saya masih dapat membangun aplikasi dari XCode 🤔

EDIT2: Dan saya tidak punya YGFloatOptional.cpp :
Screen Shot 2019-03-13 at 12 55 51

Saya mendapatkan masalah yang sama saat meningkatkan dari 0.57.8 -> 0.59.1.
Melihat init 0.59.1 baru tidak ada file YGFloatOptional.cpp .

Tambahkan baris berikut ke Podfile Anda:

  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'

dan lari

pod install

@jpudysz Ya itu berhasil setelah bermigrasi ke cocoapod dan membuka proyek .xcworkspace .
Saya harus react-native unlink dan react-native link perpustakaan yang dijembatani sehingga mereka menggunakan Podfile sebagai gantinya.

Haruskah penautan legacy (no-cocoapod) dihentikan?

@jpudysz Bekerja untuk saya juga. Tentunya ini tidak bisa menjadi solusi yang tepat bukan? Ini benar-benar membengkak proyek. Pods/boost-for-react-native adalah 160,8MB.

Sunting: Ok sangat aneh, saya menghapus 3 polong itu, menjalankan Bersihkan di Xcode dan mencoba membangun. Kali ini saya tidak mendapatkan error saat menyusun Yoga.

Terima kasih @jpudysz . Mengikuti solusi Anda, saya kemudian mendapatkan kesalahan berikut:
File 'folly / Portability.h' tidak ditemukan di JSBundleType.h

Apakah ada yang tahu apa yang terjadi?

Terimakasih banyak.

Setelah mencoba apa yang terasa seperti hampir semuanya, peningkatan standar RN, alat peningkatan git, menerapkan patch diff, saya akhirnya membuat ulang proyek yang benar-benar baru dan melakukan pekerjaan yang sangat membosankan untuk membangun kembali basis kode. Mereka bilang akan lebih baik dari 0,59 ke .. semoga mereka benar tentang itu

Saya baru saja meningkatkan dari 0,59,0 menjadi 0,59.1 dan itu berhasil untuk saya
menyelesaikan masalah Yoga

Saya meningkatkan juga tetapi sejauh ini tidak berhasil.

Saya memiliki masalah yang sama persis. rm -rf node_modules && npm i dan membersihkan folder build berhasil untuk saya

Setelah menggunakan npm audit fix , 'react-native' saya ditingkatkan secara otomatis ke versi 0.59 dan saya tidak dapat tidak membangun proyek saya.
Solusi : Turunkan versi ke versi yang lebih rendah.
npm install react-native@<version>
contoh: npm install [email protected]

Saya sudah mencoba memperbarui dari 0.58.4 secara manual (mengikuti perubahan rn-diff-purge) tetapi saya juga menghadapi masalah ini dengan RN 0.59.0 atau 0.59.1

Ya, kami memiliki YGFloatOptional.cpp hingga 0,58 https://github.com/facebook/react-native/blob/0.58-stable/ReactCommon/yoga/yoga/YGFloatOptional.cpp

Apa yang sebenarnya terjadi disini?

Edit
Solusi @jpudysz membawa saya ke file lain yang tidak ditemukan kesalahan 'folly/Portability.h' file not found

Punya masalah yang sama dengan 'folly / Portability.h' setelah meningkatkan dari 0.58.4 menjadi 0.59.0 dan 0.59.1

Yang aneh, adalah XCode menyatakan setelah kompilasi bahwa Portability.h tidak ditemukan, tetapi di editor, ia mendapatkan semua jenis yang ditentukan di header ...

image

File yang gagal dikompilasi adalah RCTJavasScriptLoader.mm di perpustakaan 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.

Saya mendapat masalah yang sama ..., Setiap kali ada masalah dengan peningkatan di react native jadi capek ..

File tersebut tampaknya telah dihapus dari proyek yoga sejak 13 Des 2018 dan "dimasukkan" ke dalam yoga/YGFloatOptional.h : https://github.com/facebook/yoga/commit/96d93f29826257ff6e9bb6c19211adb423029c29

Dugaan saya adalah referensi ke ReactCommon/yoga/yoga/YGFloatOptional.cpp tidak diperlukan lagi.

Menghapus cache dan membangun kembali proyek tidak langsung berhasil untuk saya.

Jadi saya mencoba meningkatkan ke React Native 0.59.1 kemudian membangun kembali proyek tersebut. Juga tidak berhasil.

Namun, KEMUDIAN membersihkan node_modules saya, cache dan membangun folder dan membangun kembali proyek, berhasil, menggunakan:

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

Jadi, sepertinya cache terkait.

Mengupgrade ke React Native 0.59.1 mungkin tidak diperlukan, saya rasa sebagian dari skrip melakukan triknya untuk saya.

Semoga ini bisa membantu orang lain!

Saya menyerah, saya menghapus semua tautan ke node_modules dari file Pods kemudian menghapus node_modules dan membangun direktori dan menginstal ulang apa pun kemudian akhirnya berhasil dibangun lagi.

Ini sangat melelahkan.

@jvandenaardweg Saya rasa Anda benar bahwa ini adalah masalah cache.

Bagi saya yang berhasil adalah menghapus folder data turunan Xcode saya dan memulai ulang Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

Setelah saya memulai ulang, saya mencoba membangun dan gagal dan meminta saya untuk menutup dan membuka kembali ruang kerja xcode saya. Setelah saya melakukannya, saya mencoba membangunnya lagi dan berhasil.

Baiklah teman-teman, saya pikir masalah ini umumnya tentang membangun masalah cache dari peningkatan (dari membaca posting) - jadi jika Anda memiliki masalah, saya pikir itu umumnya dapat diperbaiki dengan:

  • Membersihkan Data Berasal di Xcode
  • rm -rf node_modules; rm -rf Pods lalu instal ulang
  • Menggunakan react-native upgrade x.y.z

Ini hampir sama untuk setiap versi, saya yakin. Saya mungkin akan mempertimbangkan untuk membuat masalah pada react-native-cli tentang meningkatkan ini dan mungkin menjalankan beberapa perintah itu sendiri.

Apakah ada yang punya langkah reproduksi khusus untuk ini?

Saya juga melihat kesalahan #include <folly/Portability.h> . Masalah dalam kasus saya adalah kehilangan subspec di podfile.

Itu membangun baik untuk saya dengan:

  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'

"Antara react-native 0.57.8 dan 0.58.5 ada satu perubahan besar yang ditambahkan dalam proyek Xcode adalah Anda harus menambahkan JavaScriptCore.Framework ke Linked FrameWorks and Libraries" - dari sini

PLUS

@jvandenaardweg jawab:

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

Berhasil untuk saya.

Ini benar-benar membuat frustrasi seperti yang dikatakan orang lain, perlu menebak apa yang memecahkan kode yang berfungsi sebelumnya.

Juga di Android saya harus mengupgrade versi Build Gradle agar berfungsi kembali.

perlu menebak

Kami tahu bahwa peningkatan versi telah menjadi masalah yang bertahan lama bagi komunitas, jadi mulai v0.59 kami telah memperkenalkan aliran baru melalui CLI baru .

Yang mengatakan kami telah menulis perubahan yang melanggar di changelog dan di tab rilis sehingga tidak perlu menebak-nebak.

Bagaimanapun, menutup karena ini jelas terkait dengan peningkatan - juga, secara umum Anda dapat menggunakan rn-diff-repo untuk memeriksa semua langkah yang diperlukan saat meningkatkan.

Halo,

Setelah banyak menggali, saya berhasil mengerti mengapa saya mendapatkan masalah itu. Membersihkan cache dan semuanya tidak memperbaiki masalah bagi saya dan saya masih mengalami #include.

Kompilasi baik-baik saja untuk proyek React di bawah proyek saya, tetapi gagal untuk mengkompilasi Pod yang saya miliki.

Bahkan setelah menambahkan pod Folly / glog / DoubleConversion, saya masih mengalami masalah.

Saya kemudian mengubah file React.podspecs untuk mengedit subspec Inti

Setelah menambahkan referensi Folly ke pod_target_xcconfig, itu dikompilasi tanpa masalah lain.

ss.pod_target_xcconfig  = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"  \"$(PODS_ROOT)/Folly\"" }

Dan inilah podfile lengkap yang saya miliki

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

Saya dalam situasi yang sama. Saya telah meningkatkan dari 0,57 menjadi 0,59 mengikuti react native diff dan semuanya bekerja dengan sempurna sampai saya meningkatkan 0,58,6 menjadi 0,59.

Saya telah mencoba semua yang ada di utas ini tetapi tidak berhasil, file 'folly / Portability.h' tidak ditemukan kesalahan tidak mau hilang.

Mengembalikan ke 0.58.6 berfungsi dengan sempurna tetapi saat saya memperbarui ke 0.59.0 atau 0.59.1 kesalahan muncul.

Sunting: Saya menemukan file di node_modules / react-native / third-party / folly-2018.10.22.00 / folly / Portability.h tetapi masih mengatakan itu tidak ada.

Saya menyadari bahwa posting saya sangat tidak jelas ... Maaf tentang itu. Berikut adalah file diff yang seharusnya membuatnya lebih eksplisit untuk orang-orang yang memiliki masalah dengan 'folly / Portability.h'

Coba buat modifikasi berikut ke file node_modules / react-native / React.podspec, setidaknya dalam kasus saya itu berhasil! Sekarang saya dapat menyusun proyek saya dan meluncurkannya tanpa masalah.

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

Melakukan apa yang dikatakan @aaska plus menambahkan
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'

ke Podfile dan pod menginstalnya bekerja untuk saya.

Setelah menggunakan tips @jpudysz , @jvandenaardweg dan @johnryan , itu juga untuk saya.
Terima kasih teman-teman!

@ th3ac3 yang memecahkan masalah untuk saya. Terima kasih!

tidak satupun dari mereka berhasil

@jvandenaardweg Saya rasa Anda benar bahwa ini adalah masalah cache.

Bagi saya yang berhasil adalah menghapus folder data turunan Xcode saya dan memulai ulang Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

Setelah saya memulai ulang, saya mencoba membangun dan gagal dan meminta saya untuk menutup dan membuka kembali ruang kerja xcode saya. Setelah saya melakukannya, saya mencoba membangunnya lagi dan berhasil.

Terima kasih, saya melakukannya dan berhasil lagi.

Jadi setelah mengikuti peningkatan diff ke 59.4 (menggunakan rn-diff-purge ), saya masih memiliki masalah yang sama seperti semua orang di sini (kesalahan YGFloatOptional.cpp pertama, dan kemudian kesalahan folly/Portability.h ). Namun, tidak ada solusi yang berfungsi dengan sendirinya, jadi inilah yang saya lakukan untuk menyelesaikan masalah:

# 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

Kemudian perbarui Podfile saya menjadi berikut:

# 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

Setelah itu saya menginstal ulang pod

cd ios
pod install

Baru kemudian proyek mulai berhasil dibangun lagi

Dalam kasus saya, saya lupa melakukan langkah:

jika Anda seorang pengembang iOS, Anda harus menautkan JavaScriptCore.framework secara manual saat meningkatkan; ini dapat dilakukan melalui Xcode, dan mengikuti langkah-langkah yang ditunjukkan di sini.

contoh

setelah saya melakukan itu, xcode hanya mengkompilasi ok

Semua hal di atas tidak berhasil untuk saya

lihat ini: https://github.com/facebook/react-native/issues/18408#issuecomment -386696744
itu memecahkan masalah untuk saya.

letakkan ini di konsol -> xcrun -k --sdk iphoneos --show-sdk-path
jika jawabannya adalah
xcrun: _ error: SDK "iphoneos" tidak dapat ditemukan
xcrun: error: SDK "iphoneos" tidak dapat ditemukan
xcrun: error: tidak dapat mencari item 'Path' di SDK 'iphoneos'

kemudian letakkan sudo xcode-select --switch /Applications/Xcode.app ini

Kemudian instal pod lagi

Jawaban ini berhasil untuk saya. Di atas semua hal yang disebutkan di atas di utas ini, saya perlu membuka kembali terminal yang menjalankan bundler metro saya.

turunkan ke "react-native": "0.57.4", daripada berfungsi lagi

turunkan ke "react-native": "0.57.4", daripada berfungsi lagi

Menurut saya, menurunkan versi ke versi ini adalah cara terbaik @miukki. Versi ini (0,59) menghadirkan dukungan 64-bit untuk aplikasi Android dan Anda membutuhkannya sebagai persyaratan masa depan untuk menerbitkan aplikasi (info di sini ).

Hei, setelah mendekati semua solusi di atas, saya menemukan kesalahan lain

ld: peringatan: direktori tidak ditemukan untuk opsi '-F / Users / pumeo / Library / Developer / Xcode / DerivedData / GreenPlanet-cekcooliietupofcqlsnkupeolal / Build / Products / Debug-iphonesimulator / React'
ld: framework tidak ditemukan React
clang: error: perintah linker gagal dengan kode keluar 1 (gunakan -v untuk melihat permintaan)

ketika saya memasukkan post_install

ada yang bisa membantu tolong?
Saya menggunakan hackintosh

@ Pumeo1010 , harap tetap pada topik.

Tentang topik: Jika masalah ini ditutup, apa solusinya? Saya telah mencoba semua hal di atas dan entah bagaimana berhasil (tidak tahu apa triknya). Sekarang saya harus membangun kembali dan mengalami masalah yang sama sekali lagi dan apa pun yang saya coba tidak dapat membuatnya berfungsi lagi.

Pembaruan: akhirnya berfungsi lagi! Saya tidak sepenuhnya yakin tetapi saya pikir menghapus data turunan Xcode, menghapus Podfile.lock, menghapus / menginstal ulang pods-dir, membersihkan folder build Xcode dan reboot sistem akhirnya melakukan trik.

Saya mencoba mengupgrade React Native hampir dua hari dari 0.57.8 menjadi 0.59.9. Saya telah mencoba semua solusi di atas komentar ini tetapi masih mendapat kesalahan yang sama. Simbol duplikat, tajuk tidak ditemukan, YGFloatOptional.cpp tidak ditemukan .... Saya membuat proyek React Native baru dan kemudian menyalin file proyek saya yang ada ke proyek baru dan saya menerapkan perbedaannya dengan bantuan rn-diff-purge . Sekali lagi dengan cara ini juga saya mendapat banyak kesalahan pembuatan yang berbeda dan akhirnya saya menyerah! Saya suka v0.57.8

Jadi setelah mengikuti peningkatan diff ke 59.4 (menggunakan rn-diff-purge ), saya masih memiliki masalah yang sama seperti semua orang di sini (kesalahan YGFloatOptional.cpp pertama, dan kemudian kesalahan folly/Portability.h ). Namun, tidak ada solusi yang berfungsi dengan sendirinya, jadi inilah yang saya lakukan untuk menyelesaikan masalah:

# 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

Kemudian perbarui Podfile saya menjadi berikut:

# 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

Setelah itu saya menginstal ulang pod

cd ios
pod install

Baru kemudian proyek mulai berhasil dibangun lagi

@Hai . Saya mencoba solusi Anda. Ini Podfile saya

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

Tapi kali ini build gagal karena kesalahan simbol duplikat. Saya menemukan solusi ini dan sekarang berhasil dibangun. Tapi sekarang saya punya masalah lain. Setelah saya menjalankan aplikasi itu langsung macet. Saya menemukan alasan kesalahan di area debug Xcode dan memang benar
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTRootView reactTag]: unrecognized selector sent to instance 0x7fbf02c05530'
solusi untuk masalah ini adalah kebalikan dari solusi lainnya. Sungguh cerita peningkatan yang buruk. :(

Akhirnya saya berhasil membangun proyek iOS dan menjalankannya di simulator tanpa ada kesalahan setelah bekerja keras untuk kemajuan peningkatan. Pertama saya menerapkan diffs dengan bantuan rn-diff-purge kemudian saya menerapkan solusi @Hless 'pada akhirnya saya menghadapi kesalahan simbol duplikat dan dengan mengikuti langkah-langkah pada solusi ini saya memperbaikinya juga sekarang proyek bekerja dengan benar.

Diatasi dengan yang berikut:

rm -rf node_modules
rm -rf ios/Pods
rm ios/Podfile.lock 
rm -rf ~Library/Developer/Xcode/DerivedData

Kemudian saya menginstal ulang dependensi saya (npm & pod) dan berhasil :)

rm -rf ~ Library / Developer / XCode / DerivedData

baris kanan adalah: rm -rf ~/Library/Developer/Xcode/DerivedData

Setiap kali saya menemukan masalah menarik rambut dengan RN yang memberi saya beberapa pesan kesalahan yang tidak masuk akal, saya terus mencari solusi dengan putus asa. Sering kali solusinya adalah menghapus cache, menghapus data turunan, membuka kembali Xcode, membersihkan folder build, dll. Selama bertahun-tahun saya telah mengumpulkan skrip bash yang telah saya tambahkan sebagai skrip npm di package.json saya. Sekarang solusi goto pertama saya untuk sebagian besar masalah adalah 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. Dan itu memecahkan masalah ini untuk saya juga: D

hanya pod install berhasil untuk saya

silahkan. Xcode 10.1 yang diturunkan

react-native link membantu saya. :(

React Native tidak dapat dipertahankan, 100 resolusi ditawarkan untuk setiap bug yang ditemukan seseorang. Satu perubahan dan seluruh proses build, boilerplate, dan alasan untuk menggunakan react native berantakan. Bagaimana perusahaan dapat benar-benar menambahkan proses pengembangan ini ke jalur produk. konyol !!!!

Mereka bilang akan lebih baik dari 0,59 ke .. semoga mereka benar tentang itu

@philipaarseth Saya harap Anda makan kata-kata Anda ketika 0.60 keluar 😆

Saya telah melihat ini di utas lain sebelumnya, tetapi menjalankan yang berikut ini memecahkan masalah untuk saya:

cd node_modules/react-native/scripts
./ios-install-third-party.sh

Saya pikir ini telah diperbaiki di 0,59 atau sebelumnya dan saya ingat melihatnya berjalan secara otomatis di beberapa build, tetapi sepertinya masih ada kasus di mana itu hilang.

Sangat berharga untuk disertakan di bagian pemecahan masalah proyek Anda, karena ini bukan pertama kalinya saya melihat ini terjadi.

Jalankan perintah ini: $ conda deactivate

@jpudysz terima kasih, ini berhasil untuk saya. tapi kenapa rn yoga build error berhubungan dengan folly / glog / doubleConversion?

log kesalahan saya adalah:
Perintah berikut menghasilkan masalah penganalisis:
Analisis / Pengguna/superqa/jenkins/workspace/xxxxx-xxxx-iOS-new/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64
Analisis arm normal Base / RCTModuleMethod.mm64
(2 perintah dengan masalah penganalisis)

Android bekerja dengan sangat sempurna, hanya iOS ... :-(

Satu-satunya solusi yang menjanjikan mungkin adalah menurunkan versi RN

Ini menjadi cukup sulit ketika memiliki banyak dependensi pihak ke-3.

dalam kasus saya, Xcode baru saja melakukan pembaruan otomatis dan menghasilkan masalah seperti itu.
apa yang saya lakukan untuk menyelesaikan masalah adalah:
cd ios
rm -fr Pod
rm Podfile.lock
pemasangan pod

instal ulang Pod dan Podfile memecahkan masalah saya

Hapus data turunan
cd ios
hapus Pod dan Podfile.lock
pemasangan pod

Saya telah melakukan semua langkah di atas, membuat build berfungsi, dan sekarang saya mendapatkan kesalahan ini. FWIW Saya mengupgrade dari Xcode 10.1 -> 11.1 DAN saya mengupgrade react native dari 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: Saya menghapus RCTTest dari podfile dan itu bagus setelah itu.

Saya juga melihat kesalahan #include <folly/Portability.h> . Masalah dalam kasus saya adalah kehilangan subspec di podfile.

Itu membangun baik untuk saya dengan:

  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'

Saya mengalami masalah mendapatkan glog untuk menginstal, akhirnya harus mengeluarkan perintah ini sudo xcode-select --switch /Applications/Xcode.app/ cukup yakin karena saya menjalankan Xcode dari direktori yang berbeda, kemudian memindahkannya ke direktori / Applications saya, dan perkakas semuanya kacau balau .

@jenskuhrjorgensen Perintah rm menghapus seluruh $ TMPDIR karena ruang yang Anda miliki di sana.

@ jduffy7 Itu mungkin agak berlebihan 😄 Thx, ini telah diperbaiki!

@jenskuhrjorgensen Terima kasih !!!!!

Menjalankan pod update berhasil untuk saya.

Perubahan apapun .. ?

Solusi di atas tidak berhasil, berikut ini membantu proyek saya untuk dibangun kembali.

cd ios
pod repo update
pod update

Setelah menjalankan perintah ini, saya dapat membangun di xcode tetapi tidak menggunakan react-native run-ios . Saya kemudian menjalankan perintah ini (terima kasih 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

yang membantu saya membangun menggunakan react-native run-ios lagi.

@khanguslee Saya melakukannya tapi sayangnya itu tidak bisa dibangun

dan mendapatkan kesalahan ini

* BUILD GAGAL *

Perintah build berikut gagal:
PhaseScriptExecution [CP] Periksa Pods Manifest.lock /../ios/build/music/Build/Intermediates.noindex/music.build/Debug-iphonesimulator/music.build/Script-C5D676D55145145333E00AC9.sh
(1 kegagalan)

Menampilkan Semua Pesan
: -1: Sandbox tidak sinkron dengan Podfile.lock. Jalankan 'pod install' atau perbarui penginstalan CocoaPods Anda.

Sandbox tidak sinkron dengan Podfile.lock. Jalankan 'pod install' atau perbarui penginstalan CocoaPods Anda.

Pencarian Google cepat dengan pesan kesalahan Anda memberi saya solusi di sini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat