可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm creating an iOS framework with Xcode6 and iOS8. When I link this with an iOS app and try running it on the device I get this error
dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
Reason: image not found
The 'Runpath Search Paths' build setting for the framework is set by default to
'@executable_path/Frameworks', '@loader_path/Frameworks'
I could not find any documentation related to this. This was something new introduced with Xcode6 and I would expect it to just work by simply including the framework into any app that needs it.
回答1:
To make this work
In the framework project settings change the install directory from
'/Library/Frameworks' to '@executable_path/../Frameworks'
In the project that includes this framework, add a copy files phase and copy this framework to the 'Frameworks' folder. Once you do this ensure that this framework is listed under the 'Embedded Binaries' section.
回答2:
Issue resolved using this answer. According to @vladof81:
In the target's General tab, there is an Embedded Binaries field. When you add the framework there the crash is resolved.
Reference is here on Apple Developer Forums.
回答3:
I was getting this error on a library installed through CocoaPods. Cleaning the build folder (cmd + option + shift + k
) and then doing a clean (cmd + shift + k
) was what ended up resolving this issue for me.
回答4:
Check if you can find framework in context under :
Build Phases > Embed Frameworks >
If not just add that framework in "Embed Frameworks" after adding that framework in your project directory's "Frameworks" section.
回答5:
If you are using Carthage
Run carthage update
on terminal
Go to Project Settings -> Build Phases -> Carthage Copy Frameworks
Add line in Inputs files:
$(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework
Add this line to Output files:
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/YOURLIBRARY.framework
回答6:
For me it was because of the SSL issue, I had set my developer, distribution certificates on my Mac(Keychain) to 'Always Trust' for one of my other project. I had to change them back to 'Use System Defaults'. it was working for me then!!
回答7:
Made the library which shows not loaded changed from required to optional in Linked binaries and frameworks. It is working perfectly now
回答8:
In addition to the above solutions, recheck the paths of frameworks included in your application under
Build Settings --> Search Paths --> Framework Search Paths
回答9:
I also had same kind of problem where I was not able to launch the app & app was crashing with above message :
dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
Referenced from: /private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx
Reason: image not found
Here is my approach that helped me to resolve this error:
1.Please delete your app from device, Clean the build and and rebuild and run on the device.
2.If above steps does not help you, then please check for below settings :
From "TARGET">"Build Settings">"Runpath Search Paths" & then check for values "$(inherited)" & "@executable_path/Frameworks", Feel free to add incase they don't exist.
Build your app and run it on device
回答10:
When non of those solution works:
- (Optional) Get a clear knowledge from here on different search path type
- Make sure that your
.framework
file paths are added in Build Settings -> Framework Search Paths
. You can keep all framework files somewhere in App/libs/
and add this folder and enable recursively.
- Make sure that your
.a
files paths are added in Build Settings -> Library Search Paths
.
回答11:
I installed third party libraries using Cocoapods. Got the same error, tried everything but finally realised I havent had use_frameworks! in my pod file.
So removed the currently installed library, added use_frameworks! line in pod file, reinstalled the libraries and all worked for me.
回答12:
I also had same kind of problem where I was not able to launch the app & app was crashing with above message :
dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName Referenced from: /private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx
Reason: image not found
Here is my approach that helped me to resolve this error:
- From General Tab
Frameworks, Libraries, and Embedded Content
- add the framework and make sure to make it Embed & Sign
- From Build Phases
Dependences