Unity可以跨平台发布的确是非常强大,但是发布到 Mac App Store 跟发布到iOS不一样,需要经过不少坑才能成功。这里就将我遇到的坑发出来分享下。
参考官网指南 http://docs.unity3d.com/Manual/HOWTO-PortToAppleMacStore.html
这个指南是完整的,但是有些细节的东西并没有说出。
首先,需要到 https://developer.apple.com/ 上去注册Mac证书, 这里需要注册两个证书,分别是 Mac App Distribution 和 Mac Installer Distribution (这个证书让我纠结了好长时间)。 然后就是生成 Provisioning Profile,生成之后下载导入到Xcode中(这里可能也需要些技巧,因为直接双击profile似乎不能导入?)。
然后,准备好指南中所说的全部尺寸的图标,都放到一个文件夹下。通过命令行把图标打包起来
iconutil -c icns UnityPlayer.iconset
接着,去下载个工具( http://jemast.com/unity/unity-entitlements-tool ),用它打开Unity工程所在的目录,设置好对应的信息,加入图标集合,勾选好对应选项。
设置好后,按 “Update Build Pipeline”,然后就到Unity中导出Mac执行文件(比如GAMENAME.app)
去到GAMENAME.app的目录下新建一个文件,命名为GAMENAME.entitlements(GAMENAME可以自由更改)。加入以下内容。
<?xml version=”1.0″ encoding=”UTF-8”?> <!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”> <plist version=”1.0″> <dict> <key>com.apple.security.app-sandbox</key> <true/> </dict> </plist>
保存后修改一下文件的访问权限
chmod -R a+xr “/path/to/GAMENAME.app”
然后对执行文件进行一次签名(不知道为何还要再次签名,在打包时已经签名一次)
codesign -f -s ‘3rd Party Mac Developer Application: DEVELOPER NAME’ –entitlements “GAMENAME.entitlements” “/AppPath/GAMENAME.app”
其中’3rd Party Mac Developer Application: DEVELOPER NAME’,这个参数需要到证书中查看,必须是完整的名字才行,此处被坑了好久。
接着要打包成pkg文件,同样是在命令行中执行
productbuild –component GAMENAME.app /Applications –sign “3rd Party Mac Developer Installer: DEVELOPER NAME” GAMENAME.pkg
这里,就使用了Mac Installer Distribution证书,3rd Party Mac Developer Installer: DEVELOPER NAME这个跟Mac App Distribution证书是不一样,同样需要到证书中查看,不过DEVELOPER NAME是两处保持一致的,只要修改前面的部分就可以。
最后,就是使用Application Uploader来上传pkg文件到App Store! Good Luck~
- 本文固定链接: https://freemanapp.com/zh/?p=116
- 转载请注明: freeman 于 FreemanApp 发表