我创建了一个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
。
是什么导致这个?我该怎么做才能解决它?
答案 0 :(得分:7)
不知何故,使用其限定名称(“PlugInNamespace.PrincipalClass”)解决了这个问题,但这让我非常怀疑,因为我有另一个不需要这个的插件。