在黑苹果上使用Xcode Instruments

13

我使用hackintosh (i7-4790K 4GHz, 16GB DDR3, GF980Ti) 开发Xcode(包括Swift和Objective-C)已经一年了,从未出现过任何错误。

但现在我需要使用Instruments应用程序(如Leaks、Allocations、Energy Log、System Trace等),但我做不到!当我启动任何这些应用程序时,我只看到一个透明窗口,没有任何可见的信息。

输入图片描述

3个回答

39

编辑:正如@Eike在他的答案中所说,从10.13开始,Instruments和其他应用程序面临的这个问题可以直接解决。对于10.12,NVWebDriverLibValFix kext是更好/不那么侵入性的修复方法,并避免了一些权限问题。现在应该认为本答案已经过时。


Instruments 是由 Apple 分发的带有代码签名的应用程序。其中一些应用程序被标记为拒绝加载未经 Apple 签名的库文件。Nvidia Web Driver 没有经过 Apple 签名,因此不会被加载,导致您描述的行为。
接受的答案告诉您通过加载另一个由 Apple 签名的驱动程序来解决此问题。虽然这肯定可行,但我更喜欢采取另一种方法:强制 Instruments 加载 Nvidia 驱动程序。
您可以使用以下命令重新签名 Instruments 二进制文件:
sudo codesign -f -s - /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/MacOS/Instruments

它将加载Nvidia驱动程序,并且可以完美运行。

这对于视图层次结构工具有效吗?使用安装了GeForce GTK 1060和Nvidia Web Driver的计算机,它对我显示空白屏幕。我应该为哪个可执行文件进行代码签名? - iosdude
这个方法在Instruments上没有起作用,现在完全不起作用了。一旦我运行它,它就会立即使我的应用程序崩溃(是的,我已经使用Xcode进行了测试,并且我的代码中没有错误)。有没有办法恢复签名,或者我必须重新安装它? - llanfair

7
最受欢迎的答案中的签名修复不幸地阻碍了Instruments的执行权限,因此尽管它是可见的,时间分析器也无法工作。
幸运的是,来自其他答案的iBooks线程还没有结束,建议(并提供)的解决方案是使用内核扩展,使Nvidia驱动程序出现验证。

https://github.com/mologie/NVWebDriverLibValFix

这基本上解决了问题的根源,是没有苹果签名的Nvidia驱动程序的下一个最佳选择。
在10.13 / High Sierra中,Web-Driver应该可以无需任何修改即可工作(升级时应将其删除)。

最佳解决方案!它可以使所有基于Metal的应用程序工作,例如Xcode(无需取消签名)/Instruments/iBooks/Reveal.app。 - OdNairy
最新的Web驱动程序和iBooks完美地运行 - 谢谢! - Mark B Tomlinson

1
这是最近nVidia macOS Web Drivers存在的已知问题,不仅在XCode Instruments中出现,在iBooks中打开书籍时也会出现。人们在苹果支持论坛上报告了使用Web Drivers在真实Mac上遇到此问题,因此它不仅影响Hackintosh PC。请参见此线程:https://www.tonymacx86.com/threads/nvidia-web-driver-ibooks-bug.203229/page-8
临时解决方法:启用i7-4790K中的Intel HD4600图形。确保在UEFI BIOS中启用它,并通过Clover注入。请参见上面链接中的帖子#72。这解决了我在Hackintosh上透明窗口的问题。
另一种解决方案是移除nVidia显卡并仅使用Intel HD4600,但这样你当然会失去GTX980Ti的强大性能。
更新:我推荐Nax的解决方案,它在每个方面都更好。但是,这个codesign命令不能解决透明iBooks窗口的问题。如果重新签名iBooks,则会在启动时崩溃。

谢谢!我会尝试一下。你知道这是与任何nVidia macOS Web驱动程序有关的问题,还是只涉及GeForce 9xx系列? - zzheads
1
上周我遇到了一台GTX 750Ti的问题,所以这不是一个特定设备的问题。问题出在nVidia网页驱动程序上。如果你在控制台应用程序中检查日志,它会显示出具体的错误信息。 - balazs630
1
这不仅限于Hackintosh……它在我的GF960上也出现在“真正”的MacPro中。有用的方法是使用苹果的图形驱动程序而不是更新(可能更快)的nvidia驱动程序。不确定是否可以在Hackintosh上采用这种方法。 - Eiko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接