React-native: بعد الترقية إلى رد الفعل الأصلي 0.59 فشل بناء iOS

تم إنشاؤها على ١٣ مارس ٢٠١٩  ·  69تعليقات  ·  مصدر: facebook/react-native

🐛 تقرير الشوائب

بعد التحديث لرد الفعل 0.59 ومحاولة إنشاء التطبيق لنظام iOS ، تلقيت الخطأ التالي:

لا يمكن العثور على ملف إدخال الإصدار: "/app/node_modules/react-native/ReactCommon/yoga/yoga/YGFloatOptional.cpp"

الغريب بالنسبة لي هو أنني لا أستطيع العثور على هذا الملف هنا إما في النسخة الرئيسية الحالية: react-native/tree/master/ReactCommon/yoga/yoga (فقط YGFloatOptional.h )

لإعادة إنتاج

قمنا بترقية مشروع متوسط ​​الحجم من 0.57.7 إلى 0.59.

سلوك متوقع

يجب أن يمر البناء بشكل جيد كما كان من قبل.

بيئة

  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

التعليق الأكثر فائدة

لدي نفس المشكلة ... ، في كل مرة يكون هناك بعض المشاكل مع الترقيات في رد الفعل الأصلي متعبًا جدًا ..

ال 69 كومينتر

لقد قمت للتو بإعادة إنتاج هذه المشكلة مع XCode: 10.1 و RN 0.59.0.

تحرير 1 : يمكنني التكاثر باستخدام أداة بناء XCode UI ؛ لكنها تعمل بشكل جيد مع react-native run-ios (تأكد من أن لديك أحدث 2.x cli).
تحرير 2 : لقد تمكنت من جعله يعمل مع XCode 10.1 من خلال تمكين البناء القديم . متعلق بـ # 19573

حسنًا ، لقد قمت للتو بالترقية من 0.58.4 إلى 0.59 ، وأدلة إنشاء نظيفة في XCode وتمكنت من تشغيل كل من تصحيح التطبيق وأرشفته. أنا أستخدم XCode 10.1.
إستراتيجية الترقية الخاصة بي:

  1. تبعيات النتوء وفقًا لأحدث إصدار مستقر.
  2. تجول في كل مقارنة في https://github.com/react-native-community/rn-diff-purge وطبقها يدويًا.

هل تتساءل عما إذا كان كل شيء قد يعمل بالنسبة لي لأنني كنت أعمل 0.58.4 وقمت بتطبيق أشياء جديدة فوقها؟

تحرير: لقد قمت أيضًا بتشغيل npm ci لإزالة node_modules (فقط للتأكد) وما زلت قادرًا على إنشاء التطبيق من XCode 🤔

EDIT2: وليس لدي YGFloatOptional.cpp :
Screen Shot 2019-03-13 at 12 55 51

تظهر لي نفس المشكلة عند الترقية من 0.57.8 -> 0.59.1.
بالنظر إلى ملف جديد 0.59.1 ، لا يوجد ملف YGFloatOptional.cpp .

أضف هذه الأسطر إلى ملف 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'

و اهرب

pod install

jpudysz نعم ، لقد بعد الترحيل إلى cocoapod وفتح مشروع .xcworkspace .
اضطررت إلى إنشاء مكتبات react-native unlink و react-native link متصلة بحيث تستخدم Podfile بدلاً من ذلك.

هل يجب إهمال الربط القديم (no-cocoapod)؟

jpudysz عملت لي أيضا. بالتأكيد لا يمكن أن يكون هذا هو الحل المناسب رغم أنه صحيح؟ هذا ينفخ بشكل خطير المشروع. Pods/boost-for-react-native هو 160.8 ميغا بايت.

تحرير: حسنًا ، هذا غريب جدًا ، لقد أزلت هذه الكبسولات الثلاثة ، وقمت بتشغيل Clean in Xcode وحاولت البناء. هذه المرة لم أحصل على خطأ أثناء تجميع اليوجا.

شكرا jpudysz . باتباع الحل الخاص بك ، ثم أتلقى الخطأ التالي:
لم يتم العثور على ملف "folly / Portability.h" في JSBundleType.h

لا أحد يعرف ما يجري؟

شكرا جزيلا.

بعد تجربة ما يشبه إلى حد كبير كل شيء ، الترقية القياسية لـ RN ، أداة ترقية git ، تطبيق التصحيح المختلف ، انتهى بي الأمر بإعادة إنشاء مشروع جديد تمامًا والقيام بالعمل الشاق للغاية المتمثل في إعادة بناء قاعدة الكود. يقولون أنه سيكون أفضل من 0.59 فصاعدًا .. آمل أن يكونوا على حق في ذلك

لقد قمت بالترقية للتو من 0.59.0 إلى 0.59.1 وعملت معي
حل مشكلة اليوجا

لقد قمت بالترقية أيضًا ولكن بدون حظ حتى الآن.

كان لي نفس القضية بالضبط. rm -rf node_modules && npm i القديم الجيد وتنظيف مجلدات الإنشاء فعل ذلك من أجلي

بعد استخدام npm audit fix ، تمت ترقية "رد الفعل الأصلي" تلقائيًا إلى الإصدار 0.59 ولا يمكنني إنشاء مشروعي.
الحل : إصدار الرجوع إلى إصدار أقل.
npm install react-native@<version>
مثال: npm install [email protected]

لقد حاولت التحديث من 0.58.4 يدويًا (بعد تغييرات rn-diff-purge) ولكني أيضًا أواجه هذه المشكلة مع RN 0.59.0 أو 0.59.1

نعم كان لدينا YGFloatOptional.cpp حتى 0.58 https://github.com/facebook/react-native/blob/0.58-stable/ReactCommon/yoga/yoga/YGFloatOptional.cpp

ما الذي يحدث هنا؟

تعديل
يقودني حل 'folly/Portability.h' file not found

حصلت على نفس المشكلة مع "folly / Portability.h" بعد الترقية من 0.58.4 إلى 0.59.0 و 0.59.1

ما هو غريب ، هو أن XCode ينص بعد التحويل البرمجي على أن Portability.h غير موجود ، ولكن في المحرر ، يتم تعريف جميع الأنواع في العنوان ...

image

الملف الذي فشل في التحويل هو RCTJavasScriptLoader.mm في مكتبة 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.

لدي نفس المشكلة ... ، في كل مرة يكون هناك بعض المشاكل مع الترقيات في رد الفعل الأصلي متعبًا جدًا ..

يبدو أنه تم حذف الملف من مشروع اليوغا منذ 13 ديسمبر 2018 و "مضمّن" في yoga/YGFloatOptional.h : https://github.com/facebook/yoga/commit/96d93f29826257ff6e9bb6c19211adb423029c29

تخميني هو أن الإشارة إلى ReactCommon/yoga/yoga/YGFloatOptional.cpp ليست مطلوبة بعد الآن.

لم تنجح إزالة ذاكرة التخزين المؤقت وإعادة بناء المشروع بالنسبة لي على الفور.

لذلك حاولت الترقية إلى React Native 0.59.1 ثم إعادة بناء المشروع. أيضا لا يعمل.

ومع ذلك ، فإن تنظيف وحدات node_modules الخاصة بي ، وذاكرة التخزين المؤقت وبناء المجلدات وإعادة بناء المشروع ، قد نجح باستخدام:

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

لذلك ، يبدو أنه ذاكرة التخزين المؤقت ذات الصلة.

ربما لا تكون هناك حاجة للترقية إلى React Native 0.59.1 ، أعتقد أن جزءًا من البرنامج النصي قد أدى إلى الحيلة بالنسبة لي.

أتمنى أن يساعد هذا الآخرين!

لقد استسلمت ، وحذفت جميع الروابط إلى node_modules من ملف Pods ثم حذفت node_modules وقم ببناء الدليل وأعدت تثبيت أي شيء ثم تم بناؤه بنجاح مرة أخرى.

هذا مرهق للغاية.

jvandenaardweg أعتقد أنك محق في أنها مشكلة تخزين

بالنسبة لي ، كان ما نجح هو حذف مجلد البيانات المشتق من Xcode وإعادة تشغيل Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

بمجرد إعادة التشغيل ، حاولت بناء وفشلت ودفعتني لإغلاق وإعادة فتح مساحة عمل xcode الخاصة بي. بمجرد أن فعلت ذلك ، حاولت البناء مرة أخرى ونجحت.

حسنًا ، أعتقد أن هذه المشكلة تتعلق عمومًا بمشكلات إنشاء ذاكرة التخزين المؤقت من الترقية (من قراءة المنشورات) - لذلك إذا كانت لديك مشكلات ، أعتقد أنه يمكن إصلاحها عمومًا عن طريق:

  • تنظيف البيانات المشتقة في Xcode
  • rm -rf node_modules; rm -rf Pods ثم أعد التثبيت
  • باستخدام react-native upgrade x.y.z

هذا هو نفسه إلى حد كبير لكل إصدار ، أراهن. ربما سأفكر في إنشاء مشكلة على رد الفعل الأصلي - cli حول تحسين هذا وربما تشغيل بعض الأوامر نفسها.

هل لدى أي شخص خطوة إنجابية محددة لهذا؟

كنت أرى أيضًا الخطأ #include <folly/Portability.h> . كانت المشكلة في حالتي مفقودة في ملف podfile.

إنه يبني جيدًا بالنسبة لي مع:

  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'

"بين 0.57.8 و 0.58.5 المتفاعلة الأصلية ، هناك تغيير كبير واحد تمت إضافته في مشروع Xcode وهو أنه يجب عليك إضافة JavaScriptCore.Framework إلى الإطارات المرتبطة والمكتبات" - من هنا

زائد

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

هل العمل من أجلي.

إنه أمر محبط حقًا كما قال الآخرون ، الحاجة إلى تخمين ما هو كسر رمز كان يعمل من قبل.

أيضًا على Android ، اضطررت إلى ترقية إصدار Build Gradle للعمل مرة أخرى.

بحاجة إلى التخمين

نحن نعلم أن الترقية كانت بمثابة ألم طويل الأمد للمجتمع ، لذا بدءًا من الإصدار 0.59 ، قدمنا ​​تدفقًا جديدًا عبر CLI الجديد .

ومع ذلك ، كنا نكتب التغييرات الفاصلة في سجل التغيير وفي علامة تبويب الإصدارات ، لذلك لا داعي للتخمين الحقيقي.

على أي حال ، الإغلاق نظرًا لأن هذا مرتبط بوضوح بالترقية - أيضًا ، بشكل عام ، يمكنك استخدام rn-diff-repo للتحقق من جميع الخطوات اللازمة عند الترقية.

مرحبا،

بعد الكثير من الحفر ، تمكنت من معرفة سبب حدوث المشكلة. لم يؤد تنظيف ذاكرة التخزين المؤقت وكل شيء إلى حل المشكلة بالنسبة لي وما زلت أعاني من # تضمين.

لقد كان تجميعًا جيدًا لمشروع React ضمن مشروعي ، لكنه فشل في تجميع أجهزة Pods التي أملكها.

حتى بعد إضافة حوافظ Folly / glog / DoubleConversion ، كنت لا أزال أواجه المشكلة.

ثم قمت بعد ذلك بتعديل ملف React.podspecs لتعديل النوع الفرعي Core

بعد إضافة مرجع Folly إلى pod_target_xcconfig ، تم تجميعه دون أي مشكلات أخرى.

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

وها هو الملف الكامل لدي

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

إم في نفس الوضع. لقد قمت بالترقية من 0.57 إلى 0.59 بعد فرق التفاعل الأصلي وعمل كل شيء بشكل مثالي حتى قمت بالترقية من 0.58.6 إلى 0.59.

لقد جربت كل شيء في هذا الموضوع دون حظ ، لم يتم العثور على ملف "folly / Portability.h" خطأ لا يريد أن يختفي.

يعمل التراجع إلى 0.58.6 بشكل مثالي ولكن في اللحظة التي أقوم فيها بالتحديث إلى 0.59.0 أو 0.59.1 يظهر الخطأ.

تحرير: لقد وجدت الملف في node_modules / رد فعل أصلي / ثالث طرف / folly-2018.10.22.00 / folly / Portability.h لكنه لا يزال يقول إنه غير موجود.

أدرك أن رسالتي كانت غير واضحة للغاية ... آسف لذلك. هذا هو ملف diff الذي يجب أن يجعله أكثر وضوحًا للأشخاص الذين لديهم مشكلة مع "folly / Portability.h"

حاول إجراء التعديل التالي على ملف nodes_modules / رد فعل أصلي / React.podspec ، على الأقل في حالتي نجح! يمكنني الآن تجميع مشروعي وإطلاقه دون مشاكل.

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

فعل ما قال aaska بالإضافة إلى الإضافة
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'

إلى Podfile وجراب تثبيت لهم عملت بالنسبة لي.

بعد استخدام jpudysz و jvandenaardweg و johnryan tips ، أصبح الأمر كذلك بالنسبة لي.
شكرا يا شباب!

@ th3ac3 الذي حل المشكلة بالنسبة لي. شكرا لك!

لم يعمل أي منهم

jvandenaardweg أعتقد أنك محق في أنها مشكلة تخزين

بالنسبة لي ، كان ما نجح هو حذف مجلد البيانات المشتق من Xcode وإعادة تشغيل Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

بمجرد إعادة التشغيل ، حاولت بناء وفشلت ودفعتني لإغلاق وإعادة فتح مساحة عمل xcode الخاصة بي. بمجرد أن فعلت ذلك ، حاولت البناء مرة أخرى ونجحت.

شكرا ، لقد فعلت ذلك وعمل مرة أخرى.

لذلك بعد اتباع فرق الترقية إلى 59.4 (باستخدام rn-diff-purge ) ، ما زلت أعاني نفس المشكلات التي يواجهها الجميع هنا (خطأ YGFloatOptional.cpp أولاً ، ثم الخطأ folly/Portability.h ). ومع ذلك ، لم يعمل أي من الحلول بمفرده ، لذلك هذا ما فعلته لحل المشكلات:

# 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

ثم قم بتحديث ملف Podfile الخاص بي إلى ما يلي:

# 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

بعد ذلك أعدت تثبيت القرون

cd ios
pod install

عندها فقط بدأ المشروع في البناء بنجاح مرة أخرى

في حالتي ، نسيت تنفيذ الخطوة:

إذا كنت مطور iOS ، فستحتاج إلى ربط JavaScriptCore.framework يدويًا عند الترقية ؛ يمكن القيام بذلك عبر Xcode ، واتباع الخطوات الموضحة هنا.

مثال

بعد أن فعلت ذلك ، فقط xcode تجميع موافق

لا شيء مما سبق يعمل معي

تحقق من ذلك: https://github.com/facebook/react-native/issues/18408#issuecomment -386696744
لقد حلت المشكلة بالنسبة لي.

ضع هذا في وحدة التحكم -> xcrun -k --sdk iphoneos --show-sdk-path
إذا كان الجواب
xcrun: _ خطأ: لا يمكن تحديد موقع SDK "iphoneos"
xcrun: خطأ: لا يمكن تحديد موقع SDK "iphoneos"
xcrun: خطأ: غير قادر على البحث عن العنصر "المسار" في SDK "iphoneos"

ثم ضع sudo xcode-select - التبديل / التطبيقات / Xcode.app

ثم قم بتثبيت البود مرة أخرى

هذه الإجابة عملت معي. علاوة على كل الأشياء المذكورة أعلاه في هذا الموضوع ، كنت بحاجة إلى إعادة فتح المحطة الطرفية التي كان جهاز تجميع المترو يعمل بها.

الرجوع إلى "react-native": "0.57.4", مما يعمل مرة أخرى

الرجوع إلى "react-native": "0.57.4", مما يعمل مرة أخرى

لا أعتقد أن الرجوع إلى هذا الإصدار هو أفضل طريقةmiukki. يوفر هذا الإصدار (0.59) دعمًا 64 بت لتطبيقات Android وتحتاجه كمتطلب مستقبلي لنشر التطبيقات (المعلومات هنا ).

مرحبًا بعد الاقتراب من جميع الحلول أعلاه ، اكتشفت خطأ آخر

ld: تحذير: الدليل غير موجود للخيار "-F / Users / pumeo / Library / Developer / Xcode / DerivedData / GreenPlanet-cekcooliietupofcqlsnkupeolal / Build / Products / Debug-iphonesimulator / React"
ld: لم يتم العثور على إطار العمل React
clang: خطأ: فشل أمر الرابط مع رمز الخروج 1 (استخدم -v لرؤية الاستدعاء)

عندما أدخلت post_install

يمكن لأي شخص أن يساعد من فضلك؟
أنا أستخدم هاكينتوش

@ Pumeo1010 ، يرجى البقاء على الموضوع.

في الموضوع: إذا تم إغلاق هذه المشكلة ، فما الحل؟ لقد جربت كل شيء أعلاه وجعلته يعمل بطريقة ما (لا أعرف ما الذي فعلته الحيلة). الآن اضطررت إلى إعادة البناء وواجهت نفس المشكلة مرة أخرى وكل ما أحاول لا يمكنني تشغيله بعد الآن.

التحديث: أخيرًا حصلت عليه للعمل مرة أخرى! لست متأكدًا تمامًا ولكني أعتقد أن إزالة البيانات المشتقة من Xcode وإزالة Podfile.lock وإزالة / إعادة تثبيت pods-dir وتنظيف مجلد إنشاء Xcode وإعادة تشغيل النظام انتهى به الأمر.

أحاول ترقية React Native لمدة يومين تقريبًا من 0.57.8 إلى 0.59.9. لقد جربت جميع الحلول أعلاه هذا التعليق ولكن لا يزال لدي نفس الأخطاء. رموز مكررة ، رؤوس غير موجودة ، YGFloatOptional.cpp غير موجود .... لقد أنشأت مشروع React Native جديدًا ثم نسخ ملفات مشروعي الحالي إلى المشروع الجديد وقمت بتطبيق الاختلافات بمساعدة rn-diff-purge . مرة أخرى بهذه الطريقة أيضًا حصلت على العديد من أخطاء البناء المختلفة واستسلمت أخيرًا! أنا أحب v0.57.8

لذلك بعد اتباع فرق الترقية إلى 59.4 (باستخدام rn-diff-purge ) ، ما زلت أعاني نفس المشكلات التي يواجهها الجميع هنا (خطأ YGFloatOptional.cpp أولاً ، ثم الخطأ folly/Portability.h ). ومع ذلك ، لم يعمل أي من الحلول بمفرده ، لذلك هذا ما فعلته لحل المشكلات:

# 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

ثم قم بتحديث ملف Podfile الخاص بي إلى ما يلي:

# 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

بعد ذلك أعدت تثبيت القرون

cd ios
pod install

عندها فقط بدأ المشروع في البناء بنجاح مرة أخرى

Hless مرحبا. لقد جربت الحل الخاص بك. هنا ملف 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

لكن فشل البناء هذه المرة بسبب خطأ في الرموز المكررة. لقد وجدت هذا الحل وهو الآن يبني بنجاح. لكن الآن لدي مشكلة أخرى. بمجرد تشغيل التطبيق فإنه يتعطل على الفور. لقد وجدت سبب الخطأ في منطقة التصحيح لـ Xcode وهو كذلك
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTRootView reactTag]: unrecognized selector sent to instance 0x7fbf02c05530'
حل هذه المشكلة هو عكس الحل الآخر. يا لها من قصة ترقية سيئة. :(

أخيرًا ، نجحت في بناء مشروع iOS وتشغيله على جهاز محاكاة دون أي أخطاء بعد العمل الجاد على تقدم الترقية. أولاً قمت بتطبيق diffs بمساعدة rn-diff-purge ، ثم قمت بتطبيق حل Hless في النهاية واجهت خطأً في الرموز المكررة وباتباع الخطوات في هذا الحل ، قمت بإصلاحها أيضًا الآن يعمل المشروع بشكل صحيح.

تقرر ما يلي:

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

ثم أعدت تثبيت تبعياتي (npm & pod) وعملت :)

rm -rf ~ Library / Developer / XCode / DerivedData

سيكون السطر الأيمن: rm -rf ~/Library/Developer/Xcode/DerivedData

في كل مرة أواجه فيها مشكلة نتف الشعر مع إعطائي RN رسالة خطأ هراء ، أذهب في بحث يائس عن حلول. في معظم الأوقات ، يكون الحل هو حذف ذاكرة التخزين المؤقت ، وحذف البيانات المشتقة ، وإعادة فتح Xcode ، ومسح مجلدات البناء ، إلخ. على مر السنين ، قمت بتجميع هذا البرنامج النصي bash الذي أضفته كبرنامج نصي npm في package.json الخاص بي. الآن أول حل لدي لمعظم المشكلات هو 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-*

ملاحظة. وقد حلت هذه المشكلة بالنسبة لي أيضًا: د

فقط pod install نجح معي

رجاء. Xcode تم خفضه 10.1

ساعدني react-native link . :(

React Native غير مستدام ، حيث يتم تقديم 100 دقة لكل خطأ يواجهه شخص ما. تغيير واحد وعملية البناء بأكملها ، المتداول وسبب استخدام التفاعل الأصلي ينهار. كيف يمكن للشركات أن تضيف بالفعل عملية التطوير هذه إلى خط أنابيب المنتج. سخيف !!!!

يقولون أنه سيكون أفضل من 0.59 فصاعدًا .. آمل أن يكونوا على حق في ذلك

philipaarseth آمل أن تكون قد أكلت كلامك عندما خرج 0.60 😆

لقد رأيت هذا في سلاسل رسائل أخرى من قبل ، ولكن تشغيل ما يلي حل المشكلة بالنسبة لي:

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

اعتقدت أن هذا قد تم إصلاحه في 0.59 أو قبله وأتذكر رؤيته يعمل تلقائيًا في بعض الإصدارات ، ولكن يبدو أنه لا تزال هناك حالات مفقودة فيها.

بالتأكيد يستحق التضمين في قسم استكشاف الأخطاء وإصلاحها في مشروعك ، نظرًا لأن هذه ليست المرة الأولى التي أرى فيها حدوث ذلك.

قم بتشغيل هذا الأمر: conda deactivate $

jpudysz شكرًا ، إنه يعمل معي. ولكن لماذا rn yoga build error لها علاقة مع الحماقة / glog / doubleConversion؟

سجل الأخطاء الخاص بي هو:
أنتجت الأوامر التالية مشكلات محلل:
تحليل / المستخدمون / superqa/jenkins/workspace/xxxxx-xxxx-iOS-new/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64
تحليل Base / RCTModuleMethod.mm normal arm64
(أمران مع مشكلات المحلل)

يعمل Android بشكل مثالي ، فقط iOS ... :-(

قد يكون الحل الوحيد الواعد هو تخفيض إصدار RN للأسف

يصبح الأمر صعبًا إلى حد ما عند وجود الكثير من التبعيات للجهات الخارجية.

في حالتي ، أجرى Xcode تحديثًا تلقائيًا وأنتج مثل هذه المشكلة.
ما فعلته لحل المشكلة هو:
القرص المضغوط ios
rm -fr القرون
rm Podfile.lock
تثبيت جراب

إعادة تثبيت Pods و Podfile حل مشكلتي

حذف البيانات المشتقة
القرص المضغوط ios
إزالة القرون و Podfile.lock
تثبيت جراب

لقد قمت بتنفيذ جميع الخطوات المذكورة أعلاه ، وجعلت البناء يعمل ، والآن أتلقى هذا الخطأ. FWIW أقوم بالترقية من Xcode 10.1 -> 11.1 وأنا أقوم بترقية رد الفعل الأصلي من 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

تحرير: أزلت RCTTest من ملف podfile وكان جيدًا بعد ذلك.

كنت أرى أيضًا الخطأ #include <folly/Portability.h> . كانت المشكلة في حالتي مفقودة في ملف podfile.

إنه يبني جيدًا بالنسبة لي مع:

  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'

واجهت مشكلة في تثبيت glog ، وانتهى بي الأمر إلى إصدار هذا الأمر sudo xcode-select --switch /Applications/Xcode.app/ متأكدًا تمامًا لأنني كنت أقوم بتشغيل Xcode من دليل مختلف ، ثم نقلته إلى دليل / تطبيقاتي ، وكانت الأدوات كلها معطلة .

jenskuhrjorgensen يقوم الأمر rm بإزالة $ TMPDIR بالكامل بسبب المساحة المتوفرة هناك.

@ jduffy7 ربما يكون هذا مبالغة بعض الشيء 😄 Thx ، لقد تم تصحيحه!

jenskuhrjorgensen شكرا !!!!!

تشغيل pod update نجح معي.

أي تحديث .. ؟

لم تنجح الحلول المذكورة أعلاه ، فقد ساعدت ما يلي مشروعي على البناء مرة أخرى.

cd ios
pod repo update
pod update

بعد تشغيل هذه الأوامر ، تمكنت من البناء على xcode ولكن لا يمكنني استخدام react-native run-ios . ثم قمت بتشغيل هذه الأوامر (شكرًا 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

مما ساعدني على الإنشاء باستخدام react-native run-ios مرة أخرى.

khanguslee أفعل ذلك ولكن للأسف لن يبني

وحصلت على هذا الخطأ

* فشل البناء *

فشلت أوامر البناء التالية:
PhaseScriptExecution [CP] تحقق من Pods Manifest.lock /../ios/build/music/Build/Intermediates.noindex/music.build/Debug-iphonesimulator/music.build/Script-C5D676D55145145333E00AC9.sh
(1 فشل)

إظهار كافة الرسائل
: -1: وضع الحماية غير متزامن مع Podfile.lock. قم بتشغيل 'pod install' أو تحديث تثبيت CocoaPods الخاص بك.

وضع الحماية ليس متزامنًا مع Podfile.lock. قم بتشغيل 'pod install' أو تحديث تثبيت CocoaPods الخاص بك.

يعطيني بحث سريع في google برسالة الخطأ حلاً هنا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات