在Mac App Store应用程序中签名库

时间:2011-10-29 02:31:22

标签: macos code-signing mac-app-store

我刚刚向使用一些外部动态库的Mac App Store提交了一个应用程序。

我收到了来自Apple的电子邮件说:

  

无效签名 - 可执行文件something.app/Contents/Frameworks/some.dylib未签名,签名无效,或未签署Apple提交证书。有关详细信息,请参阅“代码签名和应用程序沙盒指南”。

问题当然是由于我只签署了“我的”可执行文件,而不是库。

即使这些图书馆不是由我写的,也是通常/好的做法吗?

1 个答案:

答案 0 :(得分:2)

将数据签名为:

  1. 一种验证该文件完整性的方法,从而可以检测它是否已被修改;

  2. 一种验证发布该文件的方法,这与编写相应的源代码不同。你在证明你真的是那个人发了那个文件。

  3. 由于动态库包含可执行代码,因此签署主可执行文件的相同原因是对其进行数字签名,这是良好的做法(在某些情况下,例如MAS,强制性):保证您的应用程序与您完全相同(并且只有你)从你的构建机器发货,没有任何变化。正在运行的程序包括主可执行文件和所有已加载的库。如果仅对主可执行文件进行签名,使动态库保持未签名状态,则可以更改动态库(甚至替换它们),从而改变程序的功能。