【问题标题】:"image not found" Error while using Custom FrameWork使用自定义框架时出现“找不到图像”错误
【发布时间】:2013-12-04 06:22:06
【问题描述】:

我为我的一个可可应用程序创建了自己的框架。我将该框架添加到我的项目中,并从该框架中调用了一个方法。当我尝试运行我的应用程序时它崩溃了:

崩溃日志:

dyld: Library not loaded: @rpath/MMP.framework/Versions/A/MMP
  Referenced from: /Users/Midhun/Library/Developer/Xcode/DerivedData/MMPTest-ccvjtgedqkcftchapjehhwjbaqdq/Build/Products/Debug/MMPTest.app/Contents/MacOS/MMPTest
  Reason: image not found

我做了什么:

框架:

  • 我在公共部分添加了我的头文件

  • 我添加了 Deployment 和 Linking 的路径,比如:

  • 我构建了项目,并准备好了我的框架(到此为止非常酷)。

项目:

  • 我将该框架添加到我的项目根目录下的FrameWorks 文件夹中。
  • 我在Link Binary With Libraries部分下添加了框架
  • 我更改了链接路径,如:

平台详情:

Xcode: 4.6.2
OS X : 10.8

我的尝试(崩溃后)

  • 当我遇到这个问题时,我检查了otool。它显示如下路径:

但是我还不能解决这个问题。请帮助我,提前谢谢。

【问题讨论】:

  • @trojanfoe:不,我首先尝试过,它对我不起作用。这就是我问这个问题的原因:)
  • 但是您没有遵循已接受答案的建议,将 install name 保留为默认值。
  • @trojanfoe:如果我们更改安装目录和运行路径,它会自动更改安装名称(请查看我的图片:安装名称是默认的,XCode 显示更改为粗体和默认值普通字体)
  • 你知道应用程序和框架最终被写入哪里了吗?我原以为 xcode 工作区对于这类事情会是一个更好的选择。

标签: objective-c xcode macos cocoa


【解决方案1】:

设置框架安装目录为@executable_path/../Frameworks

现在在构建阶段添加副本文件,将目标设置为Frameworks。点击你的target,然后点击Editor(菜单栏) --> Add build phase --> Add Copy Files Build Phase

【讨论】:

  • Add Copy Files Build Phase 我的 XCode 中禁用了菜单。
  • @MidhunMP 您是否选择了正确的目标,然后单击“构建阶段”选项卡?
  • @MidhunMP 并且正确选择了“构建阶段”选项卡?因为“添加构建阶段”子菜单只有在您选择了正确的选项卡时才会启用。
  • @MidhunMP 在 Xcode 4 中,选项在 Editor->Add Build Phase 中。 Copy Files 构建阶段随后会出现在 Project Navigator 中,您可以通过单击加号向其中添加内容。
  • 偶尔会忘记这一步。 1+为此。
【解决方案2】:

我遇到了同样的问题,我就是这样解决的,

就我而言,自定义框架位于 Swift 中,而我的项目位于 Objective c

按照以下步骤,

  1. 进入项目导航器
  2. 选择Targets,进入General标签
  3. 找到Embedded Binaries 拖动自定义框架。寻找流量 在下面提到的图像中
  4. 检查框架是否添加到链接框架和 库(参考图片)
  5. 注意:在我的例子中,它被添加到 Linked Frameworks and Libraries,请先删除
  6. 最后一步,找到标志 始终嵌入 swift 嵌入式库 “构建设置”并将其设置为“是”(参考图片)

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2020-06-02
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多