【问题标题】:Instruments crashes app with Hardened Runtime on macOS MojaveInstruments 在 macOS Mojave 上使用 Hardened Runtime 使应用程序崩溃
【发布时间】:2019-07-31 03:03:46
【问题描述】:

我发现 Xcode 10 Instruments (Leaks) 无法附加到启用了Hardened Runtime 签名的命令行应用程序,并出现以下错误:

错误:无法附加到目标进程

我向应用程序添加了 com.apple.security.get-task-allow 权利,并重新签名。然后,应用程序不会连接失败,而是使用信号 9 崩溃。当应用程序崩溃时,Console.app 会记录以下内容:

代码签名:进程 93890[appname]:从文件“”(cs_mtime:0.0 == mtime:0.0)中的偏移量 0x0 拒绝地址 0x1015f9000 处的无效页面(签名:0 验证:0 污染:0 nx:0 wpmaped: 1脏:0深度:0)

如何将 Instruments 附加到此应用程序?我正在运行 macOS Mojave。

【问题讨论】:

    标签: xcode macos macos-mojave codesign xcode-instruments


    【解决方案1】:

    我找到了两种解决方法:

    1. 不要在启用强化运行时的情况下进行代码设计 - 这是调试构建的好解决方案,但不适用于您可能想要 notarize 的发布构建。此外,它错过了强化运行时提供的安全保护。

    2. 添加另一个权利:com.apple.security.cs.disable-executable-page-protection。这行得通,但我担心它是必需的。它也会影响安​​全性,但不如第一个解决方案。

    【讨论】:

    • 能否请您详细说明第 1 点,因为公证需要 Hardened Runtime!
    • 我在第 1 点的意思是在没有强化运行时的情况下进行签名,也没有对构建进行公证。这当然不适合您要发布的版本。
    猜你喜欢
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2020-03-06
    • 2018-10-01
    • 2022-06-10
    相关资源
    最近更新 更多