Error when 0.61.5 -> 0.62 – Xcode error: Undefined symbol: _OBJC_CLASS_$_FlipperKitNetworkPlugin in React Native Community Upgrade Support
Explanation of the problem
The problem is related to upgrading react-native version from 0.61.5 to 0.62 on macOS 10.15.4. After following upgrade-helper and #13, there is an error in Xcode. The error message is “Undefined symbol: OBJC_CLASS$_FlipperKitNetworkPlugin Undefined symbol: OBJC_CLASS$_SKIOSNetworkAdapter Undefined symbol: OBJC_CLASS$_FlipperKitReactPlugin Undefined symbol: OBJC_CLASS$_FKUserDefaultsPlugin Undefined symbol: OBJC_CLASS$_FlipperKitLayoutPlugin Undefined symbol: OBJC_CLASS$_SKDescriptorMapper Undefined symbol: OBJC_CLASS$_FlipperClient”. This error message is related to using flipper in the project and possibly caused by a compatibility issue between the new version of react-native and the flipper library. A similar issue has been reported in the flipper repo, and the solution suggested there did not help in this case.
Troubleshooting with the Lightrun Developer Observability Platform
Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.
- Instantly add logs to, set metrics in, and take snapshots of live applications
- Insights delivered straight to your IDE or CLI
- Works where you do: dev, QA, staging, CI/CD, and production
Start for free today
Problem solution for error when 0.61.5 -> 0.62 – Xcode error: Undefined symbol: _OBJC_CLASS_$_FlipperKitNetworkPlugin in React Native Community Upgrade Support
Other popular problems with React Native Community Upgrade Support
Problem: Error when building the app with undefined symbol for FlipperKit plugins
When upgrading React Native from version 0.61.5 to 0.62, an error may occur when building the app with undefined symbol for FlipperKit plugins. This error can be caused by a mismatch in the configuration of the target and the FlipperKit pods in the Podfile.
Solution:
To fix this issue, make sure that the targets in the Podfile match the configurations for the FlipperKit pods. For example, in the Podfile, the targets should be defined as project ‘gotobridge’, ‘Debug-dev’ => :debug, ‘Release-dev’ => :release, ‘Debug’ => :debug, ‘Release’ => :release. And the FlipperKit pods should be added with the configuration option, like this: pod ‘FlipperKit’, version, :configuration => [‘Debug-dev’, ‘Release-dev’].
Problem: Error when launching the app with Thread 1: signal SIGABRT
After building the app, it may crash on launch with Thread 1: signal SIGABRT error. This error can be caused by a mismatch in the version of the system library and the version required by the app.
Solution:
To fix this issue, you can add a File.swift in your project, or you can change the runpath search path in xCode BuildSettings -> Linking -> runpath search path. Change each build line to: /usr/lib/swift $(inherited) and that should resolve the issue.
Problem: Error when upgrading React Native with multiple schemes
When upgrading React Native, an error may occur when using multiple schemes.
Solution:
To fix this issue, you can make the following change in your Podfile. Change the use_flipper! to use_flipper!(configurations: [‘Debug’, ‘Local.Debug’, ‘Staging.Debug’]). This will configure the flipper pods to work with the specified schemes.
A brief introduction to React Native Community Upgrade Support
React Native Community Upgrade Support is a set of tools and resources that help developers to upgrade their React Native applications to the latest version. The community-driven project aims to make the upgrade process as smooth as possible by providing detailed instructions and solutions to common problems that developers may encounter during the upgrade process. This includes providing guidance on how to handle breaking changes, troubleshoot build issues, and update dependencies.
In addition to the upgrade support, the React Native Community also provides a variety of other resources such as guides, tutorials, and best practices for developing React Native applications. The community is composed of developers from all over the world who contribute to the project by sharing their knowledge and experience. This makes it a valuable resource for developers looking to learn more about React Native and stay up to date with the latest developments in the ecosystem.
Most popular use cases for React Native Community Upgrade Support
- Upgrading React Native versions: React Native Community Upgrade Support provides a set of tools and guidelines for upgrading React Native versions in a safe and efficient manner. This includes the use of the upgrade-helper tool, which can automatically apply changes to your application code and dependencies, minimizing the risk of breaking changes.
- Debugging and troubleshooting issues: React Native Community Upgrade Support also provides a wealth of resources for debugging and troubleshooting issues that may arise during the upgrade process. This includes detailed documentation on common issues and their solutions, as well as a community forum for discussing and sharing solutions with other developers.
- Enhancing application performance: Upgrading to the latest version of React Native can also provide performance enhancements and new features for your application. Code snippets and examples are provided to help developers take advantage of these enhancements, such as improved memory management, improved startup time, and new APIs.
It’s Really not that Complicated.
You can actually understand what’s going on inside your live applications.