首先,Unity打包IOS必须条件:ios
Unity3D下载了IOS平台
下载了XCode软件(必须是MacOS 系统)
在苹果开发者中心注册了开发者账号服务器
第一步:注册苹果开发者账号;app
Unity3D下载IOS平台和XCode下载就不介绍了,直接开始开发者账号申请
注意:账号是收费的,一个是我的版或者公司版,一个是企业版(了解到APPLE的政策是,要发布到APP STORE必须用99美圆的我的版或公司版Apple Developer Programs,要在非商店外下载只能使用299美圆的企业版iOS Developer Enterprise)ide
注册地址:https://developer.apple.com/membercenter/index.action
注册说明:https://developer.apple.com/cn/support/app-account/测试
注册前准备:ui
- 2个邮箱(299美圆的必须是公司域名邮箱)
- 邓白氏编码DUNS
注册流程:
注册APPLE ID → 注册邓白氏编码 → 获取邓白氏编码后继续验证APPLE ID的公司信息 → 等待APPLE官方审核资料 → 审核经过,缴费 → 收工 编码关于邓白氏编码3d
- 一个邓白氏编码能够注册多个APPLE 开发者帐号
- 经过APPLE的连接申请邓白氏编码,基本上一周左右就可得到。其中邓白氏那边会打电话给你核实身份,而后发邮件给你要补充公司信息,这个公司信息到时候APPLE验证DUNS编码时会用到,两边最好一致,不然修改麻烦。
- 新的邓白氏编码,请注意尝试次数不要超过3次,超过次数编码会被锁住,解锁及注册方面问题请找苹果客服
第二步:注册完成后调试
注意一下几点:code
- appID,这是每个应用的独立标识,在设置项中能够配置该应用的权限,好比是否用到了PassBook,GameCenter,以及更常见的push服务,若是选中了push服务,那么就能够建立生成下面第3条所提到的推送证书,因此,在全部和推送相关的配置中,首先要作的就是先开通支持推送服务的appID;
- 推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中建立生成,和开发者证书同样,安装到开发电脑上;
- Provisioning Profiles,这个东西是颇有苹果特点的一个东西,我通常称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一起,在开发者中心配置好后能够添加到Xcode上,也能够直接在Xcode上链接开发者中心生成,真机调试时须要在PP文件中添加真机的udid;是真机调试和必架必备之珍品;
- 日常咱们的制做流程通常都是按以上序列进行,先利用开发者账号登录开发者中心,建立开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项下面建立推送证书(服务器端的推送证书见下文),以后在PP文件中绑定全部的证书id,添加调试真机等;
*CRS文件建立:
或者
进入
CRS文件已经生成好了
3.进入开发者设置界面
* certificates(证书)
选中All,接着点击右上角的加号,咱们先来建立开发者(真机调试)证书,提交证书和调试证书建立步骤几乎同样
这里咱们Development类型证书,(用于真机调试)。选中以后进入下一个页面:
这里会提示你选择建立好的CRS文件,选择上面建立好的CRS文件,点击continue提交,就生成证书
下载下来保存到你对应得文件夹就行了,暂且不要双击安装,后面会讲解安装证书和配置文件
注意:证书最好不要建立多个,不易于管理
* identifiers(App ID)
配置App的Bundle ID,就是和XCode中对应的那个Bundle ID, 点击左边的视图identifiers下面的App IDs
点击标记2,添加AppID,设置AppID名称
设置Bundle ID
生成Bundle ID 的设置
App ID建立好以后,不须要去动它,也会在后面用到
* Devices(设备ID)**
添加你要真机调试的设备ID
设置手机名称和UDID,UDID获取经过手机链接电脑,打开iTunes软件,点击序列号字母处,显示的就是UDID
* profiles(配置文件)**
配置证书的最后一步,生成profiles,这个profiles其实最终是安装到Xcode里的,它关联证书、App ID、和Device ID,把前三者结合起来,生成一个可安装的配置文件,用于Xcode进行真机调试,用于发布应用也同样,在进行App打包生成ipa文件时,也会去验证你的证书和profiles,这也是你可否打包成功的关键。
点击第四个模块(profiles)下面的All选项,建立profiles:
开发者证书的配置完成。
注意:最终配置完成后只需下载两个文件:一个就是第一个模块里面的开发者真机调试证书、而后就是第四个模块里的profiles文件,把这两个文件下载下来,保存好避免遗失,以便接下来在Xcode中配置和使用。(PS 放好这两个文件,记住他们的位置)
第三步:Unity打包;
切换到IOS平台,进行设置
点击Player Settings ->Other settings 设置
第四步:用你打包时候选的Xcode版本打开你刚才Build的包
其实,Xcode已经帮咱们作了不少配置,只须要咱们设置如下配置:
1.点击 Product->Scheme->Edit Scheme 或者进入下面界面,并点击Archive,确保Build Configuration 为 你在Unity中的选择保持一致
- Display Name:设置你的App名字
- Bundle Identifier:设置Build ID,来自你在注册苹果开发者账号时Bundle ID保持一致。而且与Unity保持一致
- Version:App版本(与Unity设置保持一致)
- Build:版本号(与Unity设置保持一致)
2.TARGETS->Identity->Team Team选择你注册时对应的App ID 账号。
PS:能够不用选择注册相应证书时对应的 Apple ID 账号,并且选择别的对应/非对应账号也都没问题。
3.TARGETS->Build Setting->Code Signing
基本不用设置,默认配置好的,若有须要可更改设置
其中下方的 Provisioning Profile 可使用默认的 Automatic,也能够指定对应的描述文件。(通常咱们使用Automatic)
注意:若是用USB将手机链接到电脑,手机端打开开发者模式,选择链接的手机,直接点击Xcode运行,就会打包到你链接的手机上,后续步骤可省略。
4.Archive设置;只能选择iOS Device,选择其余模拟器是不能Archive的
等会,Archive会弹出
5.Export 导出;点击上图中的“Export”,以下所示,很显然第一个选项是发布app的,不要点,那是我的开发者帐号能够干的事情。
上图四种选项:
- Save for iOS App Store Deployment:保存到本地 准备上传App Store 或者在越狱的iOS设备上使用
- Save for Ad Hoc Deployment:保存到本地 准备在帐号添加的可以使用设备上使用(具体为在开发者帐户下添加可用设备的udid),该app包是发布证书编译的(The app will be code signed with the distribution certificate.)
- Save for Enterprise Deployment:这种主要针对企业级帐户下 准备本地服务器分发的app
- Save for Development Deployment:针对内部测试使用,主要给开发者的设备(具体也为在开发者帐户下添加可用设备的udid)。该app包是开发证书编译的(The app will be code signed with your development certificate)
点击Next,继续,选择存放路径,继续
点击Next,IPA就打包成功了。
附:app须要使用手机的某些功能或者应用的时候,须要受权才能够访问,下面将展现一些info.plist上经常使用的一些受权。
bool类型是YES的,这个是容许访问http的网址下面是以上受权的代码形式,能够直接拷贝到info.plist文件中:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>NSContactsUsageDescription</key> <string>请求访问通信录</string> <key>NSMicrophoneUsageDescription</key> <string>请求访问麦克风</string> <key>NSPhotoLibraryUsageDescription</key> <string>请求访问相册</string> <key>NSCameraUsageDescription</key> <string>请求访问相机</string> <key>NSLocationAlwaysUsageDescription</key> <string>始终访问地理位置</string> <key>NSLocationWhenInUseUsageDescription</key> <string>在使用期间访问地理位置</string> <key>NSCalendarsUsageDescription</key> <string>请求访问日历</string> <key>NSRemindersUsageDescription</key> <string>请求访问注意事项</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>请求访问蓝牙</string> <key>ITSAppUsesNonExemptEncryption</key><false/>
注:至于TestFlight测试和上线,后续再介绍。