Unity发布IOS

时间:2024-04-08 16:08:52

关于Unity发布苹果并真机测试的设置与连接

 

完全是一个苹果盲,经过三天的摸索总算将unity的项目成功在ipad 上运行,故写下本文以做记录(本文适合对iOS开发零接触者)

以下是这次摸索的总结:

 

首先要说明一下:

原先学过Android也用unity发布过android的都知道android的发布只是搭配好开发环境与试置好路径即可在本机上发布成apk.

本以为发布成ios也应该是差不多的一个过程,但可惜如果那样想就大错特错了!!

 

unity ios的发布流程:

首先你要在mac机上发布,机上要装有xcode

 

在unity上选ios项发布,发布出来是不是一个app文件,而是一个项目文件其名称是:Unity-iphone.xcodeproj.而文件下面有如下文件:

Unity发布IOS


一、 移动设备与xcode的连接

Xcode苹果公司向开发人员提供的集成开发环境用于开发Mac OS XiOS的应用程序

 

而此时xcode就会自动打开你发布的项目文件。这个时候,你要确保的 ios移动设备已经成功与的电脑连接,并接你的移动设备设置为开发机

如果设置成功,你的设备就会在xcodex中显示,如下:

Unity发布IOS


这是我接入的 ipad,如果连接不成功,就会出现如下显示:

Unity发布IOS


此时你要到xcode里面去将你的移动设备设置(这里在xcode6.1的情况下,如果是其他版本设置方式可能有点不同)

如下图:

Unity发布IOS




然后:

Unity发布IOS

(如果你的移动设备一直都无法连接到XCODE上,可能是你移动设备的版本过高,xcode的版本低,此时应该升级XCODE版本,我就是遇到这个问题)


移动设备与xcode的连接算是完成。

二 证书的申请与安装

首先你要看一个开发者账号,开发者账号分为三种

iOS开发者计划主要为iOS设备进行App开发,比如iPhoneiPad等,iOS计划也是目前苹果整个开发者计划类型中人数最多的。账号类型分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别为$99$99$299、免费。根据账号类型的不同,申请的条件和所具有的权限也不同。

个人计划只需要填写个人信息并通过苹果审核即可,公司计划需要出示相应的公司信息、营业执照等,企业账号需要出示的信息和公司账号类似,高校计划需要提供高校基本信息,在注册方式上苹果开发者官网有详细的流程。

在权限上,个人账号和公司账号同为$99/年,但是在发布署名上,公司账号可以填写公司或组织信息(比如某某公司、某某工作室),而个人账号只能默认显示注册时填写的个人信息,并且不能修改。另外,公司账号提供团队开发的模式,一个公司类型账号可以管理添加开发者作为Team member协同开发。当然,也可以将个人账号升级为公司账号,前提是得提供相关公司信息并且得邮件联系开发者支持中心或者拨打支持电话。企业账号为$299/年,企业账号和前两者最大的不同在于不能将App发布到App store,但可以将App放到内部服务器上提供给企业内部任意一台设备进行安装,并且不需要特别绑定Device ID。例如企业内部OA系统如果是用iOS设备的话,那就适合这个计划。最后一种是高校计划,苹果为鼓励高校更多的参与到苹果开发者计划中来,特意推出这一项计划,高校计划具有在真机上测试等权限,但不能将App发布到App store(本段来自http://www.cnblogs.com/zhw511006/p/3517229.html

当有了个人账号后就可以登录

https://developer.apple.com/devcenter/ios/index.action


然后点击log in-àios developer program -àcertificate,indentifiers&profiles

如下图:

Unity发布IOS


Unity发布IOS



如果你从这里:

 

https://idmsa.apple.com/IDMSWebAuth/login?&appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757&path=%2F%2Fmembercenter%2Findex.action

Unity发布IOS


登录后会进入以下画面:

Unity发布IOS


点击后会进入以下界面:

Unity发布IOS


点击certificates-àdevelopment如下图:

Unity发布IOS


 

选中ios app development,此时如果该选项是灰色不可选的话,可能你的开发者证书已经有2个了,此时你可以点certificates--->all查看

Unity发布IOS



当已存在两个时,你可以直接删除一个不必要的,就可重进行上一步的选择。


然后跟据提示进行下一步选择。。。。。最后会出显让你上传CRS证书Certificate SigningRequest(CSR)文件,这个文件是保存在我们的mac(keychain)里面的,此文件包含了(公钥和私钥),而我们的应用程序签名是使用私钥来签名用公钥来进行验证而苹果生成的Certificate只包含了公钥,当你用自己的私钥签名后,苹果会用公钥来进行验证,确保是你自己对程序签名而不是别人冒充的

如下:

Unity发布IOS

此时,回到你的mac界面,打开钥匙串访问,如下图:

Unity发布IOS

Unity发布IOS


--à申请本地证书(电子邮件一般写你开发者账号,名称随意,保存到你熟悉的一个位置)继续。。。。



Unity发布IOS


申请完后,回到网页刚才需要上传证书的页面,将该证书上传。最后开发者证书的申请算是完成。申请完成后你再将证书下载下来,双击或点击打开,就可安装到你的电脑上

如下图:

Unity发布IOS


Unity发布IOS


此时算是说明你的开发者证书已经安装好.


因为是真机测试,ios开发不同于android,android的真机测试无论任何手机,只要你的android开发环境配置好,一般随便拿一个andriod手机来测试都不会有问题,如果有问题那最可能的就是本身程序问题。而ios开发的真机测试,测试前不仅要先将你的手机设置为开发机,还要到ios开发网站绑定UDID(每台ios机所唯一标识),过程如下:

Unity发布IOS

———>(名字随便取, UDID不知道的话,可能通过xcode-àwindow-àdevices查看identifier)

Unity发布IOSUnity发布IOS



注意每个机子对应每个开发者账号只需绑定一欠,而个人开发者账号只能绑定100台真机。

测试机的绑定算是完成。

 

然后是开发应用App ID的绑定

如下图是我绑定的:

Unity发布IOS


操作方法如下:

点击右上解的添加(+)


Unity发布IOS


这里要注意bundle id要与xcode下的 bundle identifier的一致,如下:

Unity发布IOS

还要与unity下的bundle identifier一致,如下:

Unity发布IOS

App ID的绑定算是完成


设置Provisioning Profile

一个Provisioning Profile包含了上述所有内容 Certificate && App ID && Device, 这个Provisioning Profile文件会在打包时嵌入到.ipa的包里,如下图

 

所以一台设备上运行应用程序的过程如下(Developer Provisioning Profile为例):

 

检查app  bunld ID 是否 matches Provisioning Profile  App ID

检查 app  entitements 是否 matches Provisioning Profile  entitements

Certificate来验证签名签名

检查此设备的UDID是否存在于 Provisioning Profiles 仅在 非发布证书中

 

申请如下:

Unity发布IOS



继续。。。。

 

当都整个流程操作完了之后将所生成的证书下载下来,双击或点找开即可安装。

当安装完后,provisioning profile的设置算完。

 

此时回到xcode

Unity发布IOS

这里对应你移动设备ios版本

Unity发布IOS



然后到build settings里面设置

Unity发布IOS



设置到这里就算完成啦〜〜〜

但有时,从unity发布出来有项中在xcode6.1会报如下错:

Unity发布IOS

Unity发布IOS


解决方案如下:

#include <OpenGLES/ES2/gl.h>

改成

#include <OpenGLES/ES2/glext.h>

编译通过。



Unity发布出来的ios项目如下:


Unity发布IOS

会出现没有LaunchImage.launchimage文件夹,如果XCODE上报测试成功,但移动设备上却无法打开应用,很可能就是缺少了这个文件夹(缺少的原因可能是xcode上launchimage没有设置)。