React-native: [0.56.0] tvOS - 'cxxreact/ReactMarker.h' file not found

Created on 7 Jul 2018  路  5Comments  路  Source: facebook/react-native

Environment

React Native Environment Info:
    System:
      OS: macOS High Sierra 10.13.5
      CPU: x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
      Memory: 1.34 GB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 8.9.4 - ~/.nvm/versions/node/v8.9.4/bin/node
      Yarn: 1.7.0 - /usr/local/bin/yarn
      npm: 5.8.0 - ~/.nvm/versions/node/v8.9.4/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 11.4, macOS 10.13, tvOS 11.4, watchOS 4.3
      Android SDK:
        Build Tools: 23.0.1, 25.0.0, 25.0.1, 25.0.2, 25.0.3, 26.0.0, 26.0.1, 26.0.2, 26.0.3, 27.0.0, 27.0.1, 27.0.2, 27.0.3, 28.0.1
        API Levels: 21, 23, 24, 25, 26, 27, 28
    IDEs:
      Android Studio: 3.1 AI-173.4819257
      Xcode: 9.4.1/9F2000 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.4.1 => 16.4.1 
      react-native: 0.56.0 => 0.56.0 
    npmGlobalPackages:
      react-native-cli: 2.0.1
      react-native-create-library: 3.1.2
      react-native-extended-cli: 1.0.202
      react-native-git-upgrade: 0.2.7

Description

I get error 'cxxreact/ReactMarker.h' file not found while running tvOS

Step 1: Switch schema to tvOS
Step 2: Run

screen shot 2018-07-07 at 4 23 04 pm

Reproducible Demo

https://github.com/anhtuank7c/tvOS

Regression tvOS Locked

Most helpful comment

As 0.56.0, I can't compile even a freshly created project for tvOS as well (using XCode Version 9.4.1 (9F2000)).

To make it work, I manually added necessary headers and sources to React project as a temporary fix.

Here are some detailed instructions for people who are not familiar with iOS development or XCode:

First, you should be getting an error as "'cxxreact/ReactMarker.h' file not found". To fix this

  • Click on React.xcodeproj in Libraries folder to select React project.
  • Select cxxreact-tvOS target from the side menu.
  • Go to Build Phases tab, and expand Copy Headers section.
  • Click on the plus icon at the bottom of a list of .h files.
  • In the popped-up dialogue, search for ReactMarker.h, select it and click Add.
  • Expand Compile Sources section and add JSExecutor.cpp.
  • Now select yoga-tvOS target in the same React project.
  • Add YGConfig.h to Copy Headers section and YGConfig.cpp to Compile Sources.

Project should compile and run now.

All 5 comments

I got the same thing when upgraded to 0.56.0 on a tvOS app. I downgraded to 0.55.4 and it resolved it for now.

I am running into the same issue.
2 days ago, I could still run my app on my iPhone without any issue.
Now getting these kind of error (the one mentioned above is one of them).

I run react-native 0.56 for some time without any issue and haven't changed anything after the last time I had the app run on my iPhone.

What the hack is going on, is xcode or react-native changing my stuff on its own???

oh btw, I do not run iOS-tv, just iOS.

As 0.56.0, I can't compile even a freshly created project for tvOS as well (using XCode Version 9.4.1 (9F2000)).

To make it work, I manually added necessary headers and sources to React project as a temporary fix.

Here are some detailed instructions for people who are not familiar with iOS development or XCode:

First, you should be getting an error as "'cxxreact/ReactMarker.h' file not found". To fix this

  • Click on React.xcodeproj in Libraries folder to select React project.
  • Select cxxreact-tvOS target from the side menu.
  • Go to Build Phases tab, and expand Copy Headers section.
  • Click on the plus icon at the bottom of a list of .h files.
  • In the popped-up dialogue, search for ReactMarker.h, select it and click Add.
  • Expand Compile Sources section and add JSExecutor.cpp.
  • Now select yoga-tvOS target in the same React project.
  • Add YGConfig.h to Copy Headers section and YGConfig.cpp to Compile Sources.

Project should compile and run now.

The whole community contributes to react-native, and when something is fixed in one place, something becomes broken somewhere else.

Is there any way to prevent those?

Was this page helpful?
0 / 5 - 0 ratings