为什么我的 Swift 捆绑包得到了错误的主体 class?
Why does my Swift bundle get the wrong principal class?
我做了一个包目标,它的 Info.plist
文件指定一个非常具体的 class(我们称它为 PrincipalClass
)应该是它的主体 class。这个class写在Swift里面,有@objc
属性。 Info.plist
文件已正确复制到包中,我已经多次清理并重建项目。
然而,当我从我的 Swift 框架加载包时,它的主体 class 是一个不同的 class(我们称之为 NotPrincipalClass
)。它没有被标记为 @objc
,事实上,它应该在 bundle 内部。我在调试器中检查了 bundle.bundleURL
,捆绑包中的 Info.plist
文件确实说它应该是 PrincipalClass
;但是当我检查 bundle.infoDictionary
时,NSPrincipalClass
属性读取 NotPrincipalClass
作为字符串! (信息字典还包含几个未由 Info.plist
文件指定的键,如 DTCompiler
等。)
如果我完全删除 NotPrincipalClass
,我会得到另一个内部 class,这仍然完全不是我的主体 class。
我彻底检查了构建日志,没有看到 NotPrincipalClass
,除非它被编译了。
这可能是什么原因造成的?我能做些什么来解决它?
不知何故,使用它的限定名称 ("PlugInNamespace.PrincipalClass") 解决了这个问题,但这让我非常怀疑,因为我有另一个不需要这个的插件。
我做了一个包目标,它的 Info.plist
文件指定一个非常具体的 class(我们称它为 PrincipalClass
)应该是它的主体 class。这个class写在Swift里面,有@objc
属性。 Info.plist
文件已正确复制到包中,我已经多次清理并重建项目。
然而,当我从我的 Swift 框架加载包时,它的主体 class 是一个不同的 class(我们称之为 NotPrincipalClass
)。它没有被标记为 @objc
,事实上,它应该在 bundle 内部。我在调试器中检查了 bundle.bundleURL
,捆绑包中的 Info.plist
文件确实说它应该是 PrincipalClass
;但是当我检查 bundle.infoDictionary
时,NSPrincipalClass
属性读取 NotPrincipalClass
作为字符串! (信息字典还包含几个未由 Info.plist
文件指定的键,如 DTCompiler
等。)
如果我完全删除 NotPrincipalClass
,我会得到另一个内部 class,这仍然完全不是我的主体 class。
我彻底检查了构建日志,没有看到 NotPrincipalClass
,除非它被编译了。
这可能是什么原因造成的?我能做些什么来解决它?
不知何故,使用它的限定名称 ("PlugInNamespace.PrincipalClass") 解决了这个问题,但这让我非常怀疑,因为我有另一个不需要这个的插件。