dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
SwiftDyldSwift Problem Overview
I get this error after adding a Swift class to an old Xcode project.
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
How can I make the project run again?
Swift Solutions
Solution 1 - Swift
For me none of the previous solutions worked. We discovered that there is a flag ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(in earlier versions: "Embedded Content Contains Swift Code") in the Build Settings that needs to be set to YES. It was NO by default!
Solution 2 - Swift
This error can occur if something went wrong during the conversion of an Objective-C project to start using Swift. The issue is that the Linker build settings never got configured properly, so you'll have to do it by hand. Look for the Runpath Search Paths build setting and set it to:
$(inherited) @executable_path/Frameworks
EDIT: I should also add that there has been recent spate of these errors caused by something else entirely - Apple made a change in Swift itself, starting in perhaps Xcode 6.1 or 6.1.1. The only solution seems to be to quit Xcode, destroy your certificates in Keychain Access, go to the Member Center and delete all certificates and profiles (except the profiles for apps in the Store - you can't delete them), and then start the entire certificate request process from scratch.
Solution 3 - Swift
I'm not really sure why this question is being downvoted, I had this problem as well when I first tried to use Swift with an existing project. An Xcode restart also fixed this for me.
Solution 4 - Swift
I searched long on this issue. There are several reasons causes this issue.
If you are facing when you and Swift code/library in an Objectice C project you should try Solution 1-2-3
If you are facing this issue with a new a Swift project Solution 4 will fit you best.
Solution 1:
Restart Xcode, then computer and iPhone
Solution 2:
Go to project build settings and set Always Embed Swift Standard Libraries
(previously Embedded Content Contains Swift Code
) flag to YES
Solution 3:
Go to project build settings and add @executable_path/Frameworks
to Runpath Search Paths
option
Solution 4:
If none of above works, this should. Apple seems to be ninja patched certificates as mentioned in AirSign's post
At InHouse certificates
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
they added a new field named OU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
so you should just recreate certificate and provision
Solution 5 - Swift
In my case I was trying to import a custom framework and was getting the similar error. Turns out I had to import the framework in the Embedded Binaries rather than in to the Linked Frameworks and Libraries.
Embedded Binaries are under Projects Settings ->
Solution 6 - Swift
For developers who have had this issue with a Adhoc/Enterprise distribution builds,
> Create the production certificate from dev portal and then regenerate the distribution profile. Download and install both of them on your Mac. Ensure you selected the right profile in your Xcode build settings and rebuild your app.
Solution 7 - Swift
Solution 5:
In my case, all solutions mentioned in the answer of accfews were very helpful but none has worked. I solved my problem by adding my swift library in the section "Embedded Binaries" in the "General" section of my Project's target. Perhaps is this due to the fact that I have included my swift framework in my workspace? Whatever it compiles now! Get ready Swift, I'm here!
Solution 8 - Swift
A simple restart of Xcode solved the issue for me.
Solution 9 - Swift
For me, the issue was due to the fact that my Apple Worldwide Developer Relations Certification Authority was invalid.
Download it from here: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Drag and drop it into Keychain Access, clean the project, and run.
Solution 10 - Swift
I had an Obj-C project where I started adding swift source files. The following fixed the issue for me:
- Linking:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
- Swift Compiler - Code Generation:
EMBEDDED CONTENT CONTAINS SWIFT = YES
I just created a new project from the templates Xcode 6.3 and compared the project settings with my old original project.
Solution 11 - Swift
Try to hold Alt, then go to Product -> Clean Build Folder...
Hope it will help someone..
Solution 12 - Swift
The reasons for this occurring are many. Having just spent a fun weekend finding yet another issue that causes this (the order of code signing), I wanted to create a summary answer that brings all the possible solutions together:
- Add Embedded Content Contains Swift Code to project. You need to set this flag if your app contains Swift code.
- Clean project. In addition to a Project > Clean you can also delete the
DerivedData
andBuild
directories. Look under the Preferences for the location ofDerivedData
.Build
should be in your project folder. - Ensure Runpath Search Paths contains
@executable_path/Frameworks
. - Ensure that your certificate contains your Apple Team ID in the OU (Organization Unit) field Apple will add this for you, just revoke your existing distribution certificate and create a new one, download, install on KeyChain, regenerate all provisioning profiles, download those and rebuild.
- Xcode restart. If everything is basically good, but Xcode hasn't gotten there yet.
That's the easy stuff. If you are doing your own command line build you may be creating your own .ipa
files to upload. In that case you need to ensure the following:
- Make sure the version of the Swift files in
SwiftSupport/iphoneos
is the same as the version inContents/YourApp.app/Frameworks
Because Swift is not yet binary compatible between version, you must ensure these versions are the one that you built your app with. You can find these libraries under/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
. - Sign the libraries and frameworks first. You need to
codesign
the libraries and framework files (underFrameworks
in the.app
folder) first and then sign the entire.app
tree. The.app
tree must be signed with anentitlements.plist
but not the frameworks.
Hopefully when Swift 3.0 comes out and we no longer need to bundle Swift with our apps this whole issue will go away.
Solution 13 - Swift
I had this issue using an Ad Hoc (or enterprise) mobileprovision with a production certificate. Switching to a development certificate and mobileprovision solved the issue.
Solution 14 - Swift
My project is a Swift project with some Objective-C classes. I had the same problem when signed with old inHouse (enterprise) certificate.
The following steps fixed this for me.
- Create and use a new certificate and mobile provision.
(Ref. AIRSIGN’s blog) - Set
Runpath Search Paths
build setting to:$(inherited) @executable_path/Frameworks
.
(Ref. matt’s answer)
Solution 15 - Swift
Solution 6:
In our case, the Enterprise Distribution Certificate had been revoked. Generating a new certificate and updating the provisioning profile fixed the issue.
(There seems to be many different causes for this error. Hope this helps someone.)
Solution 16 - Swift
I tried all the answers given above, nothing worked.
Finally worked after updating to Yosemite
Solution 17 - Swift
I have faced the same issue, setting the right code sign identity solved the problem(Build settings->Code Signing Identity).
As per Apple technical question "All Enterprise and standard iOS developer certificates that are created after iOS 8 was released have the new Team ID field in the proper place to allow Swift language apps to run"
Solution 18 - Swift
If you add the three frameworks via Embedded Binaries, they will be added to Linked Frameworks and Libraries also. Delete the three entries in Linked Frameworks and Libraries will solve the problem.
>Magic methods such as relaunch Xcode and restart the Mac doesn't work on me.
Solution 19 - Swift
Adding Framework as "Embedded Binary" instead of just "Linked Frameworks and Libraries" - Fixed my issue.
I also set Embedded Content Contains Swift Code flag to YES.
Solution 20 - Swift
Upgrade to Latest Version of OS X (Yosemite)
After hours of trial & error I came to the resolution of this problem. - If this applies to your case of course.
I had the same problem until I upgraded my Mac OS X from Mavericks to Yosemite. - It fixed my problem, hope it fixes yours as well
Solution 21 - Swift
I tried all the solutions that found on web, including to Apple and new certificates. Without success.
The only way I could run xcode, after 6 months of trying, was creating a new account on my macbook.
Solution 22 - Swift
Usually this error will disappear if you add this library to the "Copy Files" segment in your Build Phases.
Solution 23 - Swift
My environment: Cocos2d 2.0, Box2d, Objective C
In addition to doing the other answers above I finally went to the General tab and made WatchKit Optional.
Solution 24 - Swift
And if all of the above doesn't help you and you really get frustrated... Try the best trick of all: Clean
and just to be sure also Clean Build Folder
. :) Hope it helps somebody!
Solution 25 - Swift
None of these solutions seemed to be consistently working for me; after every couple of successful runs, it would fail again. The "Embedded Content Contains Swift Code" flag was always set to YES for me.
Turns out I'd set Xcode to be 6.3-compatible. Changing it back to be 3.2-compatible solved it:
http://i.stack.imgur.com/1hGxh.png" width="320">
Solution 26 - Swift
I've had this problem as well, only it wasn't locating libswiftXCTest.dylib
.
The solution was to add XCTest.framework
to the Tests target, in Build Phases/Link Binary with Library
. I was getting this error even when I was trying to build the main target.
Solution 27 - Swift
This showed up when I added a new Today extension target with Swift language to an old project. Fixed easily by updating the project to recommended settings. Xcode 6.0.1
Solution 28 - Swift
I got the same issue using Mavericks, Xcode 6.1.1, testing on an iPhone5 with iOS 8.1.1. I tried all possible solution including new certificates and provisioning profiles, but nothing helped. I did the changes to Embedded Content Contains Swift Code
and Runpath Search Paths
both on Project level and Target level.
I have now installed Yosemite, and without any further changes, it started to work.
Solution 29 - Swift
Same issue here, for me it was Crashlytics/Fabric/Beta/Twitter/Whatever-they-call-themselves uploading a binary that was missing the embedded frameworks. If I made an archive and then exported an Enterprise build in the standard way, they worked a charm.
Solution 30 - Swift
After months and months trying everything here... Definition of insanity... starting Xcode under a new Mac user solved it for me.
I removed ~/Library/Developer/* and reinstalled Xcode- so no clue what else to format to make it work.
Solution 31 - Swift
Recently started getting this error again. While the top 2 answers solved it for me in the past, none of the suggested answers worked this time. I noticed the error said:
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib'
So I tried deleting the app from device, and I was able to build and run again.
Solution 32 - Swift
I added SCLAlertView pod in my project and later removed it. I did not remove import SCLAlertView
from my viewcontroller. Ideally it should give a compile time error, but it gave a run time error mentioning dyld: Library not loaded: @rpath/SCLAlertView.framework
. I removed import SCLAlertView
from my viewcontroller, build it and it did not give the error. So in my case I was trying to import
a library whose framework was not found. Removing such references will resolve your issue.
Solution 33 - Swift
I got the same problem. My solution is to move every pod
declaration inside the target
clause.
From:
pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
target 'MyAwesomeApp', :exclusive => true do
end
To:
target 'MyAwesomeApp', :exclusive => true do
pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
end
My guess is that if the pod declarations are put outside the target declaration, CocoaPods(0.39.0) might use the wrong xcconfig.
Pods.debug.xcconfig (X
Pods-MyAwesomeApp.debug.xcconfig (O
Solution 34 - Swift
With reference to https://forums.developer.apple.com/thread/21292
This solution worked for me :
> It occurred on my side when building an app in the command line via > xcodebuild and xcrun PackageApplication, signing the app with an > enterprise profile. On our CI build servers, the certificate was set > to "Always Trust" in the keychain (select certificate -> Get Info -> > Trust -> "Use System Default" can be changed to "Always Trust"). I had > to set it back to "Use System Default" in order to make this work. > Initially we set this to "Always Trust" to work-around the keychain > dialogs that appear after software updates and certificate updates.
Solution 35 - Swift
in my case i just use "Cmd+Shift+K" and then "Cmd+B" run its work
Solution 36 - Swift
Ran into this problem after updating to Xcode 10.2 (Swift 5). Found the following Apple link that shows two options: https://support.apple.com/kb/DL1998?locale=en_US
For me, I updated the MacOS to 10.14.4 (which has Swift library included in OS). Otherwise, "Download Swift 5 Runtime Support for Command Line Tools" for older OS.