我制作了±个第三方应用程序的插件。该插件的一部分是用Swift编写的。由于this issue,该插件卡在Xcode 7.3.1 / Swift 2.2上。
该插件在Mojave上不再起作用。
我们有以下观察结果:
有什么想法可能导致此问题以及如何解决此问题?
PS:追求用户安装较新版本的Python / PyObjC是不可行的,也不希望Apple将较新版本的Python / PyObjC与macOS捆绑在一起(因此,插件代码库无法升级为较新的Swift版本) 。已计划将代码从Swift迁移到Objective-C,但不会立即发生(这需要几个月的时间)。
答案 0 :(得分:0)
我设法使该插件在Mojave上运行。
通过调用NSBundle的PrincipalClass返回nil。 根据我对官方documentation的理解,有两种方法确定PrincipalClass。
不知何故,PrincipalClass调用在High Sierra和Mojave上返回了不同的值。就我个人而言,我看不出它应如何表现出不同的任何原因,因为文档没有更改,并且逻辑听起来完全取决于编译插件时发生的事情,而不是取决于运行插件时世界上下文的情况。
但是,在将NSPrincipalClass项目添加到info.plist文件之后,该插件已成功加载到Mojave上。