为什么我的 Swift bundle得到了错误的主体类



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

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

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

我彻底检查了构建日志,除了编译时,我没有看到提到NotPrincipalClass

什么原因可能导致这种情况?我能做些什么来解决它?

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

相关内容

最新更新