Search code examples
react-nativepodfile

No podspec found for `FBLazyVector` after RN upgrade


EDIT: the solution for me was to use my previous PodFile before upgrading, ios app is working now.

I upgraded an RN app to 0.59.1 (it was at 0.57.8) using react-native upgrade, android version is working but for the ios version i'm stuck with pod install which trows this error:

[!] No podspec found for `FBLazyVector` in `../node_modules/react-native/Libraries/FBLazyVector almost all react-native dependencies are giving similar errors, i know that by commenting pods one by one and running pod install

here is my Podfile:


# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
 require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
target 'MdcIos' do
  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'


  pod 'GoogleAnalytics'
  pod 'Firebase/Core'
  pod 'Firebase/Messaging'
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for MdcIos

  pod 'RNLanguages', :path => '../node_modules/react-native-languages'
  pod 'RNIap', :path => '../node_modules/react-native-iap'


  pod 'Firebase/Core'
  pod 'Firebase/AdMob'
  pod 'Fabric', '~> 1.9.0'
  pod 'Crashlytics', '~> 3.12.0'


  pod 'RNBackgroundFetch', :path => '../node_modules/react-native-background-fetch'

  pod 'react-native-orientation', :path => '../node_modules/react-native-orientation'

  pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'

  pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'


  pod 'RNScreens', :path => '../node_modules/react-native-screens'



  pod 'RNZipArchive', :path => '../node_modules/react-native-zip-archive'

  pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'

  pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'

  pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'

  pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage'




end
post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'react-native-google-maps'
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end
    if target.name == "React"
      target.remove_from_project
    end
    if target.name == 'yoga'
      target.remove_from_project
      target.build_configurations.each do |config|
          config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO'
          config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
      end
    end
  end
end

and package.json:

{
  "name": "MdcIos",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest",
    "build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios' --assets-dest='./ios/'",
    "build:android": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res --verbose"
  },
  "dependencies": {
    "@react-native-community/async-storage": "1.6.1",
    "@react-native-community/netinfo": "4.4.0",
    "abortcontroller-polyfill": "^1.4.0",
    "buffer": "5.2.1",
    "i18next": "14.0.1",
    "jetifier": "^1.6.4",
    "moment": "2.24.0",
    "react": "16.8.3",
    "react-i18next": "9.0.8",
    "react-native": "0.59.1",
    "react-native-android-open-settings": "1.3.0",
    "react-native-app-store-review": "0.0.3",
    "react-native-appstore-version-checker": "2.7.2",
    "react-native-background-fetch": "2.6.0",
    "react-native-bottomsheet": "1.9.5",
    "react-native-communications": "2.2.1",
    "react-native-countdown-component": "2.4.0",
    "react-native-device-info": "0.24.3",
    "react-native-elements": "1.2.6",
    "react-native-firebase": "5.2.1",
    "react-native-gesture-handler": "1.2.1",
    "react-native-iap": "2.4.0-beta13",
    "react-native-image-picker": "0.27.2",
    "react-native-image-zoom-viewer": "2.2.26",
    "react-native-keyboard-aware-scroll-view": "0.8.0",
    "react-native-languages": "3.0.2",
    "react-native-loading-spinner-overlay": "1.0.1",
    "react-native-maps": "github:jerolimov/react-native-maps#fix-rn59rc-compile-issues",
    "react-native-material-menu": "0.4.2",
    "react-native-orientation": "3.1.3",
    "react-native-permissions": "1.2.0",
    "react-native-photo-upload": "1.3.0",
    "react-native-picker-select": "6.1.0",
    "react-native-progress": "3.6.0",
    "react-native-reanimated": "1.2.0",
    "react-native-screens": "2.0.0-alpha.1",
    "react-native-simple-radio-button": "2.7.3",
    "react-native-vector-icons": "6.6.0",
    "react-native-zip-archive": "5.0.0",
    "react-navigation": "4.0.0",
    "react-navigation-stack": "1.9.4",
    "react-redux": "6.0.0",
    "react-timer-mixin": "0.13.4",
    "redux": "4.0.4",
    "redux-persist": "6.0.0",
    "rn-fetch-blob": "0.10.15"
  },
  "devDependencies": {
    "@react-native-community/cli-platform-ios": "3.0.0",
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.49.1",
    "react-test-renderer": "16.6.1"
  },
  "jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    }
  }
}

THANKS!


Solution

  • This is what worked for me: using my podFile before upgrading.

    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'
    platform :ios, '9.0'
    target 'MdcIos' do
      pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/Yoga.podspec'
      pod 'React', path: '../node_modules/react-native', :subspecs => [
        'Core', 'ART', 'DevSupport',
        'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', 'RCTNetwork',
        'RCTPushNotification', 'RCTText', 'RCTWebSocket', 'RCTGeolocation',
      ]
    
      pod 'RNPermissions', :path => '../node_modules/react-native-permissions'
      permissions_path = '../node_modules/react-native-permissions/ios'
      pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications.podspec"
    
      pod 'GoogleAnalytics'
      # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
      # use_frameworks!
    
      # Pods for MdcIos
    
      pod 'RNLanguages', :path => '../node_modules/react-native-languages'
      pod 'RNIap', :path => '../node_modules/react-native-iap'
    
      pod 'Google-Mobile-Ads-SDK', '~> 7.41'
      pod 'Firebase/Core', '~> 6.13.0'
      pod 'Firebase/Messaging', '~> 6.13.0'     
      pod 'Firebase/RemoteConfig', '~> 6.13.0'
      pod 'Firebase/AdMob', '~> 6.13.0'
      # Crashlytics
      pod 'Fabric', '~> 1.10.2'
      pod 'Crashlytics', '~> 3.14.0'
    
      pod 'RNBackgroundFetch', :path => '../node_modules/react-native-background-fetch'
    
      pod 'react-native-orientation', :path => '../node_modules/react-native-orientation'
    
      pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
    
      pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'
    
      pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
    
      pod 'RNScreens', :path => '../node_modules/react-native-screens'
    
    
    
      pod 'RNZipArchive', :path => '../node_modules/react-native-zip-archive'
    
      pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage'
    
      pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
    
      pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
    
      pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
    
      pod 'RNCPushNotificationIOS', :path => '../node_modules/@react-native-community/push-notification-ios'
    
      pod 'react-native-settings', :path => '../node_modules/react-native-settings'
      
    
    
    
      pod 'react-native-maps', :path => '../node_modules/react-native-maps'
    
    end
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        if target.name == 'react-native-google-maps'
          target.build_configurations.each do |config|
            config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
          end
        end
        if target.name == "React"
          target.remove_from_project
        end
        if target.name == 'yoga'
          target.remove_from_project
          target.build_configurations.each do |config|
              config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO'
              config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
          end
        end
      end
    end