通过Mac App Store分发应用之签名过程

💡 原文中文,约9700字,阅读约需23分钟。
📝

内容提要

本文介绍了作者在帮助游戏客户端进行Mac App签名过程中的步骤和指令,包括修改info.plist文件和创建.entitlements文件。作者还解决了签名过程中的问题,并提供了相关链接。

🔎

延伸解读

签名顺序与证书选择

文章强调签名需从内向外进行,即先签依赖项再签主应用。例如,对PlugIns和Frameworks下的组件使用3rd Party Mac Developer Application证书签名,最后对.app签名并附加entitlements文件。生成安装包时则需使用3rd Party Mac Developer Installer证书。这种顺序和证书区分是确保签名有效性的关键。

常见签名错误与修复

文章列举了三个典型错误:缺失x86_64架构、缺少ICNS图标、缺少provisioning profile。解决方案包括调整LSMinimumSystemVersion至12.0以上、添加符合要求的图标、在.app/Contents下放置embedded.provisionprofile文件。这些修复直接对应苹果的验证要求,可帮助开发者快速通过审核。

沙盒与权限配置要点

上架Mac App Store必须开启沙盒功能,并通过.entitlements文件声明权限。文章以游戏项目为例,勾选了网络和文件读写权限,并添加了TeamID和AppID。同时提醒,对库文件签名时不可使用--entitlements选项,否则可能导致应用崩溃。正确配置权限文件是保证应用运行和通过审核的基础。

分发格式与公证要求

Mac App支持.app、.zip、.dmg和.pkg四种分发格式。通过Mac App Store分发无需公证,而非商店分发则必须公证,否则会触发安全警告。文章还指出,.pkg安装包需根据分发渠道选择签名证书:商店用3rd Party Mac Developer Installer,非商店用Developer ID Installer。了解这些差异有助于选择合适的分发方式。

❓

Q&A

如何为Mac应用进行代码签名?

为Mac应用进行代码签名需要修改info.plist文件、创建.entitlements文件,并使用codesign命令对应用及其组件进行签名。

在签名过程中常见的问题有哪些?

常见问题包括缺失架构、缺失图标和缺失provisioning profile,解决方案通常涉及修改info.plist或添加必要文件。

为什么需要对Mac应用进行公证?

非Mac App Store分发的Mac应用需要公证,以避免用户看到“应用可能会损害电脑”的警告,而通过Mac App Store分发的应用则不需要公证。

如何创建和修改.entitlements文件?

使用Xcode创建与项目同名的Mac工程,添加App Sandbox Capability,并在生成的App.entitlements中添加TeamID和AppID。

Mac应用可以以哪些格式分发?

Mac应用可以以.app、.zip、.dmg和.pkg格式分发,具体格式取决于分发渠道。

如何确保Mac应用的签名正确性?

可以使用命令`codesign -d -vv <filePath>`来检查应用的签名是否正确,确保可执行文件和权限信息符合要求。

🏷️

标签

➡️

继续阅读