问题很简单。我有多平台项目(
Windows
/Mac OS
)。
现在,在
Mac OS
的情况下,我需要在我的包的功能部分中启用“强化运行时”(它是 launchd 守护进程)。
我希望我的 Xcode 项目是由
cmake
生成的(我不想维护多个项目文件)。
如果我可以通过修改构建过程(例如通过向 xcodebuidl
命令添加一些标志)来解决这个问题,那应该没问题,但我更喜欢所有内容都在 CMakeLists.txt
文件中定义。
您可以使用属性
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME
,它是一个布尔值。
在您的 macOS 目标上设置该属性,例如
set_property(TARGET target PROPERTY XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES)
或者,如果您为目标提供更多属性,它可能如下所示:
set_target_properties(target PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_BUNDLE_NAME "yourTargetName"
MACOSX_RPATH TRUE
MACOSX_FRAMEWORK_IDENTIFIER com.host.target
XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
RESOURCE "${RESOURCE_FILES}"
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES
)
我找到了这个解决方案,但无法使其工作...... 我正在尝试运行它来推送通知,两者都没有:
XCODE_ATTRIBUTE_ENABLE_PUSH_NOTIFICATIONS YES
要么:
XCODE_ATTRIBUTE_ENABLE_PUSH_NOTIFICATIONS TRUE
不起作用
我也很想知道如何从 xcode 打开这个“快速帮助”来查看这个属性(如果我拼写正确)