macos - OS X Framework Library not loaded: 'Image not found'

ID : 10096

viewed : 18

Tags : macosframeworksxcode5dyldmacos

Top 5 Answer for macos - OS X Framework Library not loaded: 'Image not found'

vote vote

98

[Xcode 11+]

The only thing to do is to add the framework to the General->Frameworks, Libraries And Embedded Content section in the General tab of your app target.

Make sure you select the 'Embed & Sign' option.

enter image description here

[Xcode v6 -> Xcode v10]

The only thing to do is to add the framework to the Embedded binaries section in the General tab of your app target.

Screenshot from Xcode

vote vote

81

So I managed to get it working, it's quite simple when you have the right instructions. What I was looking for was a 'private' framework which lives in the App bundle rather than being written to the system library folder.

Building The Framework

  1. Add a target to create a Cocoa Framework
  2. Within that targets 'Build Settings' configure the 'Installation Directory' to '@executable_path/../Frameworks'
  3. Build library, and access the .framework from the archive or products directory

Including The Framework

  1. Drag the created .framework file into the Xcode Project, be sure to tick 'Copy Files to Directory'
  2. In the containing applications target, add a new 'Copy File Build Phase'
  3. Set the 'Destination' to 'Frameworks'
  4. Drag in the created .framework
vote vote

80

It was quite simple for me, i just added my framework to my embedded binaries under app targets

vote vote

67

The options above where not possible for me to include. I solved it by specifying the Runpath Search Path

This is on the 'Build Settings' tab. In the 'Linking' section. Change 'Runpath Search Paths' into $(inherited) @executable_path/Frameworks

vote vote

51

I ran into the same issue but the accepted solution did not work for me. Instead the solution was to modify the framework's install name.

The error in the original post is:

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework   Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer   Reason: image not found 

Note the first path after Library not loaded. The framework is being loaded from an absolute path. This path comes from the framework's install name (sometimes called rpath), which can be examined using:

otool -D MyFramework.framework/MyFramework 

When a framework is embedded into an app this path should be relative and of this form: @rpath/MyFramework.framework/MyFramework. If your framework's install name is an absolute path it may not be loaded at runtime and an error similar to the one above will be produced.

The solution is to modify the install name:

install_name_tool -id "@rpath/MyFramework.framework/MyFramework" MyFramework.framework/MyFramework  

With this change I no longer get the error

Top 3 video Explaining macos - OS X Framework Library not loaded: 'Image not found'

Related QUESTION?