Swift 动态加载的捆绑包中的代码能否访问自己的Info.plist文件?

Swift 动态加载的捆绑包中的代码能否访问自己的Info.plist文件?,swift,macos,cocoa,Swift,Macos,Cocoa,在macOS应用程序中,我在运行时将捆绑包作为插件加载。 我希望“插件”提供一个版本字符串,最好使用Info.plist 问题是,对` Bundle(class:Pluginclass…)的任何调用都会在运行时导致应用程序的Bundle加载该Bundle(因为从中加载的代码没有“Bundle”这样的东西) 这有可能吗 我不想提供一个版本作为插件类的属性,而是真正使用Info.plist文件 我也可以将任何加载的插件包装到加载其捆绑包的主机应用程序中,并在那里读取Info.plist,但我更愿意在

在macOS应用程序中,我在运行时将捆绑包作为插件加载。 我希望“插件”提供一个版本字符串,最好使用Info.plist

问题是,对` Bundle(class:Pluginclass…)的任何调用都会在运行时导致应用程序的Bundle加载该Bundle(因为从中加载的代码没有“Bundle”这样的东西)

这有可能吗

我不想提供一个版本作为插件类的属性,而是真正使用Info.plist文件


我也可以将任何加载的插件包装到加载其捆绑包的主机应用程序中,并在那里读取Info.plist,但我更愿意在插件(或者它们都派生自的超类)中执行此操作。

“从其加载的代码的捆绑包”:
捆绑包(for:type(of:self))
您会说,“我将捆绑包作为插件加载”。如果您当时正在引用一个捆绑包,难道您不能使用它来查找plist而不是稍后再尝试获取捆绑包吗?@shallowthough正如我试图澄清的那样,
self
在加载时已经是应用程序捆绑包的一部分。因此,这将始终返回applicationWait。。。您是否实际加载bundle(大写B)以使用
my_bundle=bundle.init(url:…)
my_bundle=bundle.init(路径:…)
然后
my_bundle.load()
?如果是这样的话,您应该能够使用
infoDictionary
获取
info.plist
@PhillipMills是的,这当然是可能的(这也是我现在正在做的),但这意味着插件加载程序需要提取它。我更希望插件提供我提到的属性。