Symbol(s) not found for architecture x86_64 in Xcode 13

Viewed 114

Currently I'm working on integrating the firebase cloud messaging service to a react native mobile application. I followed their documentation on firebase integration and edited the pod file to use frameworks.

When using the frameworks. I got an error about transitive dependencies. that's why I had to add pre install do and $static_framework.

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

platform :ios, '11.0'

$RNFirebaseAsStaticFramework = true
target 'P2PMobileApp' do
  use_frameworks!

  $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly', 'CocoaAsyncSocket', 'ComponentKit', 'DoubleConversion', 'glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit', 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']

  pre_install do |installer|
    Pod::Installer::Xcode::TargetValidator.send(:define_method,:verify_no_static_framework_transitive_dependencies) {}
    installer.pod_targets.each do |pod|
      if $static_framework.include?(pod.name)
        def pod.build_type;
          Pod::BuildType.static_library
        end
      end
    end
  end
  config = use_native_modules!

  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change `false` to `true` and then install pods
    :hermes_enabled => false
  )

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

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

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  # use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end
end

Now I'm having following error when I try to run app with react-native run-ios

Undefined symbols for architecture x84_64:
  "google::LogMessage::LogMessage(char const*, int, int)", referenced from:
    __react_native_log_default in react_native_log.o
  "google::LogMessageFatal::LogMessageFatal()", referenced from:
    __react_native_log_default in react_native_log.o
...

Note: I have done my pod installation with arch -x86_64 pod install because I'm working on a mac mini with an M1 chip.

I tried to resolve that issue with the following solutions. But none of them worked out

  • Link binaries with xcode
  • Changing the architecture
  • Change the architecture for pod installation (Then I get the same issue related to arm64)
  • Removing glog from $static_framwork variable (Then the same Undefined symbols for architecture x84_64: issue arises for double conversion module)

Still I,m stuck with build fails. Any help on this will be highly appreciated.

1 Answers

If you are using M1 chip then it can be resolved with below steps:

Go to application > right click on Xcode > Get info > select Open using Rosetta Restart the system

enter image description here

The other solution can be adding library

You can add it by:

  • Clicking on your project in the upper left of the left pane (the blue icon).
  • In the middle pane, click on the Build Phases tab.
  • Under "Link Binary With Libraries", click on the plus button.
  • Find YOUR_FRAMEFOERK.framework from the list and hit Add.
Related