React Native - iOS - Invalid `Podfile` file: undefined method `[]' for nil:NilClass

22,388

Solution 1

This error happens when you cd to ios folder and run "pod install" and is because you added a new react native module by

npm -i package

instead of using yarn

yarn add package

To solve this problem, just go to the main react native project folder where package.json is and run the command below again

yarn cache clean

yarn add package

Then try cd to the ios folder and run "pod install" and there will no more errors. Hope this can help the other people who are also facing the same problem.

Solution 2

This answer solve my problem well :

react-native ios Podfile issue with "use_native_modules!"

Here is the correct answer:

1 - Your POD File should contain this line on top

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

2 - Make sure your package.json and node_module folders has this module installed

cli-platform-ios/native_modules

3 - If you didn't find after you run yarn install - means you have old cache node_modules in your machine and you need to clean it before reinstalling the package again.

4 - Clean cache

$ yarn cache clean

5 - Make sure you have this file react-native.config.js and its configuration is VALID - and it doesn't have non-existing NPM packages - this step is LAST AND MOSTLY THE CAUSE of the error

Example of my react-native.config.js

module.exports = {
  project: {
    ios: {},
    android: {},
  },
  assets: ['./assets/fonts/']
  dependencies: {}, // make sure this deps are all valid installed packages or empty if you don't need it
};

6 - Install node packages yarn install and your pods should work now! $ pod install --repo-update

HAPPY coding!

Share:
22,388
Cutaraca
Author by

Cutaraca

Updated on July 23, 2022

Comments

  • Cutaraca
    Cutaraca almost 2 years

    I have just started out with React Native. I was following the React Native CLI Quickstart from the official documentation. That does also mean I am up to date with React Native version 0.61.2.

    Since then I have done some basic UI, checking with the result in the iPhone simulator. It works when running react-native run-ios, not really touching the ios/Podfile too much.

    My problem is running pod install inside my ios/ folder always results in an error! This becomes a problem now where I need to install additional packages. But it is already failing with default Podfile!

    Error message:

    [!] Invalid `Podfile` file: undefined method `[]' for nil:NilClass.
    
     #  from /Users/marcel/Projekte/WerBinIch/ios/Podfile:43
     #  -------------------------------------------
     #  
     >    use_native_modules!
     #  end
     #  -------------------------------------------
    

    ios/Podfile

    platform :ios, '9.0'
    require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
    
    target 'WerBinIch' do
      # Pods for WerBinIch
      pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
      pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
      pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
      pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
      pod 'React', :path => '../node_modules/react-native/'
      pod 'React-Core', :path => '../node_modules/react-native/'
      pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
      pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
      pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
      pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
      pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
      pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
      pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
      pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
      pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
      pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
      pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
      pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
    
      pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
      pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
      pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
      pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
      pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
      pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
      pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    
      pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
      pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
      pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
    
    
      target 'WerBinIchTests' do
        inherit! :search_paths
        # Pods for testing
      end
    
      use_native_modules!
    end
    

    I have no idea how to deal with this! I have no idea how the Podfile and the thing with the xcode files really work! I was trying to delete folders accomplishing a reset. More than that I have no idea what the error message could mean.