ld: framework not found Crashlytics - ios

After a pull I suddenly get the following error in xcode:
ld: framework not found Crashlytics
However my team mate has no problem. He updated Crashlytics and pushed his changes on SourceTree as it runs fine on his computer. Even if I totally remove the project and do a git clone, it still doens't work.

The problem is caused by a bug in SourceTree that doesn't detect type changes in binary files. When your team mate updated Crashlytics and Fabric, source tree didn't recognise a few of the binary symlink changes it made. Solution is to do the following:
Go to his terminal
Navigate to his project folder (cd ~/folder/to/project)
Add the missing files (git add --all)
Commit his changes from there (git commit -a -m "My informational commit message")
Push his changes (git push origin branch_name)
And then finally on your computer do a pull (git pull origin branch_name)

please add $(inherited) in FRAMEWORK_SEARCH_PATHS build settings this worked for me.

Check your TARGET - Build Settings - Other Linker Flags
If you just updated to pod 'Firebase/Crashlytics' and there is Crashlytics exists, make it FirebaseCrashlytics.
And also check there is Fabric, If exists that remove it.
(Remove next line framework which is under Fabric line too)
It should build successfully now.

Check your TARGET - Build Settings - Other Linker Flags
If you just updated to pod 'Firebase/Crashlytics' and there is Crashlytics exists, make it FirebaseCrashlytics.
Similarly if you will see in the terminal, pod which is removed please remove from
Other Linker Flags also
Example: Fabric, FirebaseInstanceID.
(Remove next line framework which is under Fabric, FirebaseInstanceID line too)
It should build successfully now.

In case you do not have access to the original repo (in order to check in the missing files), re-adding the framework using FabricĀ“s helper-tool also works as a "repair" for the build.

add $(inherited) in Framework Search Paths in Target Build Settings. Issue gets fixed.

just find in Project .ld file and remove it From Project and then
Debug,
its working perfectly.
after removing all your functionality stay as it is.
its not depended on that .ld file.
so , solution for that one is to remove it.

Related

framework not found RealmSwift

I was installing Realm and imported to my project but when I run the app it shows me an error:
ld: framework not found RealmSwift
clang: error: linker command failed with exit code 1 (use -v to see invocation)
There can be multiple reasons for this issue.
To get the exact issue you can follow the below step :
Right click on error and select 'Reveal in log'. This will give you more insight about the reason of error.
One of the solution is to setting the 'Enabled Bitcode' to No. For this go to Build settings in your target and search 'Bitcode' in the search field.
I have faced this issue multiple times and one of the below solution may work for you.
After installing the pods make sure that you're opening the workspace instead of Xcode project file.
Restart Xcode
Remove derive data for your application
Reintegrate pods using pod deintegrate and pod install for your project
Reset simulator(If you are viewing the output in simulator)
Ensure proper linking of Framework in your project
Restart simulator
Clean project etc.
Hope this may help you.
I was having the same issue.
Initially, I was trying to import the files (Realm.framework and RealmSwift.framework) from download folder but then i was getting the same error like yours.
What i did then, i copied the folder containing the (Realm.framework and RealmSwift.framework) into the project folder and then i imported the files from there. That resolves my issue.
In my case, I've updated the Cocopods to the latest version (1.1.0) via this command sudo gem install cocoapods
is it possible that you are still running the .xcodeproj file. You should run .workspace file in your xcdoe

Xcode 9 - linker command failed with exit code 1

While compiling the application getting as following error
" compiled with older version of Swift language (3.0) than previous files (4.0) file "
Could you please help me?
Use the xcworkspace to build instead of the xcproject?
This usually happens when using Cocoapods and you are building from the xcproject which doesn't know about the cocoapod libraries.
Delete the derived data and do a clean build.
And if you are building a framework, make sure you've selected Generic IOS Device while building or set the Build for Active Architecture only as true in Build Settings.
I think this happens because you changed your app name or maybe the target
look to solve this problem see your target in Podfile
and then come back to your xcode in the targets
select your target app and in linked Frameworks and Libraries (the last one down) see if there's
any pods with light color and a strange name than your target in the podfile
and remove it using the minus button down .
I'd rather fix the specific problem, but if none of the other answers worked a full reset can solve it. If you are getting this error and you are also getting error readouts that refer to "duplicate symbol files", AND all other efforts have failed, then a full reset could work for you.
What worked for me:
Read the error report to identify the repo that supposedly contains duplicate files.
Drag repo to the trash.
re-clone your repo.
set up your repo with correct remote tracking. git remote add <url.git>, or git remote set-url <url.git>
This absolutely worked for me. In my case for some elusive reason, when I ran git pull upstream develop for a local dependency, git would pull in/generate duplicate files from multiple commits.
After following the above steps, the issue went away and git pull upstream develop was no longer pulling from multiple commits at once. Perhaps there was a weird git cache for my repo.
I had the two copies of files in the codebase. Deleting one copy helped code to build successfully
I am probably late for you, but for future devs in problems...
If you have been manipulating the podfile or creating new targets or maybe changing the name of any of them, check that in build phases options your just have correct pod framework for the name of the targets.
if you have pod
first clean project and close Xcode then open terminal and go to folder of Project then pod update
open the project and run
in my case work!
I fixed this problem today by running the app in the simulator using the target associated with the bundle file named in the Build Settings-->Bundle Loader setting of the test target. Previously I had deleted my derived data folder while working on a different target that has a different Product Name than the one associated with the test target bundle file. Rerunning the app in the simulator must have recreated the bundle file in the derived data folder that the test target is looking for and then my tests started running fine.

missing required module 'SwiftShims' error generated by Xcode in project

I copied my project in a running state but the copied project doesn't work for me although the actual project is running fine. When I build my copied project it gives me the following error:
I have cleared the cache and the derived data but the build still fails.
Does anyone have an idea what might cause this issue? Thanks in advance.
If you are using CocoaPods, open yourProject.workspace instead of yourProject.xcodeproj.
If you're working with SPM, deleting the .build folder and re-running swift build solves the issue for me.
Did you try to remove the cache ?
rm -rf /Users/abdulrehman/Desktop/StudentMentor/DerivedData/ModuleCache/DLJPQMLQI1Q/
(I might have wrong copied your file path. So feel free to type it manually if there is nothing to remove at this path)
Goto your project folder
Delete the contents inside the DerivedDataXcode folder.
Clean the project
Run.
I had the same error, but the reason turned out to be having different iOS versions specified as Podfile's platform :ios and as my project's deployment target.
SwiftShims is a module defined in the standard library. It shouldn't be missing. I think it's because your DerivedData path changed, and now the compiler can't find its cache anymore.
I had the same issue...and after a lot of trial and error, the following worked for me..
Open your Xcode Workspace File -> Project_name(directory option on left) -> build settings -> Excluded Architectures -> Select 'Any iOS simulator SDK' and type arm64 in front of that ( for both build and release).
Repeat the same procedure for pods
Go to VS code and delete pod-lock and pod folder
open podfile and Paste the following code right above "target 'name-tvOS' do" in podfile.
post_install do |installer| flipper_post_install(installer) installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end end
(Note: some of the code body form above may already be there. In that case replace that part with this.)
Save it and run 'pod install' in your project's terminal.
go back to xcode and clear build (Cmd+Shift+K) and then build your project (Cmd+B)
Hopefully it will build without any issues.. Happy Coding!
You may get this error if you rename the project directory.
For your reference, I was using Flutter, so
flutter clean
It was solved with.
I have once encountered for a private local pod, which somehow Cocoapod set the lib product name as eg. "MyLib-6c4b1003" -- with a prefix in hex.
This random hex somehow changed, but the project Other Link Flags still using the old one. I did the search to find out the references to the old hex and deleted them, run pod install and the right name will be used.
I still cannot understand why there is this random hex in the prefix, but seems like Cocoapods setting up of the project could reference to the wrong one.
I had a similar issue when I wanted to remove Alamofire from Cocoapods.
then it needs to delete something:
target -- Build Settings -- Other Swift Flags
This junk of code worked for me.
It happened to me when I was running the release version and switched back to the Debug version with Product > Scheme > edit schemes.
Deleting derived data didn't help.
But simply doing Product > Clean Build Folder and restarting XCode fixed the issue.
In case you see this error in the preview canvas and the diagnostics "mtime changed":
'/var/folders/kv/t_w2wdds3m1_0lr02hcp3dgw0000gn/C/clang/ModuleCache/12TRQXIDQ8QQD/SwiftShims-2TTN5UXQBRCCQ.pcm' was built: mtime changed
Delete all .pcm files in that folder and hit try again.
The folder on your machine will be different. Copy the location and run:
rm <paste path here>/*.pcm
You can delete your Derived Data from Terminal by this simple command:
rm -rf ~/Library/Developer/Xcode/DerivedData/*

iOS Swift No Such File or Directory In Debug-iphoneos

Somebody please save me.
This is the error I'm getting. I've tried cleaning, doing a build clean, pod installs and updates. I have not found a solution.
Shell Script Invocation Error Group
/Users/arthuraraujo/Library/Developer/Xcode/DerivedData/Anti-Social_Club-gizjofrkxroutxezxlbuadlvpwbo/Build/Products/Debug-iphoneos/Anti-Social: No such file or directory
I have similar issues in the past and doing the following work for me. Hope your problem is same as mine:
Close xCode
Go to this folder Group
/Users/arthuraraujo/Library/Developer/Xcode/DerivedData/Anti-Social_Club-gizjofrkxroutxezxlbuadlvpwbo/Build/Products/Debug-iphoneos/
and delete Anti-Social.
Restart xCode, clean & build.
It is hard to really tell you the solution with just the information provided. However, the first thing I would try is deleting the derived data, as CodeBender stated. You should also look at your search paths in your project's building settings to make sure your pods are correct/ connecting your pods files to your project.
Possible duplicate of:
Xcode 8 Shell Script Invocation Error
Here is what I did when I got this:
Used this site to completely remove All Versions of cocoapods:
https://superuser.com/questions/686317/how-to-fully-uninstall-the-cocoapods-from-the-mac-machine
Re-installed current stable version of cocoapods (v1.1.1 for me)
Deleted podlock and pods directory
Deleted old .xcworkspace file (this was key for me).
Did "pod install"
Opened xcode and cleaned project and deleted derivedData.
Go to your build phases and remove libReact.a from the linked libraries.
Then add libReact.a but select this one:
libReact.a from 'React' target in 'Pods' project

Google Analytics linker error. library not found for -lGGLAnalytics

I have just added Google Analytics to my pods like this:
pod 'Google/Analytics'
just like GA documentation suggests. Now my project won't link. It says:
library not found for -lGGLAnalytics
Did anyone ever encounter this? Thanks
I got the same error. Solved by reseting LIBRARY_SEARCH_PATHS to default value.
Select your target and navigate to Build Settings. Under Search Paths select Library Search Paths and reset it to default by pressing backspace.
In result, the value for Library Search Paths should change from blank:
to default:
Diff in .pbxproj just removes the empty value:
I'm using pods version0.39.0, Xcode 7.2.
In my case the solution was remove all but $(inherited) in Target -> Build Settings -> Other linker flags
Then of course clean and build!
I ran into this and had a very strange cause and different solution from the above, so I figured maybe this might help someone else who shows up here.
I had a working project in my normal directory and I save it to an SVN code repo. I needed to step back to a previous version for something, so I checked out a new copy from SVN and updated it back to the revision I needed.
Then I started getting the library not found for -lGGLAnalytics error.
It turns out that SVN doesn't really like it when you check-in *.a files and it ignores them by default. So my SVN repo had all of the Google Pod code but was missing the libGGLAnalytics.a files and a couple of other .a files.
How I solved it:
I copied the Pods/Google and Pods/GoogleAnalytics directories over from my real project. Then I did a pod install from the command line which updated my project files to reference those files that were previously missing.
I did a Build Clean and all fixed.

Resources