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

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

内容提要

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

🎯

关键要点

  • 背景:作者记录了为游戏工程师编写Unity版本SDK并上架Mac App Store的过程。
  • Mac应用的下载渠道分为官方渠道(Mac App Store)和非官方渠道(公司官网等)。
  • 希望通过Mac App Store获得官方流量和推荐,因此选择为应用增加macOS平台。
  • 签名过程:使用Unity编译后需修改info.plist文件和创建.entitlements文件。
  • info.plist文件修改包括设置App Uses Non-Exempt Encryption、检查Bundle OS Type code、设置App Category和LSMinimumSystemVersion。
  • 创建并修改.entitlements文件,添加TeamID和AppID,并开启沙盒功能。
  • 在.app/Contents路径下添加embedded.provisionprofile文件,确保文件名正确。
  • 签名指令包括对插件、库文件和应用本身进行代码签名,使用不同的证书。
  • 签名过程中遇到的问题包括缺失架构、缺失图标和缺失provisioning profile,提供了解决方案。
  • 了解Mac签名的公证要求,非Mac App Store分发的应用需进行公证。
  • 所有Mac App必须进行代码签名,确保可执行文件正确。
  • 配置权限文件和嵌入distribution provisioning profile,确保权限正确。
  • 决定以何种格式分发Mac App,包括.app、.zip、.dmg和.pkg。
  • Entitlements文件描述可执行文件的权限信息,Xcode会结合其他信息应用最终权限。

延伸问答

如何为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>`来检查应用的签名是否正确,确保可执行文件和权限信息符合要求。

➡️

继续阅读