Build failed with Apple Mach-O Linker Error after fresh eject

#1

I am getting these errors after a fresh eject following steps in this doc.

I am using Facebook, Google and MapView from Expo.

#2

Hi, what does your Podfile look like and what does node_modules/react-native/package.json say for its version?

#3

Hi @ben, I resolved this by adding BatchedBridge to the Podfile.

I am using Expo v20 with react-native: https://github.com/expo/react-native/archive/sdk-20.0.0.tar.gz.

Here’s my full Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target 'palate' do
  pod 'ExpoKit',
    :git => "http://github.com/expo/expo.git",
    :tag => "ios/1.19.2",
    :subspecs => [
      "Core",
      "CPP"
    ]

  pod 'React',
    :path => "../node_modules/react-native",
    :subspecs => [
      "Core",
      "ART",
      "RCTActionSheet",
      "RCTAnimation",
      "RCTCameraRoll",
      "RCTGeolocation",
      "RCTImage",
      "RCTNetwork",
      "RCTText",
      "RCTVibration",
      "BatchedBridge",
      "RCTWebSocket",
      "DevSupport"
    ]
  pod 'Yoga',
    :path => "../node_modules/react-native/ReactCommon/yoga"


  post_install do |installer|
    installer.pods_project.main_group.tab_width = '2';
    installer.pods_project.main_group.indent_width = '2';

    installer.pod_targets.each do |target|

    if target.pod_name == 'ExpoKit'
      target.native_target.build_configurations.each do |config|
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'EX_DETACHED=1'
        # needed for GoogleMaps 2.x
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= []
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] << '${PODS_ROOT}/GoogleMaps/Base/Frameworks'
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] << '${PODS_ROOT}/GoogleMaps/Maps/Frameworks'
      end
    end


    # Build React Native with RCT_DEV enabled
    next unless target.pod_name == 'React'
    target.native_target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1'
    end

    end
  end
end
#4

Hi, it should have added BatchedBridge automatically for you. Any chance you were using an old version of exp when you ran exp detach?

#5

Sorry I cannot recall what version I was using. Probably 43.0.0.