React Native Build Error:无法读取优化配置文件(即使在更改优化配置之后)

fen*_*huo 5 optimization xcode ios react-native react-native-ios

我试图通过此视频中的步骤解决一些配置问题,之后构建过程会报告错误.

该视频中的步骤如下: 1. project -> clean 2. project -> build 3. project -> perform action -> Generate Optimization File 4. Enable Optimazation 在此输入图像描述

它确实帮助我在连接的设备上运行应用程序.但在此之后,构建过程始终失败,并显示以下错误消息:

Could not read profile [My Project Folder]/node_modules/react-native/React/OptimizationProfiles/React.profdata: No such file or directory

在环顾SO几个小时后,我尝试了以下不同的方法,但没有一个工作:
1)

Go to Project -> Build Setting -> Apple LLVM 9.2-code generation  
clear Optimization Profile File // clear is removing the value to empty, correct?  
Clean project and build again
Run Code Online (Sandbox Code Playgroud)

优化级别适用none于所有目标: 所有目标的优化级别均为无
来源于此

  1. 手动将优化配置文件的路径设置为另一个位置(没有生成profdata文件btw,这是另一个错误,但它在连接的设备上运行应用程序)

  2. DerivedData按照此问题的答案中的建议删除文件夹

  3. 删除Build文件夹
  4. 清除Xcode首选项并重新安装Xcode

每当我构建它仍然试图找到文件/node_modules/react-native/React/OptimizationProfiles/React.profdata.使用时结果相同react-native run-ios.它是某种缓存吗?(虽然我删除了DerivedData文件夹,构建文件夹,并清理了项目).这里是更多错误信息的信息:
在此输入图像描述

CompileC `MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/Objects-normal/x86_64/YGNodeList.o `MyProjectFolder`/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/'ausername'/Documents/dev_fs/RecycleWizard/node_modules/react-native/React
export LANG=en_US.US-ASCII
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/`SomeUserName`/anaconda/bin:/Users/'SomeUserName'/Documents/apache-maven-3.0.5/bin:/usr/local/heroku/bin:./node_modules/.bin:/Users/'SomeUserName'/.rvm/gems/ruby-2.0.0-p451/bin:/Users/'SomeUserName'/.rvm/gems/ruby-2.0.0-p451@global/bin:/Users/'SomeUserName'/.rvm/rubies/ruby-2.0.0-p451/bin:/Library/JAVA/Home/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/`SomeUserName`/.rvm/bin:/Users/`SomeUserName`/.rvm/bin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu99 -fmodules -fmodules-cache-path=`MyProjectFolder`/ios/build/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=`MyProjectFolder`/ios/build/ModuleCache/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 -Wmissing-prototypes -Werror=return-type -Wunreachable-code -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wshadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wnewline-eof -DDEBUG=1 -DRCT_DEBUG=1 -DRCT_DEV=1 -DRCT_NSASSERT=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -mios-simulator-version-min=8.0 -g -Wno-sign-conversion -Winfinite-recursion -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -fprofile-instr-use=`MyProjectFolder`/node_modules/react-native/React/OptimizationProfiles/React.profdata -index-store-path `MyProjectFolder`/ios/build/Index/DataStore -I`MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/yoga.hmap -I`MyProjectFolder`/ios/build/Build/Products/Debug-iphonesimulator/include -I`MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/DerivedSources/x86_64 -I`MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/DerivedSources -Wextra -Wall -Wno-semicolon-before-method-body -F`MyProjectFolder`/ios/build/Build/Products/Debug-iphonesimulator -MMD -MT dependencies -MF `MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/Objects-normal/x86_64/YGNodeList.d --serialize-diagnostics `MyProjectFolder`/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/Objects-normal/x86_64/YGNodeList.dia -c `MyProjectFolder`/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c -o `MyProjectFolder`/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/yoga.build/Objects-normal/x86_64/YGNodeList.o
Run Code Online (Sandbox Code Playgroud)

尝试其他方法的想法?谢谢

fen*_*huo 3

找到了解决方案(但需要一定程度的重复设置工作),如果您遇到相同的问题并且问题中列出的方法均无效,您可以尝试此操作(作为最后的手段):

失败后我查看了登录终端,react-native run-ios出现以下错误:

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier 
build/Build/Products/Debug-iphonesimulator/SomeProject.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist  
Run Code Online (Sandbox Code Playgroud)

正如这里所建议的,react-native upgrade(反应原生版本是0.47.2),为了确保所有缓存都被清理,我也按照这个线程中提到的那样做了:

watchman watch-del-all
rm -rf $TMPDIR/react-*
rm -rf yarn.lock
rm -rf ./node_modules
yarn install
Run Code Online (Sandbox Code Playgroud)

在这些步骤之后,剩下的基本上就是再次设置项目,我做了react native link以及 React Native 插件的所有其他配置(例如更新 info.plist)。但之后项目就可以成功构建了。

我不确定这是否是 Xcode 或 RN 中的错误(在我使用之后perform action -> generate optimization file),它一直试图找到那个/node_modules/react-native/React/OptimizationProfiles/React.profdata奇怪的文件。

希望这可以帮助。