许多OS X应用商店应用被列为“应用”已损坏,无法打开


11

无需进行任何更改,当我尝试打开应用程序“ Breeze”时,我现在收到此消息-其他应用程序在其他Mac上的失败类似:

在此处输入图片说明

我试图通过从App Store重新安装此消息来摆脱此消息,但没有任何变化。通过选择“允许从任何地方下载的应用程序”,重新启动和更改Gatekeeper安全首选项也无济于事。

到底他妈发生了什么?


您是否认为这可能与我的问题有关?(具有讽刺意味的是,今天是我的生日。)
geokavel 2015年

Answers:


17

几乎每个人都和您在同一条船上。情况非常复杂,但是此图显示了制作“接收”文件所涉及的证书层的一些细节:

在此处输入图片说明

Apple工程师使用标记为“无效”的证书在:格林尼治标准时间2015年11月11日21:58:01签署了今年下载了很长时间的应用程序。此外,以前使用签名算法进行签名的证书之一:sha1WithRSAEncryption,并且正在过渡到并非所有操作系统和开发人员都完全支持的sha256WithRSAEncryption。

(许多出色的文章中)最好的写作是本·汤姆斯(Ben Toms):

简而言之,构成应用程序用来验证正确的App Store下载的包装器的密钥之一已于昨天到期。Apple已续签该证书,但是您可能需要立即采取措施来纠正此错误。

奇怪的是,Apple自己制作的应用程序依赖于其他验证信任链,因为它们包含相同的已过期证书,但仍可在OS X上运行。基本上,这些应用程序似乎使用其他(或不使用)收据验证来确保正确性。

如果您对命令行感到满意,请尝试重新启动可能导致这些现在过时的应用收据的过程:

killall -KILL storeaccountd

如果关闭Mac的电源,那也将循环运行帐户守护程序并应解决问题,这样您就不必在一个Apple证书到期后将应用程序重新下载到计算机上。

此时,当您尝试运行该应用程序时,系统将提示您重新输入一次密码。这将为您提供来自Apple的新证书,该证书可能会或可能不会解决实际的破损,具体取决于应用程序使用收据文件的方式或方式。

可以解决虚假证书失败的另一件事是检查日期/时间设置,然后尝试完全退出 Mac App Store。如果重新登录后仍然无法运行该应用程序,则可能会被迫删除该应用程序,并在确认日期/时间并重新启动操作系统后重新下载该应用程序。确保检查聚光灯并删除该应用程序的所有副本。尝试恢复下载之前,请清空废纸trash。

如果其他所有方法均失败,则请谨慎联系您特定应用程序的开发人员以及Apple支持以寻求指导,因为处理此收据验证和生成的程序没有充分记录。

非常感谢Craig HockenberryPaul Haddad对这里发生的事情进行了很好的技术解释。如果没有社区的共同努力,当出现这种令人不安的破损时,我们可能会处于更黑暗的境地。


此外,这是一个有点痛苦挑除与来自CommerceKit,从有意义的无害storelegacy的错误信息sandboxd的错误,storeassetdstoreuidstoreaccountdstorelegacy处理消息和错误弄清楚什么改变失效时间为OS X后重启更新,这是在收货后缓存到具有更新的到期日期的文件系统。最好将其中的一些文档记录下来或将其扔掉,以便您可以在下一个信任链由于用户错误或操作系统开发人员的远见卓识而失败时加载应用程序。
bmike

不幸的是,这对我没有帮助。重新启动,重新安装,终止上述过程,检查日期/时间并注销并重新登录到App Store并没有帮助。这是在Mac 10.10.5上。从命令提示符打开也无济于事:$ open -a Breeze.app LSOpenURLsWithRole()对于应用程序/Applications/Breeze.app失败,错误-10810
Andrew

非常感谢您的回答。不幸的是,这没有帮助。更详细地讲,我尝试了命令行技巧,重新启动,重新输入了密码,但仍然收到该消息。日期/时间设置对我来说看起来不错(我应该在那儿检查一下?)重新安装后,仍然会收到相同的消息。有任何想法吗?
Corsin Pfister

我刚与Apple支持人员打过电话,并使用一些屏幕共享功能尝试了一些操作。其中包括:检查日期和时间,从媒体库中删除/移动某些内容,重新启动,检查其他第三方应用程序(事实证明这些程序不受影响)。我也在AskDifferent上让支持人员意识到了这个问题。在尝试了一些无济于事的事情之后,他建议与Breeze的创建者联系(我会这样做),并提供了案例ID,以防我想再次与Apple支持联系。
Corsin Pfister

我又增加了一步。@CorsinPfister-检查应用程序的多个副本并删除垃圾箱。备份后,我还要断开Time Machine驱动器的连接,以确保该storeaccountsd过程100%收到有关应用程序的新收据。这极不可能是开发人员的问题。昨天格林尼治标准时间1800,他们都没有犯同样的错误。希望苹果公司能更好地记录一切。
bmike

7

从Mac App Store下载的应用程序中嵌入的收据似乎已使用过期的证书进行签名。

Tapbot的Paul Haddad今天早些时候在Twitter上指出了这个问题。

https://twitter.com/tapbot_paul/status/664653066679906304

对于某些用户,重新引导足以提示操作系统从商店中检索新的收据。其他用户发现他们被提示再次登录Mac App Store以更新应用程序收据。其他开发人员(例如C-Command软件)建议用户删除应用程序,然后重新下载


这还不是故事的全部。我使用的应用即使已使用标记为无效的证书签名(2015年11月11日21:58:01 GMT之后仍可启动),例如Xcode仍在运行,因此我正在研究可以删除删除的内容并重新安装OS X感觉到的每个应用程序都已“损坏”。
bmike

2
也许操作系统不会在每次启动应用程序时检查收据。和/或也许仅在一段时间不活动后才进行检查。您可能认为这已记录在某处。:)
Alistair McMillan

1
由于这对大多数人来说应用程序可以“到期”是一个巨大的惊喜,并且这对于乘坐飞机或从WiFi出行的人继续在Mac OS上工作将是一个真正的痛苦,因此,我希望得到来自以下方面的公开解释:苹果了解发生的事情,发生的原因以及如何解决/防止将来发生的事情。基本上,Gatekeeper需要一个功能来预先报告即将到期的应用程序,并需要一个切换开关来临时覆盖此检查。一定要对苹果的脸蛋有所了解,以确保他们未能成功地教育用户并注意他们。
bmike

2
我只是感到惊奇的是,公司经常遇到证书过期的问题。如果他们有某种方法可以自动提醒自己某些事情需要在某些日子更新。
Alistair McMillan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.