调试系统预面板w/10.11和系统完整性保护



我的一个项目是系统偏好面板。在10.11中,Xcode的调试器无法调试它,因为我得到一个"由于系统完整性保护而无法附加到系统首选项"。

我如何在10.11下调试我的前缀,就像我在每个操作系统中做的那样回到10.3?

我最终制作了一个系统偏好的副本,称之为"系统偏好(签名)",然后用我的DeveloperID签名,它取代了旧的代码签名,并允许它在没有SIP的情况下正常运行。

创建PreferencePane项目后编辑build方案,在左侧列表中选择Run方案,并在参数选项卡上使用+按钮添加环境变量(变量OBJC_DISABLE_GC和值YES)。

然后选择左侧列表中的Pre-Actions并添加

cp -Rf ${CONFIGURATION_BUILD_DIR}/BuildOutputPrefPane.prefPane ~/Library/PreferencePanes

然后在左侧列表中选择Run,选择System Preference。app as Executable from info选项卡。

构建您的解决方案,然后去构建输出,并通过点击它来安装您的首选项窗格并替换现有的。

现在用正确的方案运行你的项目,如果你在你的应用程序中设置了一个断点,并使用安装的首选项面板,它会工作,日志也会工作。

这也适用于Swift。

测试Xcode 7.1.1, EL Capitan和Swift 2语言。喜欢

最新更新