如何在 macOS 应用程序上使用 private API `SLPSPostEventRecordTo`

How to use private API `SLPSPostEventRecordTo` on macOS app

我想在开发 macOS 应用程序时使用私有 API SLPSPostEventRecordTo

但是构建应用程序不起作用。

我的代码

AppDeleagete.h

extern CGError SLPSPostEventRecordTo(ProcessSerialNumber *psn, uint8_t *bytes);

AppDeleagate.m

SLPSPostEventRecordTo(&process, 0);

构建错误信息

Undefined symbols for architecture x86_64:
  "_SLPSPostEventRecordTo", referenced from:
      -[AppDelegate activateWindow:] in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Undefined symbol: _SLPSPostEventRecordTo

我参考了这些代码。

如何使用 SLPSPostEventRecordTo

SL* 符号在 SkyLight.framework 中定义,位于 /System/Library/PrivateFrameworks。在您的 Xcode 项目中,您可以手动将 /System/Library/PrivateFrameworks 添加到 SYSTEM_FRAMEWORK_SEARCH_PATHSFRAMEWORK_SEARCH_PATHS 并将 -framework SkyLight 添加到 OTHER_LDFLAGS.