查找OSX插件的资源

时间:2014-11-15 01:11:19

标签: macos dynamic bundle

我有一个OSX捆绑包,其中包含一个可关联的可执行共享库 资源(想想photoshop)。

如何在运行时找到包含插件和resoruces的包?

_NSGetExecutablePath()GetMainBundle()获取主要应用程序,而不是 运行插件代码。

捆绑包没有固定的路径,它位于一些随机插件文件夹中 位于插件主机旁边。同样,它没有唯一的名称,如 可能有许多不同版本的"相同"插件相关联 使用不同版本的插件主机。

如果我有一大堆执行代码作为bundle的一部分加载,那么应该有一种明确的方法来引用同一个bundle中的资源。

2 个答案:

答案 0 :(得分:0)

您使用[NSBundle bundleForClass:[SomeClassUniqueToYourPlugin class]]来获取插件包,然后使用各种NSBundle资源位置方法。

答案 1 :(得分:0)

执行此操作的规范方法是致电CFBundleGetBundleWithIdentifier[NSBundle bundleWithIdentifier:]

正如CFBundleGetBundleWithIdentifier所述:

  

对于使用其标识符定位的包,必须已加载该包。按标识符查找包的主要目的是框架中的代码或插件以查找自己的包

对于[NSBundle bundleWithIdentifier:]

  

此方法通常由框架和插件用于在运行时找到自己的包