react-native clean cache in xcode ios - ios

I'm trying to install react-native-mixpanel in my app react-native v0.49.
when I compile it in android it works fine but in ios with xcode it shows me
ld: library not found for -lRNMixpanel-tvOS
clang: error: linker command failed with exit code 1 (use -v to see invocation)
so I decided to delete the plugin with commands:
react-native unlink react-native-mixpanel
npm uninstall react-native-mixpanel
then i run npm install again.
I don't see the plugin anymore in package.json.
in addition I delete any keyword in xcode settings with the word mixpanel but I still get the same error.
ld: library not found for -lRNMixpanel-tvOS
anyone to clean the cache or solve this issue?
thanks

I think i hit some simillar issue a few days ago on RN 49.3,
the problem was caused by some misplaced import (i'm not sure),
and for how i solved, it was by removing the library from Build phase-> Link Binary with libraries
and for Cleaning cache in xcode the shortcut is (Cmd + k).

Related

Build is failing for older projects for React-Native iOS XCode Version 12.5

It is very new to me see this problem which started happening recently. Previously my app used to work fine on the iOS simulator by running this command react-native run-ios. Now I have done a lot of research and made my app run via XCode. But somehow the metro bundler is not linked when the app runs via XCode.
I tried running the app via react-native run-ios and every time I am seeing this error. It is too big to copy paste every error here, but here are some of them:
Undefined symbols for architecture x86_64:
"Swift._ArrayBuffer._copyContents(initializing: Swift.UnsafeMutableBufferPointer<A>) -> (Swift.IndexingIterator<Swift._ArrayBuffer<A>>, Swift.Int)", referenced from:
generic specialization <serialized, Swift._ArrayBuffer<Swift.Int8>> of Swift._copyCollectionToContiguousArray<A where A: Swift.Collection>(A) -> Swift.ContiguousArray<A.Element> in libMixpanel-swift.a(AutomaticProperties.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
The following build commands failed:
Ld /Users/careerlabsdev/Library/Developer/Xcode/DerivedData/CareerLabs_Elev8-gxcfanteiuxazegkgwkjkrjxbdmw/Build/Products/Debug-iphonesimulator/CareerLabs.app/CareerLabs normal
(1 failure)
I have done a lot of things to make it to work. The only success I got here is, while running the command react-native run-ios, it opens up the metro bundler server. After that it fails with giving a 1000 lines of error. I picked the error which had some cream part. Some key words to pick from the error:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Did not understand the word Ld, which is listed under BUILD FAILED
What I did is as follows:
Deleting node_modules, Pods. Cleaning the build from XCode. Running npm install and then cd ios && pod install and then ran the command react-native run-ios
Deleting Pods, Podfile.lock. Did pod install and then in the root react-native run-ios
Doing these:
rm -rf ~/Library/Caches/CocoaPods
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate
pod setup
pod install
cd ..
react-native run-ios
Restarted the system, and ran the command again react-native run-ios
Added arm64 in the Excluded Architecture from XCode. Please note, this enabled me to build and run the app successfully on XCode. But it doesn't get attached to the metro bundler server. Looks like it runs the release mode only.
Updated my package react-native-gesture-handler to the latest one which is 1.10.3, to see if that removes my problem. But no luck.
My Podfile look like this:
platform :ios, '10.0'
use_flipper!({'Flipper' => '0.81.0'})
post_install do |installer|
flipper_post_install(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
I am out of options now, and waiting for some insight to be given. It is indeed frustrating to see an error on something which never created a problem. I am using Apple M1 Chip Macbook.
Update V1.0
I have tried commenting down the use_flipper!(), from the /ios/Podfile, and then redid the same things, like removing Pods, Podfile.lock. Running this command, pod update && pod install && cd.. && npm run ios. Ran into multiple issues. I don't know what the issue is with XCode and React Native on Apple M1.
Update V2.0
I have found some significant places where the developers are complaining about the same. XCode has forced updated my version to 12.5, without my notice. And now XCode is creating a problem with RN Older projects. Here are the supportive links for the same:
Flipper doesn't build with XCode 12.5 (GitHub)
Do I need Flipper? (Reddit)
I hope this may give some insight to the developers who are confused like me. Please take a look, and looks like Facebook is fixing it, but don't know when. Have to keep an eye on it :/
The one hacky thing which I did to make my app run again like before, is to downgrade the XCode Version to the previous stable one, that is Version 12.4. I knew about the problem later, cos, XCode force updated my version which started behaving weird with my already existing project. So the only viable option I saw is to downgrade the version to the previous one, and everything worked like before.
Please Note: This issue exists majorly with Apple M1 along with XCode v12.5 and BigSur OS. So go ahead keeping these things in your mind.
For this, I had to do these things:
Uninstall the XCode completely from the Mac. To do that efficiently, considering XCode does caches a lot of things on your Mac, use Mac App Cleaner. If by any chance, you have just removed the XCode without using the link, then use this Completely remove Xcode from Mac.
Install the XCode from this resource XCode Releases. Please Note: This is a legit source which takes you directly to the Apple's download pages, and no unreliable thing. So you can just go ahead and download the previous stable version of the XCode, with which your app was working fine.
Please Note: Installing the XCode from App Store will again install the latest version of the XCode which is buggy v12.5. So please don't download and install the same from Apple Store. Use the above mentioned source only for best results.
Install it when the file is downloaded. Make sure you follow this Setting up development environment React Native, to avoid any mishaps.
Run the app again.
It will work for you, as it did work for me, and now I am continuing my work on my project without any hassle. Cheers!
I am guessing all third party Pods will need to update their RN Pod Specs to use XCFrameworks. That's what I just did and it seems to work ok.
This means that you, as an RN package user, you will either need to wait for the package authors to update their podspecs to use XCFrameworks or add a build config that excludes the 'arm64' arch (but then will not work on M1 macs).
Alternatively, you can visit the node_modules/<package>/thrid-party.podspec and update it yourself. But that means you will need to build the XCFrameworks yourself too. So.....

React Native and RNFirebase iOS Release Builds Failing

I'm using Firebase via RNFirebase in React Native. I've gone through the steps here: https://rnfirebase.io/docs/v5.x.x/installation/ios.
Debug builds in the Simulator and to my device work just fine, but when I attempt to archive a Release build it fails with this error.
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/FirebaseAuth'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/FirebaseCore'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/GTMSessionFetcher'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/GoogleUtilities'
ld: warning: directory not found for option '-L/Users/rob5408/Library/Developer/Xcode/DerivedData/myApp-fggubxxejruuksefqfhjorhysodz/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/nanopb'
ld: library not found for -lFirebaseAuth
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Also in the build logs I can see that the Debug config builds those targets, but they are not in the output for Release config builds. I get the feeling it has to do with building for all architectures, but don't know how where to start solving that. I just feel like I am poking around without a real strategy to solve it. Any ideas?
Some things I have tried...
Using the Legacy Build System
Removing node_modules and rerunning npm install
Removing / adding the related pods
Deintegerating and readding Cocoapods
Clearing DerivedData
Restarting my computer
I've seen this happen when switching use_frameworks! off and on.
The solution was deleting FirebaseAuth and other libraries from the Build Setting - Other Linker Flags(OTHER_LDFLAGS)
I got help from this PR: https://github.com/invertase/react-native-firebase-starter/pull/61
It was a combo of dropping down to the Legacy Build System in Xcode 10 and upgrading React Native to 0.57.2.

Build failing, Parse-Server/Pod/Bolts

I'm using Parse-Server/Heroku and just installed the pod for Parse in an iOS project of mine (written in objective C).
I am using Xcode Version 9.2 and pod version 1.3.1.
The macOS is High Sierra Version 10.13.2.
When I try to build the project, I get this error:
ld: library not found for -lBolts
clang: error: linker command failed with exit code 1 (use -v to see invocation)
But Bolts seems to be installed, as a dependency when I run pod install.
Any idea about what I can do to solve the problem?
I presume the information I am giving here may not be enough. If more is needed to solve the issue please let me know what I should provide.
If you're using cocoapods, make sure you're opening the generated workspace and not the project itself.

react-native library not found for -lRNSVG-tvOS

I'm using react-native for developing android and ios app.
I know nothing about ios-development and Xcode environment.
When i run react-native run-ios i see this error:
ld: library not found for -lRNSVG-tvOS
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
Any ideas?
UPD:
This might be caused by react-native-svg or react-native-vector-icons package.
related to https://github.com/facebook/react-native/issues/13783
Just removed *-tvOS.a file from libraries
From https://github.com/rebeccahughes/react-native-device-info/issues/258#issuecomment-340434729:
Seems like a bug caused by react-native link
You can manually delete
libRNDeviceInfo-tvOS.a in Xcode -> [Your iOS build target] -> Build
Phrases -> Link Binary with Libraries.
We had a multi target setup for multiple clients. This library was added to base target. Make sure to remove from correct target.

LINKER ERROR: ld: library not found for -lPods (Trying to build .xcworkspace)

It looks like the linker fails when it tries to run this command:
Ld
...Developer/Xcode/DerivedData/PROJECTNAME-fnilwppptrsqymdbybvlohrlvbks/Build/Products/Debug-iphoneos/PROJECTNAME.app/`PROJECTNAME
I tried to see if that path exists and it doesn't. It only exists up until:
...Developer/Xcode/DerivedData/PROJECTNAME-fnilwppptrsqymdbybvlohrlvbks/Build/Products/Debug-iphoneos/PROJECTNAME.app/
I am not sure how to get by this error?
(I'm trying to build the .xcworkspace so the issue is not with that.)
Follow this steps:
Uninstall the App from Device or Simulator.
Make sure close all Xcode Projects. (.xcworkspace and .xcproject) (sometimes .xcproject still open)
Run pod install and pod update
Open the .xcworkspace
Clean and Build your Project
After that you should be able to run normally.

Resources