wix / wix/react-native-navigation

'rnnavigation/rnnavigation.h' file not found

Open
#8,234 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

🏚 stale platform: iOS type: accepted/bug
Dominant language
MDX
Stars
13.2k
Forks
2.6k
Avg merge
6d 2h
Merged PRs (30d)
1

Description

What happened?

Working on upgrade my react native app react native version 0.75.5 to 0.83.0 and I believe react native navigation latest is also support only 0.83.0, right? and I am using react native Navigation version now is 8.7.5 and previous I am using 7.40.3 but now I am upgrade react native version so I am use new version of RNN. below is my podfile for referance:

def node_require(script)
require Pod::Executable.execute_command(
'node',
['-p', "require.resolve('#{script}', {paths: [process.argv[1]]})", dir]
).strip
end

node_require('react-native/scripts/react_native_pods.rb')
node_require('@react-native-community/cli-platform-ios/native_modules.rb')

begin
node_require('react-native-permissions/scripts/setup.rb')
rescue
Pod::UI.warn "react-native-permissions not installed."
end

platform :ios, '15.1'
prepare_react_native_project!

$RNFirebaseAsStaticFramework = true

def firebase_modular_headers!
pod 'GoogleUtilities', :modular_headers => true
pod 'GoogleDataTransport', :modular_headers => true
pod 'nanopb', :modular_headers => true
end

$rn_config = nil

abstract_target 'FirstAppPods' do
$rn_config = use_native_modules!

firebase_modular_headers!

use_react_native!(
:path => $rn_config[:reactNativePath],
:app_path => "#{Pod::Config.instance.installation_root}/.."
)

pod 'ReactNativeNavigation', :path => '../node_modules/react-native-navigation'
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text', :modular_headers => true

if defined?(setup_permissions)
setup_permissions([
'Camera',
'FaceID',
'MediaLibrary',
'PhotoLibrary',
'PhotoLibraryAddOnly',
])
end

target 'FirstApp' do
end

target 'FirstApp Test' do
inherit! :complete
end
end

post_install do |installer|
react_native_post_install(
installer,
$rn_config[:reactNativePath],
:mac_catalyst_enabled => false
)

installer.pods_project.targets.each do |t|
t.build_configurations.each do |cfg|
cfg.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.1'
end
end
end

I am using firebase functionalities like analytics in app and below is my Package.json file for reference:

{
"name": "first-app",
"version": "0.01",
"android-version": "0.0.1",
"ios-version": "0.0.1",
"private": true,
"scripts": {
"android": "npx react-native run-android --mode 'envTestDebug' --appIdSuffix 'test.debug'",
"android-prod": "npx react-native run-android --mode 'envProdDebug' --appIdSuffix 'debug'",
"ios": "react-native run-ios",
"start": "react-native start --reset-cache",
"test": "jest",
"lint": "eslint .",
"postinstall": "patch-package"
},
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
"@react-native-clipboard/clipboard": "^1.16.3",
"@react-native-community/datetimepicker": "^8.6.0",
"@react-native-firebase/analytics": "^23.8.6",
"@react-native-firebase/app": "^23.8.6",
"@react-native-firebase/crashlytics": "^23.8.6",
"axios": "^1.13.5",
"base-64": "^1.0.0",
"buffer": "^6.0.3",
"compare-versions": "^6.1.1",
"form-data": "^4.0.5",
"google-libphonenumber": "^3.2.44",
"i18n-js": "^4.5.2",
"intl": "^1.2.5",
"lodash": "^4.17.23",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
"patch-package": "^8.0.1",
"prop-types": "^15.8.1",
"qs": "^6.15.0",
"react": "19.2.0",
"react-devtools": "^5.3.2",
"react-native": "0.83.0",
"react-native-background-timer": "^2.4.1",
"react-native-biometrics": "^3.0.1",
"react-native-blob-util": "^0.24.7",
"react-native-build-config": "^0.3.2",
"react-native-confirmation-code-field": "^7.6.1",
"react-native-device-info": "^13.2.0",
"react-native-devsettings": "^1.0.5",
"react-native-document-picker": "^9.3.1",
"react-native-encrypted-storage": "^4.0.3",
"react-native-exit-app": "^2.0.0",
"react-native-fingerprint-scanner": "git+https://github.com/hieuvp/react-native-fingerprint-scanner.git#9cecc0db326471c571553ea85f7c016fee2f803d",
"react-native-fs": "^2.20.0",
"react-native-image-crop-picker": "^0.51.1",
"react-native-indicators": "^0.17.0",
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"react-native-keychain": "^8.2.0",
"react-native-linear-gradient": "^2.8.3",
"react-native-modal": "^13.0.2",
"react-native-navigation": "8.7.5",
"react-native-permissions": "^5.4.4",
"react-native-qrcode-svg": "^6.3.21",
"react-native-recaptcha-v2": "^1.0.2",
"react-native-safe-area-context": "^5.5.2",
"react-native-svg": "^15.15.3",
"react-native-text-input-mask": "^3.2.0",
"react-native-webview": "^13.16.0",
"react-redux": "^9.2.0",
"redux": "^5.0.1",
"uk-modulus-checking": "^0.1.4"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "20.0.0",
"@react-native-community/cli-platform-android": "20.0.0",
"@react-native-community/cli-platform-ios": "20.0.0",
"@react-native-community/eslint-config": "^3.2.0",
"@react-native/babel-preset": "0.83.0",
"@react-native/eslint-config": "0.83.0",
"@react-native/metro-config": "0.83.0",
"@react-native/typescript-config": "0.83.0",
"@types/jest": "^29.5.13",
"@types/react": "^19.2.0",
"@types/react-native": "^0.73.0",
"@types/react-test-renderer": "^19.1.0",
"eslint": "^9.24.0",
"jest": "^29.6.3",
"metro-react-native-babel-preset": "^0.77.0",
"prettier": "3.8.1",
"react-native-svg-transformer": "^1.5.3",
"react-test-renderer": "19.2.0",
"typescript": "^5.8.3"
},
"engines": {
"node": ">=20"
}
}

AppDelegate.h
#import "RNNAppDelegate.h"
#import <UIKit/UIKit.h>

@interface AppDelegate : RNNAppDelegate

@end

AppDelegate.mm

#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>
#import <ReactNativeNavigation/ReactNativeNavigation.h>
#import <Firebase.h>

@implementation AppDelegate

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    [FIRApp configure];
    [ReactNativeNavigation bootstrapWithDelegate:self launchOptions:launchOptions];
    return YES;
    }

  • (NSURL *)bundleURL
    {
    #if DEBUG
    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
    #else
    return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    #endif
    }

@end

When I run app then I got this issue. Please help me out to solve this issue.

Image
What was the expected behaviour?

Want to run successfully run app.

Was it tested on latest react-native-navigation?
  • I have tested this issue on the latest react-native-navigation release and it still reproduces.
Help us reproduce this issue!

I mentions details about podfile and package.json file which I user and create project and may be use those into project and reproduce.

In what environment did this happen?

React Native Navigation version: 8.7.5
React Native version: 0.83.0
Has Fabric (React Native's new rendering system) enabled: (yes/no) no I believe
Node version: v20.20.0
Device model: iPhone 16 pro max simulator
iOS version: 18.3.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reported missing rnnavigation/rnnavigation.h error and inspect AppDelegate.h, AppDelegate.mm, and the Podfile alongside the React Native Navigation 8.7.5 and React Native 0.83.0 setup. Reproduce the iOS build using the provided configuration, then verify that the header is found and the app launches successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
46/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.