【发布时间】:2020-03-01 10:06:40
【问题描述】:
过去,我可以通过对系统偏好设置应用程序的副本进行自签名,并将其设置为 Xcode 中的运行目标,从而在系统偏好设置中运行/调试自行开发的偏好设置窗格。
一个符号链接放置在 ~/Library/PreferencePanes 中,它指向 Xcode 构建的输出 prefPane 并且一切正常……至少它曾经在 10.11 到 10.14 下使用。
见:Debug System Pref Pane w/10.11 and System Integrity Protection
低于 10.15 这会中断。虽然 prefPane 正确加载了真实的(Apple 签名的)系统偏好设置应用程序,但当我尝试在系统偏好设置的自签名副本中运行我的 prefPane 时,我得到“无法加载偏好设置窗格”。尝试加载任何 Apple 内置偏好窗格时也会发生同样的情况。
我都试过了:
codesign -s "My Developer ID" -f "/Applications/System Preferences Copy.app"
和
codesign -s - -f "/Applications/System Preferences Copy.app"
控制台中不会产生错误。
我的猜测是在加载过程中的某个地方,它正在检查系统偏好设置主机应用程序是否由 Apple 签名。如果我尝试使用真正的系统偏好设置应用程序作为调试目标,则会收到系统完整性保护错误。
有没有像 10.11 到 10.14 那样禁用 SIP 的方法来做到这一点?
【问题讨论】:
标签: xcode debugging cocoa macos-catalina nspreferencepane