Cocoa IBPlugin和框架的路径

Cocoa IBPlugin和框架的路径,cocoa,xcode,interface-builder,ibplugin,Cocoa,Xcode,Interface Builder,Ibplugin,当IB找不到框架时,IBCocoaSimulator崩溃,我想这也会发生在您身上。当我手动将framework+ibplugin从build目录复制到/Users/username/Library/Frameworks中时,我可以运行IBCocoaSimulator而不会崩溃。我用Finder做这件事,这不是最优的,但很有效 我一直在寻找一种更智能的方法,我一直在寻找的每个解决方案(BWToolkit、BGHUDAppKit、KTUIKit)都以不同的方式做事情。一种解决方案运行sudo脚本,将

当IB找不到框架时,IBCocoaSimulator崩溃,我想这也会发生在您身上。当我手动将framework+ibplugin从build目录复制到
/Users/username/Library/Frameworks
中时,我可以运行IBCocoaSimulator而不会崩溃。我用Finder做这件事,这不是最优的,但很有效

我一直在寻找一种更智能的方法,我一直在寻找的每个解决方案(BWToolkit、BGHUDAppKit、KTUIKit)都以不同的方式做事情。一种解决方案运行sudo脚本,将其复制到系统范围的
/Library/Frameworks
。另一个设置
@loader\u path
,还有一个使用
@executable\u path
。我对它们中的任何一个都没有运气,由于它们之间的巨大差异,很难看到它们的模式

我很困惑

如何配置IBPlugin,以便将其嵌入应用程序?


更新1:

是的,解决了这个问题,在阅读了一篇关于如何使用@rpath的文章后,我想出了如何让它与我的IBPlugins一起工作。因此,不再需要使用Finder进行复制

我所做的是:

  • 对于MySmallFramework,将安装目录设置为
    @rpath
  • 对于MySmallPlugin,将运行路径搜索路径设置为
    @loader\u path/。/Frameworks
  • 对于MySmallApp,将运行路径搜索路径设置为
    @loader\u path/。/Frameworks

  • 很好。

    对你们大多数人来说可能是显而易见的,但neoneye在其“更新1”中发布的解决方案要求您的插件目标有一个“复制框架文件”构建阶段,并将给定的框架分配给


    (还没有足够的要点进行直接评论:(因此答案是帖子)

    您可以通过ibplugin makefile中的外部makefiles xcode项目调用此选项,如以下示例所示:

    install_name_tool -change @loader_path/MyPluginName.framework/MyPluginName @loader_path/<absolute path or level to updirectory>/MyPluginName.framework/MyPluginName $(BINDIR)/MyPluginName.ibplugin/Contents/MacOS/MyPluginName
    
    install\u name\u工具-change@loader\u path/MyPluginName.framework/MyPluginName@loader\u path//MyPluginName.framework/MyPluginName$(BINDIR)/MyPluginName.ibplugin/Contents/MacOS/MyPluginName