Cli: Unable to do pod install. Throwing error use_native_modules!

Created on 3 Nov 2020  路  9Comments  路  Source: react-native-community/cli

Environment

I am upgrading two react native project from 0.59.10 to 0.63.2. The project A was successfully upgraded. But facing a problem with the project B (only for ios. Android is working). when I try to do pod install it's throwing an error. I just went back to the project A, cleaned all, and did pod install it still working. Not sure why its causing a problem with the project B.

pod version: tried with 1.10.0 and 1.7.5

Description:

Log:

Node modules has this path @react-native-community/cli-platform-ios/native_modules

pod install --verbose
  $ /usr/local/bin/node -e try {console.log(require('@react-native-community/cli').bin);} catch (e) {console.log(require('react-native/cli').bin);}
  undefined
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/Users/bala/Documents/projectName/ios/undefined'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

[!] Invalid `Podfile` file: 784: unexpected token at ''.

 #  from /Users/bala/Documents/projectName/ios/Podfile:15
 #  -------------------------------------------
 #
 >    config = use_native_modules!
 #
 #  -------------------------------------------

/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:318:in `rescue in block in from_ruby'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:312:in `block in from_ruby'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:50:in `instance_eval'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:50:in `initialize'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:310:in `new'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:310:in `from_ruby'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.0/lib/cocoapods-core/podfile.rb:276:in `from_file'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/config.rb:205:in `podfile'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:160:in `verify_podfile_exists!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/command/install.rb:46:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'

package.json

Just to verify I have removed all dependencies from package.json, kept only react and react native, and tried pod install. Still same error.

"dependencies": {
    "react": "16.13.1",
    "react-native": "0.63.2"
  },
  "devDependencies": {}

podfile:

require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'

target 'projectName' do

  # Pods for projectName
  pod 'Firebase/Core', '~> 4.13.0'
  pod 'Firebase/Messaging'
  pod 'TwilioVideo', '~> 3.2.3'
  pod 'AppsFlyerFramework'

  config = use_native_modules!
  use_react_native!(:path => config["reactNativePath"])

end
bug report

All 9 comments

Did you try this tool?

React Native Upgrade Helper

Yes. @chakrihacker I followed the same on both projects.

@chakrihacker I am also facing the same issue. Any help will be appreciated. Thanks

Try this

add the following line in the beginning

require_relative '../node_modules/react-native/scripts/react_native_pods'

and remove pods you added and check

I have same issue,how to fix ?

What's the output of running react-native config command from ios directory or from root?

What's the output of running react-native config command from ios directory or from root?

In iOS folder

Command `config` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.

In project root

(node:63080) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)

EDIT:

This is happening going from 0.60.6 to 0.62.0, btw. For some reason my react-native-cli seems to come back as 2.0.1 for some reason.

pod --version
1.10.0

EDIT:

ruby --version
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

I'm having the same error, but only when running trough CI. If I remote access the CI machine, and run there locally, it works fine.

I found the solution in my case:

It may be that my react-native CLI was globally installed and out of date due to package manager changes. However, once I fixed this by deleting yarn's version and installing with pnpm, the problem persisted and doing react-native --version gave an error about my config. I had also tried to run npx react-native-macos-init more than once but had it fail because of one package manager or another bring broken or uninstalled. This left my react-native.config.js with multiple lines of code containing:

const macSwitch = '--use-react-native-macos'

if (process.argv.includes(macSwitch)) {
  process.argv = process.argv.filter((arg) => arg !== macSwitch)
  process.argv.push('--config=metro.config.macos.js')
  module.exports = {
    reactNativePath: 'node_modules/react-native-macos',
  }
}

Deleting all but one allowed me to go back and run pod install without issues.

Was this page helpful?
0 / 5 - 0 ratings