如何在 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
我参考了这些代码。
- https://github.com/koekeishiya/yabai/blob/master/src/window_manager.c#L808
- https://github.com/koekeishiya/yabai/blob/master/src/window_manager.h#L17
如何使用 SLPSPostEventRecordTo
?
SL
* 符号在 SkyLight.framework
中定义,位于 /System/Library/PrivateFrameworks
。在您的 Xcode 项目中,您可以手动将 /System/Library/PrivateFrameworks
添加到 SYSTEM_FRAMEWORK_SEARCH_PATHS
或 FRAMEWORK_SEARCH_PATHS
并将 -framework SkyLight
添加到 OTHER_LDFLAGS
.
我想在开发 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
我参考了这些代码。
- https://github.com/koekeishiya/yabai/blob/master/src/window_manager.c#L808
- https://github.com/koekeishiya/yabai/blob/master/src/window_manager.h#L17
如何使用 SLPSPostEventRecordTo
?
SL
* 符号在 SkyLight.framework
中定义,位于 /System/Library/PrivateFrameworks
。在您的 Xcode 项目中,您可以手动将 /System/Library/PrivateFrameworks
添加到 SYSTEM_FRAMEWORK_SEARCH_PATHS
或 FRAMEWORK_SEARCH_PATHS
并将 -framework SkyLight
添加到 OTHER_LDFLAGS
.