【问题标题】:Symbol not found: _OBJC_IVAR_$_NSScroller._action in High Sierra未找到符号:High Sierra 中的 _OBJC_IVAR_$_NSScroller._action
【发布时间】:2018-08-08 22:13:18
【问题描述】:

在以前版本的 MacOS 上运行的应用程序在 High Sierra 上失败,并显示以下消息:

dyld:未找到符号:_OBJC_IVAR_$_NSScroller._action 引用 来自:预计在: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

什么变化可能会导致这个问题? (我不是 MacOS 开发方面的专家)我怀疑 otool 命令可能有助于识别与此问题相关的更改,但尚未为其制定正确的参数。

检查 AppKit 文档 https://developer.apple.com/documentation/appkit/deprecated_symbols 它说 NSDrawer 已弃用,这有关系吗?

NSDrawer [已弃用] 除了其他视图子类之外,还包含并显示文本、滚动和浏览器视图的用户界面元素。

【问题讨论】:

  • 您能找到解决方案吗?

标签: macos appkit macos-high-sierra


【解决方案1】:

我收到此错误是因为在 MacOS 版本升级后未设置活动开发者目录。这个目录 控制哪些工具用于 Xcode 命令行工具(例如, xcodebuild) 以及 BSD 开发命令(如 cc 和 make)。

执行以下操作为我解决了这个问题:

sudo xcode-select -switch /Library/Developer/CommandLineTools/

【讨论】:

  • 这对我没有任何作用,不断收到不同的错误。安装 x-code 似乎为我解决了这个问题。
  • 感谢仁慈的人...刚刚结束了我 1 小时的痛苦。
  • 如果您之前从 2 个(或更多)版本升级,例如Sierra (10.12) -> Mojave (10.14),那么你可能需要上面的 @prolink007 的建议,然后是这个。请参阅上面我对 prolink007 答案的评论。
【解决方案2】:

我必须下载 Xcode(更新 Xcode)来解决这个问题。

运行此命令sudo xcode-select -switch /Library/Developer/CommandLineTools/ 似乎对我不起作用。不过也试试吧。

【讨论】:

  • 我必须both 这个建议 @approximatehack 下面的建议。我认为这是因为我从 2 个版本升级,即 Sierra (10.12) -> High Sierra (10.13) -> Mojave (10.14)。明确地说,我首先需要运行 xcode-select --install 来(重新)安装 Xcode 命令行工具,然后运行 ​​sudo xcode-select -switch /Library/Developer/CommandLineTools/ 来更新 CLT 所在的路径。
  • 我从 10.12 到 10.14,然后是 10.14.5,第一部分对我有用。 xcode-select --install。我在做brew update时遇到了这个问题。
【解决方案3】:

Catalina 升级的同样问题。

验证旧目录...

$ xcode-select -p

> /Applications/Xcode.app/Contents/Developer

但是在运行切换目录命令时,却失败了:

$ xcode-select -switch /Library/Developer/CommandLineTools

> xcode-select: error: 无效的开发者目录'/Library/Developer/CommandLineTools/'

解决方案

必须做到以下几点:

  1. 安装 xcode-select(它将通知需要下载和安装 xcode cli 开发工具)

    $ xcode-select --install
    

    > xcode-select: 注意:命令行开发工具的安装请求

  2. 现在,运行 switch 命令,世界上应该一切都恢复正常了。

    $ sudo xcode-select -switch /Library/Developer/CommandLineTools/
    
  3. 利润

希望这会有所帮助。

【讨论】:

  • 我尝试了 sudo xcode-select --install,但我得到了一个非常有用的弹出窗口:无法安装软件。所以我尝试了 sudo xcode-select -switch /Library/Developer/CommandLineTools/ 并再次尝试,但没有成功。将尝试更新 Xcode,虽然我的 AppStore 说它不需要更新...
  • @Figulus 你并不孤单 - Xcode 可能会令人困惑。根据Apple dev docs,“命令行工具包是一个独立的小型包,可从 Xcode 单独下载,它允许您在 macOS 中进行命令行开发。”因此,您的 Xcode 命令行工具包可能需要更新 ($ xcode-select --install),而您在 AppStore 中的 Xcode IDE 可能不需要。
【解决方案4】:

今天我从 high sierra 升级到 macOS Catalina 时遇到了完全相同的问题。

对我有用的是,

1) 安装命令行工具

xcode-select --install

2) 更新活动开发者目录路径

sudo xcode-select --switch /Library/Developer/CommandLineTools/

【讨论】:

    【解决方案5】:

    对我有用的是:sh-3.2# /usr/bin/xcode-select -switch /Library/Developer/CommandLineTools/

    【讨论】:

    • 您不需要/usr/bin/ 部分,除非您的 Xcode Tools 安装未能正确完成。 PATH 应该已经设置好了。 // 如果没有那部分,这个解决方案已经发布了。
    • 当我升级到新的系统版本时,这发生在我的企业笔记本电脑上。我认为这可能是一些优势。我希望它对结束这个线程的人有用。
    猜你喜欢
    • 2018-09-23
    • 2018-05-22
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2018-03-09
    • 2018-10-19
    • 2019-03-05
    相关资源
    最近更新 更多