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

时间:2018-01-28 03:49:11

标签: ios xcode react-native optimization react-native-ios

我尝试使用此video中的步骤来解决某些配置问题,之后构建过程会报告错误。

该视频中的步骤如下: 1. project -> clean 2. project -> build 3. project -> perform action -> Generate Optimization File 4. Enable Optimazation enter image description here

它确实帮助我在连接的设备上运行应用程序。但在此之后,构建过程会出现以下错误消息:

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
所有目标的

优化级别为noneoptimization level is none for all targets
source here

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

  2. 按照answers to this question

  3. 中的建议删除DerivedData文件夹
  4. 删除构建文件夹
  5. 清除Xcode首选项并重新安装Xcode
  6. 每当我构建它时,仍然试图在/node_modules/react-native/React/OptimizationProfiles/React.profdata中找到文件。使用react-native run-ios时的结果相同。它是某种缓存吗?(虽然我删除了DerivedData文件夹,构建文件夹和清理后的项目)。这是错误信息的更多信息:
    enter image description here

    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
    

    还有其他方法可以尝试吗?感谢

3 个答案:

答案 0 :(得分: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  

根据建议herereact-native upgrade(react-native版本为0.47.2),为确保清除所有缓存,我也按this thread中的说明执行此操作:

watchman watch-del-all
rm -rf $TMPDIR/react-*
rm -rf yarn.lock
rm -rf ./node_modules
yarn install

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

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

希望这有帮助。

答案 1 :(得分:1)

i had a similar issue. The only thing i didn't do was run react-native upgrade . Doing this removed the optimization profile error.

Delete the ios/build folder

watchman watch-del-all
rm -rf $TMPDIR/react-*
rm -rf yarn.lock
rm -rf ./node_modules
yarn install

答案 2 :(得分:0)

我发现所有在线答案的问题是他们告诉你要删除项目级别的优化,我需要在目标级别完成

enter image description here

所以点击你的项目 - >然后选择你的目标 - >构建设置 - >使用优化配置文件