本篇文章是在对Unity发布到IOS的实际使用中出现的问题,并总结出来相对应的方法!如果大家想在发布的时候不犯错误,相信本篇文章的内容会帮到你。
1.开发环境
MAC环境:Xcode环境 7.2.1
Unity环境:Unity5.3
2.基本说明
由于Unity发布到IOS,是以Xcode工程的形式发布到MAC中,所以,在发布的时候需要注意以下几点:
1. 发布的工程,需要以真机进行调试
(我发布的时候,选择发布unity到模拟器版本,发布后无法用模拟器运行)
2. Unity发布真机:Build Settings->Player Settings->Other Settings->SDKVersion 选择真机(不知道是哪个,可以有道翻译一下)
3. Build Settings->Player Settings->Other Settings->ScriptingBackend 选择IL2CPP支持64位
4. Build Settings->Player Settings->Other Settings->TargetDevice(这个如果只支持Iphone就选择只有Iphone,如果支持Ipad,则发布到
Itunes的时候,需要提交Ipad的相关信息如ipad截图等。否则无法上线)
5. Build Settings->Player Settings->OtherSettings->Optmization->Api Compatibility Level 如果使用了文件一系列的操作,选择.NET2.0
6. Build Settings->Player Settings->Company Name 与Product Name的名字不要胡写,审核不通过不要抱怨!!!!
7. Build Settings->Player Settings->Other Settings->BundleIdentifier不要胡写,审核不通过不要抱怨!!!!
8. 发布前,注意需要把ICON与Splash Image设置好。要不发布后,还得重新发布,很麻烦。(Build Settings->Player Settings->Default Icon也要设置好),发布到IOS中后,是一个Xcode工程!
现在,发布完成后,我们需要注意:
1. 这个程序只有真机可以调试。(如果发布为模拟器版本,那么在模拟器下应该是无法运行的)
2. 如果发布为模拟器版本,则该工程无法在真机上运行!
3. 如果没有开发者账号的童鞋,此刻可以百度(Xcode7 无证书真机调试)按照其中的方法,真机调试Unity程序
4. 如果有开发者账号的童鞋,可以在苹果开发者平台,导出真机调试证书进行真机调试
证书有很多,需要注意:
- 真机调试证书 (下载证书的时候,需要把测试设备的UDID加入进去)
- 沙盒测试证书 (该证书沙盒测试测试成功,至于是否可以提交审核上线,没测试)
- 发布证书(该证书用于上线)
其中每个证书都不一样,需要注意的就是,一个证书,请在自己电脑下申请一个钥匙串再上传生成证书。不要一个钥匙串生成很多证书。
如何生成证书,以及如何使用,百度一下具体的操作。这里只讲坑!!!!
坑1:有些童鞋的证书,生成后,下载到电脑里就是过期的,那么请点击一下系统跟证书,其中有一个系统证书是过期的,这是因为苹果在2016年2月份以后,需要所有的设备都支持64位系统,所以,如果你的电脑只有一个这个过期的证书,那么百度这个证书名字,下载新的证书。 如果你电脑有两个相同的证书,一个过期,一个没过期,那么直接删除那个过期的证书。这个证书的名字是:apple worldwide developer relations vertification authority
坑2:程序写完,测试完成,上传到APP Story的时候,使用 XCODE上传工程,则,显示上传成功,其实根本就没有上传成功。
解决方案:使用Application Loader 打包IPA后上传。(具体方法度娘)
坑3:Unity不要使用prime31 storekit 破解版的内购插件!
原因:因为这个插件,现在网上最新的也就是2014年的。 那时候,苹果还不要求你的程序必须都支持64位系统。所以,如果你使用这个插件,沙盒测试是可以测试成功的,但是你就是提交不上去。!! 使用64位编译器编译,这个插件怎么折腾 也无法编译过去。除非你是土豪,70美金买这个付费版。那我没话说。
这里我推荐一个苹果内购插件:免费的,而且可以用。
具体下载链接:http://pan.baidu.com/s/1pLUXLGn
使用方法:将AppStore预置件拖入到场景中,在你要购买的按钮上绑定BuyBtn脚本
Iap ID 输入你内购的ID(在ITunes中添加的id) ObjName (购买成功后通知的物体名)
Fun Name(购买成功要通知的方法) 其实这就是一个SendMessage
看到这里,你还要注意:
发布到Xcode后,使用这个插件还是无法编译通过? 为什么呢 因为这个插件是使用的手动ARC释放,不是使用苹果的自动ARC释放,所以,你需要在Xcode中设置这个插件中的类为不使用ARC释放
这里需要注意:只对3个文件不使用ARC 如果你对整个工程都不使用ARC,那么,这个程序直接崩溃,在Xcode中 选择项目的Tagets->选中BuildPhases,在Complie Sources中选择SKProduct LocalizedPrice 与InAppPurchaseManager双击他们,在后方输入-fno-objc-arc(如果找不到这个文件可以手动将这两个文件添加进Complie Sources,或者直接编译,不成功后,这里就出现这两个文件了)
内购测试:
坑1:一定要填写好银行信息,才能内购测试,否则,无法测试 银行信息需要咨询银行你的联行号!
坑2:你的信用卡 包括你购买开发者账号,在中国,必须是双币种信用卡,全币种的不能付费与收款
坑3:内购添加沙盒测试账号!(土豪请无视)
发布注意:
隐私政策网址:百度文库找一篇然后输入连接就可以
公司网址:填写你个人博客的地址就可以
UnityADS广告:
这东西吧,你添加进来以后,就不好删了,如果添加后,输入好在unity中的ID就可以了 发布的时候,把测试按钮点击false
总结
其实IOS端还是没什么坑的 Android才是真正的雷区。
做安卓开发的还可以参考:Unity发布android遇到的问题及解决办法