Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 格式错误的Info.plist导致macOS崩溃_Xcode_Macos_Crash - Fatal编程技术网

Xcode 格式错误的Info.plist导致macOS崩溃

Xcode 格式错误的Info.plist导致macOS崩溃,xcode,macos,crash,Xcode,Macos,Crash,无意中,我将该行添加到应用程序的Contents/Info.plist文件中。在Xcode调试器中启动应用程序时,计算机似乎会崩溃并重新启动。这是否被视为与安全相关的问题 在macOS Sierra 10.12.6和Xcode 8.3.3上复制的步骤: (1) 在Xcode中创建并构建默认Cocoa应用程序 (2) 使用文本编辑器,将该行添加到/Contents/Info.plist中块的末尾;以下是我的Info.plist的最后3行: (3) 不要构建,只需在Xcode调试器中运行应用程

无意中,我将该行添加到应用程序的Contents/Info.plist文件中。在Xcode调试器中启动应用程序时,计算机似乎会崩溃并重新启动。这是否被视为与安全相关的问题

在macOS Sierra 10.12.6和Xcode 8.3.3上复制的步骤:

(1) 在Xcode中创建并构建默认Cocoa应用程序

(2) 使用文本编辑器,将该行添加到/Contents/Info.plist中块的末尾;以下是我的Info.plist的最后3行:




(3) 不要构建,只需在Xcode调试器中运行应用程序;应用程序崩溃,出现灰色屏幕,您的机器重新启动

我感觉这里发生了其他事情。你是一个主要的操作系统版本落后(如果你可以的话,两个),我有一种感觉,如果你要打开一个与苹果的错误,他们只会告诉你安装最新的东西。但是我有最新的,所以我会试试

我跑10.14,我试了你的建议。我进入并手动禁用了代码签名,这是Xcode 10(和9)所必需的。当我跟踪你的测试时,应用程序无法启动。launchd生成一个错误,其效果为“无效属性列表”

所以,这肯定是旧操作系统中的一个bug。为什么不打开一个苹果的bug呢。把你的东西放在这里就行了。但是,我怀疑你的机器上有别的东西,这会引发恐慌。你也许可以深入研究日志来找出答案

更新

我按照说明修改TextEdit.app,然后插入
。我能够在10.13重现恐慌,但在10.11或10.14(我手边仅有的机器)上无法重现

我敢肯定这意味着launchd坠毁了。我相信当这种情况发生时,内核就会恐慌。有趣的是,我尝试了一个使签名无效的修改,但是不会使Info.plist无效。这些似乎没有引起恐慌。这正是所有其他操作系统所做的,这会导致进程崩溃:

Application Specific Information:
dyld: launch, running initializers
/usr/lib/libSystem.B.dylib
Sandbox registration failed: The code signature is not valid: The operation couldn’t be completed. (OSStatus error -67030.)

这正是我在10点13分所期望的。在某些情况下,我能够做到这一点。但是,并不是因为这个特殊的变化。

我感觉这里发生了其他事情。你是一个主要的操作系统版本落后(如果你可以的话,两个),我有一种感觉,如果你要打开一个与苹果的错误,他们只会告诉你安装最新的东西。但是我有最新的,所以我会试试

我跑10.14,我试了你的建议。我进入并手动禁用了代码签名,这是Xcode 10(和9)所必需的。当我跟踪你的测试时,应用程序无法启动。launchd生成一个错误,其效果为“无效属性列表”

所以,这肯定是旧操作系统中的一个bug。为什么不打开一个苹果的bug呢。把你的东西放在这里就行了。但是,我怀疑你的机器上有别的东西,这会引发恐慌。你也许可以深入研究日志来找出答案

更新

我按照说明修改TextEdit.app,然后插入
。我能够在10.13重现恐慌,但在10.11或10.14(我手边仅有的机器)上无法重现

我敢肯定这意味着launchd坠毁了。我相信当这种情况发生时,内核就会恐慌。有趣的是,我尝试了一个使签名无效的修改,但是不会使Info.plist无效。这些似乎没有引起恐慌。这正是所有其他操作系统所做的,这会导致进程崩溃:

Application Specific Information:
dyld: launch, running initializers
/usr/lib/libSystem.B.dylib
Sandbox registration failed: The code signature is not valid: The operation couldn’t be completed. (OSStatus error -67030.)

这正是我在10点13分所期望的。在某些情况下,我能够做到这一点。但是,这并不是具体的更改。

我只想强调,在步骤(3)中使用“不构建运行”,这样Info.plist就不会被新编译覆盖。我用High Sierra进行了双重检查,它也崩溃了。下面是一个更简单的场景:(1)复制TextEdit.app(2)使用vi编辑Info.plist并添加<array></array>(如上图所示)(3)双击TextEdit copy.app(5)对话框,单击打开(6)享受只想强调的crashI,在步骤(3)中使用“无需构建即可运行”,因此Info.plist不会被新编译覆盖。我用High Sierra进行了双重检查,它也崩溃了。下面是一个更简单的场景:(1)复制texteedit.app(2)使用vi编辑Info.plist并添加<array></array>,如上图所示(3)双击texteedit copy.app(5)对话框,单击打开(6)享受crashHigh Sierra 10.13.6崩溃。请使用TextEdit.app的副本尝试我的示例。插入xml表示法中的行(我在这里很难输入,xml在帖子中被删除)。见初始帖子。这真的让MacOSX崩溃了。我在10.14 beta 3上没有遇到这种情况。我得到(预期)“沙盒注册失败:代码签名无效:操作无法完成”。我不确定如何关闭10.14的代码签名。我也要试一下10.13的机器,也试过我手边的10.11机器。应用程序无法打开,产生大量无法解析plist的日志,但也不会出现恐慌。忘记使用Xcode创建应用程序吧。只需复制TextEdit.app并编辑Info.plist。确保您添加的唯一内容是,如上所述,在正确的位置定义一行空数组。使用简单的编辑器(如vi、nano、emacs)来编辑XML。到目前为止,我在4台不同的Mac电脑上进行了尝试,每台都崩溃并重新启动。我试着按照您描述的方法完全遵循您的TextEdit.app示例。没有引起我的恐慌。Apple code也会对自己的应用程序进行签名,因此,只要您修改捆绑包的内容,验证就会失败,并且拒绝加载。你是怎么做到的?还有,你检查过机器的紧急日志了吗?看看到底发生了什么会很有趣。High Sierra 10.13.6也崩溃了。请使用TextEdit.app的副本尝试我的示例。插入l