facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
119.58k stars 24.37k forks source link

Apple Mach-O Linker Error #29227

Closed fontanamichele closed 4 years ago

fontanamichele commented 4 years ago

Please provide all the information requested. Issues that do not follow this format are likely to stall.

Description

Hello everyone, I'm new to xCode, I've my app working on android (using windows) then I have to make a build for ios, after some troubleshooting I'm stuck in this problem, I've this error under 'React-RCCText-framework':

Undefined symbols for architecture x86_64: "_YGNodeIsDirty", referenced from: -[RCTBaseTextInputShadowView uiManagerWillPerformMounting] in RCTBaseTextInputShadowView.o -[RCTTextShadowView uiManagerWillPerformMounting] in RCTTextShadowView.o "_YGNodeMarkDirty", referenced from: -[RCTBaseTextInputShadowView dirtyLayout] in RCTBaseTextInputShadowView.o -[RCTTextShadowView dirtyLayout] in RCTTextShadowView.o "_YGNodeSetDirtiedFunc", referenced from: -[RCTBaseTextShadowView insertReactSubview:atIndex:] in RCTBaseTextShadowView.o -[RCTBaseTextShadowView removeReactSubview:] in RCTBaseTextShadowView.o "_YGNodeGetContext", referenced from: _RCTBaseTextInputShadowViewMeasure in RCTBaseTextInputShadowView.o _RCTTextInputShadowViewBaseline in RCTBaseTextInputShadowView.o _RCTInlineViewYogaNodeDirtied in RCTBaseTextShadowView.o _RCTTextShadowViewMeasure in RCTTextShadowView.o _RCTTextShadowViewBaseline in RCTTextShadowView.o "_YGNodeSetMeasureFunc", referenced from: -[RCTBaseTextInputShadowView initWithBridge:] in RCTBaseTextInputShadowView.o -[RCTTextShadowView initWithBridge:] in RCTTextShadowView.o "_YGNodeSetBaselineFunc", referenced from: -[RCTBaseTextInputShadowView initWithBridge:] in RCTBaseTextInputShadowView.o -[RCTTextShadowView initWithBridge:] in RCTTextShadowView.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

This is my Pod file

` platform :ios, '11.0' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

def add_flipper_pods!(versions = {}) versions['Flipper'] ||= '~> 0.33.1' versions['DoubleConversion'] ||= '1.1.7' versions['Flipper-Folly'] ||= '~> 2.1' versions['Flipper-Glog'] ||= '0.3.6' versions['Flipper-PeerTalk'] ||= '~> 0.0.4' versions['Flipper-RSocket'] ||= '~> 1.0' pod 'Firebase/Analytics' pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug'

List all transitive dependencies for FlipperKit pods

to avoid them being linked in Release builds

pod 'Flipper', versions['Flipper'], :configuration => 'Debug' pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug' pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug' pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug' pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug' pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug' pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug' pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug' end

post_install do |installer| add_flipper_pods! installer.pods_project.targets.each do |target| if ['RNFBApp'].include?(target.name) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'GoogleUtilities'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'FirebaseAuth'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'FirebaseAnalytics'}) elsif target.name.eql?('RNFBAnalytics') target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'FirebaseAnalytics'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'GoogleAppMeasurement'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'nanopb'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'FirebaseAuth'}) target.add_system_framework(installer.pods_project.targets.find{|target| target.name == 'GoogleUtilities'}) end end end

pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

Post Install processing for Flipper

def flipper_post_install(installer) installer.pods_project.targets.each do |target| if target.name == 'YogaKit' target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '4.1' end end

end end pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {} end target 'GENUSAPP' do

Pods for

pod 'react-native-flipper', :path => '../node_modules/react-native-flipper', :configuration => 'Debug'

use_native_modulconfig.js

use_frameworks! pod 'ViroReact', :path => '../node_modules/react-viro/ios/' pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/' 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 'GoogleUtilities' pod 'Firebase/Auth'

pod 'Firebase/Core'

pod 'Firebase/Analytics' pod 'GoogleAnalytics'

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/callinvoker', :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', :modular_headers => true

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 'GENUSAPPTests' do inherit! :complete

Pods for testing

end

use_native_modules!

Enables Flipper.

#

Note that if you have use_frameworks! enabled, Flipper will not work and

you should disable these next few

add_flipper_pods!

post_install do |installer|

flipper_post_install(installer)

end

end

target 'GENUSAPP-tvOS' do

Pods for GENUSAPP-tvOS

target 'GENUSAPP-tvOSTests' do inherit! :search_paths

Pods for testing

end end`

React Native version:

System: OS: macOS 10.15.5 CPU: (4) x64 Intel(R) Core(TM) i5-4570R CPU @ 2.70GHz Memory: 174.27 MB / 8.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 14.3.0 - /usr/local/bin/node Yarn: Not Found npm: 6.14.4 - /usr/local/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman Managers: CocoaPods: 1.9.3 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2 Android SDK: Not Found IDEs: Android Studio: Not Found Xcode: 11.5/11E608c - /usr/bin/xcodebuild Languages: Java: Not Found Python: 2.7.16 - /usr/bin/python npmPackages: @react-native-community/cli: Not Found react: 16.11.0 => 16.11.0 react-native: ^0.62.2 => 0.62.2 npmGlobalPackages: react-native: Not Found

Steps To Reproduce

Provide a detailed list of steps that reproduce the issue.

1. 2.

Expected Results

Describe what you expected to happen.

Snack, code example, screenshot, or link to a repository:

Please provide a Snack (https://snack.expo.io/), a link to a repository on GitHub, or provide a minimal code example that reproduces the problem. You may provide a screenshot of the application if you think it is relevant to your bug report. Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve

github-actions[bot] commented 4 years ago

We are using GitHub issues exclusively to track bugs in the core React Native library. Please try asking over on Stack Overflow as it is better suited for this type of question.