在 Mac App Store 应用程序中签名库
Posted
技术标签:
【中文标题】在 Mac App Store 应用程序中签名库【英文标题】:Signing libraries in Mac App Store app 【发布时间】:2011-10-29 02:31:22 【问题描述】:我刚刚向 Mac App Store 提交了一个使用一些外部动态库的应用。
我收到一封来自 Apple 的电子邮件:
无效签名 - 可执行的 something.app/Contents/Frameworks/some.dylib 未签名,签名无效,或未使用 Apple 提交证书签名。有关详细信息,请参阅代码签名和应用程序沙盒指南。
问题当然是因为我只签署了“我的”可执行文件,而不是库。
即使它们不是由我编写的,也对库进行签名是常见/良好的做法吗?
【问题讨论】:
【参考方案1】:认为对文件进行数字签名:
一种验证该文件完整性的方法,从而可以检测它是否被修改;
一种验证谁发布该文件的方法,这与编写相应的源代码不同。您正在证明确实是您发送了该文件。
由于动态库包含可执行代码,因此最好对它们进行数字签名(在某些情况下,例如 MAS,这是强制性的),其原因与您签署主可执行文件的原因相同:确保您的应用程序完全符合您的要求(只有你)已经从你的构建机器发货,没有任何变化。一个正在运行的程序包括主可执行文件和所有加载的库。如果您只对主可执行文件进行签名,而对动态库不签名,则可以更改动态库(甚至替换它们),从而改变程序的功能。
【讨论】:
以上是关于在 Mac App Store 应用程序中签名库的主要内容,如果未能解决你的问题,请参考以下文章
Mac App Store应用签名和pkg签名(必须签名后才能销售)
Mac 应用程序 |代码签名 |不通过 Mac App Store 分发 [关闭]