Instruments 在 macOS Mojave 上使用 Hardened Runtime 使应用程序崩溃
Instruments crashes app with Hardened Runtime on macOS Mojave
我发现 Xcode 10 Instruments (Leaks) 无法附加到启用 Hardened Runtime 签名的命令行应用程序,并出现以下错误:
Error: Failed to attach to target process
我向应用程序添加了 com.apple.security.get-task-allow 授权,并重新签名。然后,应用程序不会附加失败,而是会因信号 9 而崩溃。当应用程序崩溃时,以下内容会记录到 Console.app:
CODE SIGNING: process 93890[appname]: rejecting invalid page at address 0x1015f9000 from offset 0x0 in file "" (cs_mtime:0.0 == mtime:0.0) (signed:0 validated:0 tainted:0 nx:0 wpmapped:1 dirty:0 depth:0)
如何将 Instruments 附加到此应用程序?我是 运行 macOS Mojave。
我找到了两种解决方法:
不要在启用强化运行时的情况下进行代码签名 - 这对于调试构建来说是一个很好的解决方案,但对于您可能想要的发布构建则不是 notarize。此外,它错过了 Hardened Runtime 提供的安全保护。
添加另一个权利:com.apple.security.cs.disable-executable-page-protection。这行得通,但我担心它是必需的。它还会影响安全性,但不如第一个解决方案。
我发现 Xcode 10 Instruments (Leaks) 无法附加到启用 Hardened Runtime 签名的命令行应用程序,并出现以下错误:
Error: Failed to attach to target process
我向应用程序添加了 com.apple.security.get-task-allow 授权,并重新签名。然后,应用程序不会附加失败,而是会因信号 9 而崩溃。当应用程序崩溃时,以下内容会记录到 Console.app:
CODE SIGNING: process 93890[appname]: rejecting invalid page at address 0x1015f9000 from offset 0x0 in file "" (cs_mtime:0.0 == mtime:0.0) (signed:0 validated:0 tainted:0 nx:0 wpmapped:1 dirty:0 depth:0)
如何将 Instruments 附加到此应用程序?我是 运行 macOS Mojave。
我找到了两种解决方法:
不要在启用强化运行时的情况下进行代码签名 - 这对于调试构建来说是一个很好的解决方案,但对于您可能想要的发布构建则不是 notarize。此外,它错过了 Hardened Runtime 提供的安全保护。
添加另一个权利:com.apple.security.cs.disable-executable-page-protection。这行得通,但我担心它是必需的。它还会影响安全性,但不如第一个解决方案。