react-nativecocoapodspodfile

React Native 0.75.4 - Pod install fails: Invalid `Podfile` file: undefined method `[]' for nil


I have just upgraded RN to 0.75.4 and also cocapods to 1.16.2. Since, pod install fails with the following:

[!] Invalid `Podfile` file: undefined method `[]' for nil.
 #  from <path>/Podfile:26
 #  -------------------------------------------
 #    project 'project.xcodeproj'
 >    config = use_native_modules!
 #  
 #  -------------------------------------------

I have tried clearing pods, node_modules, reinstalling cocoapods, nothing worked

Here is my Podfile after updating via the online RN upgrade helper tool: https://react-native-community.github.io/upgrade-helper/?from=0.73.8&to=0.75.4

# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

platform :ios, '13.4'
prepare_react_native_project!

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

# As per react-native-firebase doc
use_frameworks! :linkage => :static
$RNFirebaseAsStaticFramework = true


ENV['USE_HERMES'] = '0'

target 'project' do
  project 'project.xcodeproj'
  config = use_native_modules!

  use_react_native!(
    :path => config[:reactNativePath],
    # Fabric is not compatible with use_frameworks as per react-native-firebase doc
    :fabric_enabled => false,
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  def node_require(script)
    # Resolve script with node to allow for hoisting
    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-permissions/scripts/setup.rb')

  # ⬇️ uncomment wanted permissions
  setup_permissions([
    # 'AppTrackingTransparency',
    # 'Bluetooth',
    # 'Calendars',
    # 'CalendarsWriteOnly',
    'Camera',
    # 'Contacts',
    # 'FaceID',
    # 'LocationAccuracy',
    # 'LocationAlways',
    'LocationWhenInUse',
    # 'MediaLibrary',
    # 'Microphone',
    # 'Motion',
    'Notifications',
    # 'PhotoLibrary',
    # 'PhotoLibraryAddOnly',
    # 'Reminders',
    # 'Siri',
    # 'SpeechRecognition',
    # 'StoreKit',
  ])

  pod 'RNSecureStorage', :path => '../node_modules/rn-secure-storage/ios/RNSecureStorage.podspec'

  target 'projectTests' do
    inherit! :complete
    # Pods for testing
  end

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
          installer,
          config[:reactNativePath],
          :mac_catalyst_enabled => false,
          # :ccache_enabled => true
    )
  end
end

Solution

  • I fixed my issue by deleting the Podfile and re-creating it. I think the file might have be corrupted or something.