为什么我的Swift包会得到错误的主类?

zne*_*eak 1 nsbundle swift

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

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

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

我彻底检查了构建日志NotPrincipalClass,除了编译之外我没有看到任何提及.

什么可能导致这个?我该怎么做才能解决它?

zne*_*eak 7

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