最近蛋疼的需要发布unity游戏到Mac App Store,网上的教程不太多,第一搞有点蛋疼,各种证书搞糊涂了,就这机会恶补下apple的相关证书。
其实官网给了教程, http://docs.unity3d.com/Manual/HOWTO-PortToAppleMacStore.html
官网上大概描述了整个事情的流程,但是各种细节还待完善。
下面就整个过程整理如下:
申请证书
需要到 https://developer.apple.com/ 上去注册Mac证书, 这里需要注册两个证书,分别是 Mac App Distribution 和 Mac Installer Distribution 。 然后就是生成 Provisioning Profile,生成之后下载导入到Xcode中(这里可能也需要些技巧,因为直接双击profile似乎不能导入,网上百度教程吧,但是有时好奇怪,我查看证书的详细信息之后双击又能够安装了,好纠结。。。)。
证书申请配置,注意选择macos的就行,其他的和ios的一样。
为了说的明白,上几张图(感谢小伙伴提供的原图)
下载申请的证书,双击安装,在钥匙串里就能看到了。
其他的过程类似,就不细说了,不明白的地方留言。
Unity配置
1.Build Settings设置
2.PlayerSetting设置
bundle 、公司名、游戏名等正常设置就行
Mac App Store Validation (测试时不要勾,发布时要勾上)
3.直接build生成本地App
App包内容设置
选择对应app,点击右键选择显示包内容,如图:
修改这个info.plist文件,如图:
签名打包上传
1.签名
签名方法有两种:一种是xcode工具自动签名,另外一种是通过命令手动签名。由于unity生成的工程文件是app,不能有xcode自动签名,那么只能采用手动签名了。
①准备entitlements授权文件
直接创建新文件,添加如下内容:
<?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>
保存文件,命名为YourGameName.entitlements即可,后缀一样,名字无所谓。
②授权
给app及子目录文件赋值权限
chmod -R a+xr "YourAppName.app"
③签名
codesign -f --deep -s '3rd Party Mac Developer Application: cerName' --entitlements “appname.entitlements” “appname.app”
签名之后,包里会多一个文件夹”_CodeSignature”。
2.打包
打包pkg,命令如下:
productbuild --component “appname.app” /Applications --sign "3rd Party Mac Developer Installer: cername" appname.pkg
3.上传Mac App Store
通过Application Loader来上传,必须是版本3.0,其他版本不支持。下载地址https://itunesconnect.apple.com/apploader/ApplicationLoader_3.0.dmg
或者通过itunes connect 下载。
终于完了,祝你好运。