【问题标题】:Swift4 Error on High Sierra, can't resolve symbolHigh Sierra 上的 Swift4 错误,无法解析符号
【发布时间】:2018-03-09 16:52:00
【问题描述】:

我已经用 Swift 和 Cocoa 制作了这个 prefpane...昨天我根据迁移指南将它迁移到 Swift 4,经过一些初步的痛苦之后,一切似乎都运行良好。

我在 Sierra 上执行此操作,使用最新的 SDK 运行 Xcode 9.0。

问题是,至少有两个运行 High Sierra 的人告诉我窗格根本没有为他们运行。尝试从命令行运行它,这是报告的错误:

2017-09-27 23:00:59.921 System Preferences[3047:337095] Error loading /Users/luckman212/Library/PreferencePanes/SwiftDefaultApps.prefPane/Contents/MacOS/SwiftDefaultApps:  dlopen(/Users/luckman212/Library/PreferencePanes/SwiftDefaultApps.prefPane/Contents/MacOS/SwiftDefaultApps, 265): can't resolve symbol _OBJC_CLASS_$_NSError in /Users/luckman212/Library/PreferencePanes/SwiftDefaultApps.prefPane/Contents/MacOS/../Frameworks/libswiftCore.dylib because dependent dylib #1 could not be loaded in /Users/luckman212/Library/PreferencePanes/SwiftDefaultApps.prefPane/Contents/MacOS/../Frameworks/libswiftCore.dylib
2017-09-27 23:00:59.922 System Preferences[3047:337095] [NSPrefPaneBundle instantiatePrefPaneObject] (/Users/luckman212/Library/PreferencePanes/SwiftDefaultApps.prefPane): principalClass is nil.
2017-09-27 23:01:00.072 System Preferences[3047:337095]  ### AE 1868656752 sender's PID is 3047 (System Preferences)

我还没有升级,目前也没有办法升级,即使我这么倾向。有没有人遇到过这个问题,和/或知道它的原因?

【问题讨论】:

  • 我正在使用屏幕保护程序,当我尝试从“系统偏好设置”启动它时出现类似的链接器错误。我不知道如何解决它。我使用 High Sierra。
  • 我想我看到你在 developer.apple.com 上发过帖子了?虽然我认为我理解那里给出的解释(本质上是你做错了®,不要使用 Swift;即不是很有帮助),我认为这可能是 High Sierra 中的一个错误,因为它肯定不会发生在早期版本的操作系统上。
  • 嗨,我认为这既是 High Sierra 中的一个错误,又是 macOS 并没有真正支持 Swift 中的屏幕保护程序。这是一个类似的项目,据我了解,他们还使用了一些技巧来使其运行:github.com/JohnCoates/Aerial/issues/4
  • 您是否尝试在构建设置中“嵌入 Swift 运行时库”?
  • 确实,这是一个 Apple 漏洞。我创建了一个新的 prefpane 项目,构建 => 它安装。我添加了 Swift => built doesn't install。我检查了终端中的 rpath 和链接行,确保复制了 swift 库,我手动链接了 AppKit。没有任何帮助。然后我删除了 Swift 并重建 => 作品。

标签: swift cocoa macos-high-sierra


【解决方案1】:

Apple 的一些代码天使修复了 macOS High Sierra 的最新 dot 版本之一中的特定问题!耶!

我使用的是最新的 macOS 10.13.4 (17E199)、Xcode 9.3 (9E145) 和 Swift 4.1 (swiftlang-902.0.48 clang-902.0.37.1)。

我的简单测试项目https://github.com/klaas/QlaasSwiftScreenSaver,著名的空中救星 https://github.com/JohnCoates/Aerial/pull/420‌ 和我的表情符号保护程序 https://emojisaver.eu‌ 再次工作!

Quinn 在https://forums.developer.apple.com/message/268934 描述的问题通常仍然存在,但至少在系统偏好设置中只有一个(使用过的)Swift 插件/保护程序一切都很好。

【讨论】:

  • 还有哈利路亚!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多