首页 > 解决方案 > macOS 应用程序在 10.13 上崩溃,找不到符号:_NSAppearanceNameDarkAqua

问题描述

我正在使用部署目标 10.13 构建 macOS 应用程序

在 10.15 上工作,但在 10.13 上崩溃

Termination Reason:    DYLD, [0x4] Symbol missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Symbol not found: _NSAppearanceNameDarkAqua

标签: objective-cmacoscocoa

解决方案


您需要使使用此变量的代码依赖于正在执行的 macOS 版本:

if (@available(macOS 10.14, *)) {
    return NSAppearanceNameDarkAqua;
} else {
    return nil;
}

您也可以老派并将其声明为薄弱环节:

extern NSAppearanceName const NSAppearanceNameDarkAqua __attribute__((weak_import));
...
if (NSAppearanceNameDarkAqua!=NULL) {
    ...

推荐阅读