Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native Build Error: Could not read optimization profile file (even after change optimization configuration)

Tags:

I was trying to solve some provision issue with steps in this video, after that the building process keeps reporting error.

The steps in that video are: 1. project -> clean 2. project -> build 3. project -> perform action -> Generate Optimization File 4. Enable Optimazation enter image description here

It does help me to run the App on connected device. But after this, the building process keeps failing with below error message:

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

After looking around on SO for hours, I've tried different approaches below but none of them worked:
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

optimization level is none for all targets: optimization level is none for all targets
source here

  1. Manually set the path of Optimization Profile File to another location(no profdata file generated btw, it is another error, but it runs app on connected device)

  2. Remove DerivedData folder as suggested in answers to this question

  3. Remove Build folder
  4. Clear Xcode Preference and reinstall Xcode

Whenever I build it is still trying to find file in /node_modules/react-native/React/OptimizationProfiles/React.profdata. Same result when using react-native run-ios. Is it some kind of cache?(although I removed DerivedData Folder, Build Folder, and cleaned project after).Here is more info of the error message:
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

Any idea of other approaches to try? Thanks

like image 265
fengshuo Avatar asked Jan 28 '18 03:01

fengshuo


2 Answers

Found a solution (but it requires some extent of repeated set up work), if you encountered same issue and none of the approaches listed in the question worked, you can try this (as the last resort):

I looked at the log in terminal after react-native run-ios failed with following error:

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

As suggested here, react-native upgrade (react-native version is 0.47.2), to make sure all the cache is cleaned, I also did this as mentioned in this thread:

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

After these steps, the rest is basically setting up the project again, I did react native link and all the other configuration for react native plugin(such as update info.plist). But the project can build successfully after.

I am not sure if it's a bug in Xcode or RN (after I used perform action -> generate optimization file) it keeps trying to find that file /node_modules/react-native/React/OptimizationProfiles/React.profdata which is weird.

Hope this helps.

like image 178
fengshuo Avatar answered Oct 13 '22 20:10

fengshuo


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
like image 30
phil Avatar answered Oct 13 '22 20:10

phil