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

时间:2018-02-28 22:22:07

标签: 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 [已弃用]       除了其他视图子类之外,还包含和显示文本,滚动和浏览器视图的用户界面元素。

4 个答案:

答案 0 :(得分:15)

卡塔琳娜升级的相同问题。

验证了旧目录...

$ xcode-select -p

> /Applications/Xcode.app/Contents/Developer

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

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

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

解决方案

必须执行以下操作:

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

    $ xcode-select --install
    

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

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

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

希望这会有所帮助。

答案 1 :(得分:11)

我必须下载x代码(更新x代码)来解决此问题。

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

答案 2 :(得分:5)

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

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

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

答案 3 :(得分:0)

今天从高山脉升级到macOS Catalina时,也遇到了同样的问题。

对我有用的是

1)安装命令行工具

xcode-select --install

2)更新活动的开发人员目录路径

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