为什么我的Swift包选错了校长班?

为什么我的Swift包选错了校长班?,swift,nsbundle,Swift,Nsbundle,我创建了一个bundle目标,它的Info.plist文件指定一个非常特定的类(我们称之为PrincipalClass)应该是它的主类。此类是用Swift编写的,具有@objc属性。Info.plist文件被正确复制到包中,我已经多次清理和重建了该项目 但是,当我从Swift框架加载包时,它的主要类是另一个类(我们称之为NotPrincipalClass)。它没有标记为@objc,事实上,它应该是包的内部。我在调试器中检查了bundle.bundleURL,bundle中的Info.plist文

我创建了一个bundle目标,它的
Info.plist
文件指定一个非常特定的类(我们称之为
PrincipalClass
)应该是它的主类。此类是用Swift编写的,具有
@objc
属性。
Info.plist
文件被正确复制到包中,我已经多次清理和重建了该项目

但是,当我从Swift框架加载包时,它的主要类是另一个类(我们称之为
NotPrincipalClass
)。它没有标记为
@objc
,事实上,它应该是包的内部。我在调试器中检查了
bundle.bundleURL
,bundle中的
Info.plist
文件确实指出它应该是
PrincipalClass
;但是当我检查
bundle.infoDictionary
时,
NSPrincipalClass
属性将
NotPrincipalClass
作为字符串读取!(信息字典还包含一些未由
info.plist
文件指定的键,如
DTCompiler
等。)

如果我完全删除了
NotPrincipalClass
,我会得到另一个内部类,它仍然完全不是我的主类

我彻底检查了构建日志,除了编译时,我没有看到任何关于
NotPrincipalClass
的内容


这是什么原因造成的?我能做些什么来解决这个问题呢?

不知何故,用它的限定名(“PlugInNamespace.PrincipalClass”)解决了这个问题,但这让我非常怀疑,因为我有另一个插件不需要它。

不知何故,用它的限定名(“PlugInNamespace.PrincipalClass”)解决了这个问题,但这让我非常怀疑,因为我有另一个插件不需要这个