0

我有一个“主应用程序”和一个“辅助应用程序”(沙盒,如果重要的话)共享一个私有框架,包括一些资源、nib 文件、声音文件等。

该框架被两个应用程序调用和使用而没有问题。但是,在框架代码中,我有一个NSViewController加载一个包含在其资源文件夹中的 nib 文件。只要它被“主应用程序”调用,这似乎就可以工作。但是,对 Helper 应用程序(登录项)执行相同操作不起作用并失败并出现"Unable to find nib named"错误。

实际的“框架”被复制到主应用程序的“框架”目录中,我在帮助应用程序中使用 @rpath 来查找框架:@executable_path/../../../../Frameworks

这个设置似乎工作得很好,但是在运行时框架代码似乎试图在帮助应用程序的资源文件夹下而不是在框架的资源文件夹下找到命名的资源。我可以在 xcode 中设置一个设置或一些标志,以使框架始终查看框架的可执行文件/库的安装路径吗?

4

2 回答 2

0

似乎唯一的解决方案是将框架也复制到“Helper”应用程序中。如果框架只是指向放置在主应用程序内的实际框架的符号链接,则资源不会被加载。

于 2012-09-02T18:14:03.030 回答
0

您可以做的是使您的框架动态或共享,如此处所述动态库编程主题

虽然这是一个复杂的过程,但一个非常好的功能。

还有什么可以帮助你?
也许在 Xcode 的 Build Settings 下编辑 Library Search Paths 或 Framework Search Paths。您可以在此处指定要查找的其他搜索路径。

尽管如此,我不会将框架复制到主应用程序的目录中。我会将它留在磁盘上的一个位置,将它们添加到您的项目(主要和助手)并添加指定的搜索路径。

顺便说一句:你的框架是如何实现的?它是一个文件夹,是编译的,还是只是代码文件?

于 2012-09-02T18:36:18.703 回答