找不到符号:High Sierra中的_OBJC_IVAR _ $ _ NSScroller._action

Mal*_*ery 10 macos appkit macos-high-sierra

在以前版本的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 [不建议使用]除了其他视图子类之外,还包含并显示文本,滚动和浏览器视图的用户界面元素.

cjn*_*cjn 30

Catalina升级的相同问题。

验证旧目录...

$ xcode-select -p
Run Code Online (Sandbox Code Playgroud)

> /Applications/Xcode.app/Contents/Developer

但是在运行 switch directory 命令时,却失败了:

$ xcode-select -switch /Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)

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

解决方案

不得不做以下事情:

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

    $ xcode-select --install
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    $ sudo xcode-select -switch /Library/Developer/CommandLineTools/
    
    Run Code Online (Sandbox Code Playgroud)
  3. 利润

希望这可以帮助。

  • @Figulus 你并不孤单 - Xcode 可能会令人困惑。根据 [Apple 开发文档](https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-WHAT_IS_THE_COMMAND_LINE_TOOLS_PACKAGE_),“命令行工具包是一个小型的独立包,可以从 Xcode 中单独下载,并允许您在 macOS 中进行命令行开发。” 因此,您的 Xcode 命令行工具包可能需要更新(`$ xcode-select --install`),而 AppStore 中的 Xcode IDE 可能不需要更新。 (2认同)

pro*_*007 13

我不得不下载x-code(更新x-code)来解决这个问题.

运行此命令sudo xcode-select -switch /Library/Developer/CommandLineTools/似乎对我不起作用.但也尝试这样做.

  • 我不得不做****这个建议**和**@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认同)

小智 8

由于MacOS版本升级后未设置活动的开发人员目录,因此出现此错误。此目录控制用于Xcode命令行工具(例如xcodebuild)以及BSD开发命令(例如cc和make)的工具。

执行以下操作可以为我解决此问题:

sudo xcode-select -switch /Library/Developer/CommandLineTools/
Run Code Online (Sandbox Code Playgroud)

  • 这对我无济于事,不断出现另一个错误。安装X代码似乎为我解决了这个问题。 (2认同)