将校验和文件添加到我的 macOS 公证应用程序包

Add a checksum file to my macOS notarised app bundle

我想检测我的 macOS 应用程序可执行文件是否已被他人更改。 我不会依赖代码设计,因为正如我在网上看到的那样,即使经过 Apple 公证,许多应用程序也已被破解。我知道这不能保证最高安全性,但我还是会添加此自定义保护。

A) 如果我在应用程序存档后(在 xcarchive 包中)在包中的 Resources 文件夹中添加校验和文件,则为时已晚。由于操纵,该应用程序不会启动。我因“终止原因:命名空间代码设计,代码 0x2”而崩溃​​。

B) 如果我在应用程序经过公证后添加或修改校验和文件,同样,它不会启动。

C) 如果我在构建阶段使用 shell 脚本修改校验和资源文件,在“运行 Copy Bundle Resources”阶段之前,校验和是错误的,因为当时的可执行文件moment 具有不同的文件大小和文件修改日期。

那么,将我自己的校验和文件添加到我的应用程序包中的最佳方式是什么? 我 运行 macOS 10.15.6 和 XCode 11.5 并为 macOS 10.3/10.5 编译我的 64 位应用程序。

如果我没理解错的话,您是想验证您的应用程序是否与您发送时一样?而且您担心代码签名还不够,因为它可能会被“破解”?

我不相信这可以通过使用任何类型的校验和来解决。任何可能危及代码签名的事情,也会危及您的校验和。

我会转而查看新的 Apple 证明 API。这旨在允许应用程序验证它在 Apple 硬件上是 运行,并且是代码签名版本。 (经过修改和签名的应用程序会失败——它是由不同的密钥共同签名的)

https://developer.apple.com/documentation/devicecheck