Xcode6以后如何用企业证书发布应用
来源:互联网 发布:上海网络通信设备公司 编辑:程序博客网 时间:2024/06/14 23:58
Xcode6以后,使用企业账号发布应用的流程发生了很大的变化。所以这里也写篇文章总结记录一下。不得不说貌似每次Xcode的升级都对企业账号的发布流程有所调整。
在这之前我们需要讲讲OTA(即Over-the-Air)。OTA是Apple在 iOS4 中新加的一项技术,目的是让开发者能够不需要从Appstore上下载安装应用,实现从自己的服务器下载并安装iOS应用,更重要的一点是不需要进行应用程序审核。简单地说,就是用户只需要在Safari中打开一条链接,就能直接在手机上安装App。总的来说,目前实现OTA有三个途径:
- 通过企业证书发布
- 通过个人证书发布(Ad_hoc)
- 直接安装在越狱机器上
我们这里只详细讨论使用企业账号发布。因为个人证书发布流程和企业证书发布流程基本一致,只是使用的打包证书不一样而已。个人证书发布使用的是个人开发者账号,使用的Ad_Hoc证书是要绑定UDID的,这个是有设备数量限制的,最多100台设备。而企业证书的In Hourse证书则不需要绑定UDID,没有设备数量的限制。最后对于越狱机器而言直接安装ipa包就可以了,不需要做下面的流程。
言归正传,相对于以前来说,在Xcode6之前的时代,使用企业账号发布应用真的是方便很多。而且编译器Xcode也会在打包和导出IPA包的流程上引导我们去完成企业应用的发布流程。
关于以前(Xcode6之前)是如何通过企业账号发布内测应用这里就不去详细说明了。目前还在被大家熟知并运用的企业证书发布流程基本都是从 Xcode6 以后开始。可以确定的是这个流程既不方便也很费事。而且在iOS9上还对企业应用的安全性做了重大的调整。哎,想想都只能呵呵了!
要使用企业证书发布内测应用,所以你要先有个苹果企业账号。关于如何去申请企业账号这里也不多说,不知道的自己去百度一下吧。有了企业账号之后,后面的流程 创建 Certificates 、 APP ID 和 provisioning profiles 都是和个人开发者账号一样的。只不过企业账号创建的 Distribution 证书是 In House Distribution,即企业账号发布证书。后面的应用打包发布就是用这个 In House Distribution 证书打包的。
上面关于发布证书的一连串准备工作完成后,接下来就是打包了。打包和正常的打包流程一样。Product-->Archive-->Export 就出现了选择导出的IPA包类型的界面了,如下:
第一项和第二项就是我们开发经常接触到的。第一项就是上传到AppStore的发布包,第二项是Ad Hoc测试包。第三项就是我们要说的企业证书发布包。我们选择第三项 “Save for Enterprise Development” 然后下一步,然后选择企业账号对应的 Development Team 再下一步就出现选择了发布包支持的设备范围,我们选择第一项:“Export one app for all compatible devices”,支持所有适合的设备。最后再选择下一步就可以导出我们需要的IPA包了。
只不过在Xcode6之前,我们导出企业证书发布包(IPA包)的时候也会一并导出一个plist配置文件。这个配置文件十分重要,发布包的配置和安装都是依赖这个配置文件的。因为Xcode6之前在最后选择 “Save for Enterprise Development” 的时候会有关于企业证书发布应用的信息设置页面:
这里面的信息包括:Application URL :就是IPA包的下载安装地址、Title:提示安装的时候弹窗的标题等等。然而这些设置在Xcode6开始就没有了。那么我们如何来完成这一步呢?
这里我们的做法是将旧版本Xcode导出的plist文件保留和复制过来,稍微修改一下里面的配置内容就可以了。或者自己重新创建一个新的plist文件,然后按照以前的模式重新配置相关的内容。这里需要注意的是plist文件的名称应该和IPA包的名称一致。假如我们导出来的IPA包为:test.ipa。则plist文件的内容如下:
红色的部分为需要修改的。plist 文件源码:
<?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>items</key><array><dict><key>assets</key><array><dict><key>kind</key><string>software-package</string><key>url</key><string>填上你的ipa包的下载地址(例如:http://192.168.0.1/test.ipa)</string></dict></array><key>metadata</key><dict><key>bundle-identifier</key><string>填上你的应用的bundle id (例如:com.jaybin.test)</string><key>bundle-version</key><string>填上应用的版本号(例如:1.0.0)</string><key>kind</key><string>software</string><key>title</key><string>填上应用的名称(例如:test App)</string></dict></dict></array></dict></plist>
根据上面提供的plis文件样式,我们只需要将plist文件的名称改成和IPA包的名称一致,然后修改一下里面的配置项:IPA包的路径、bundle id、版本号和应用名称。注意,上面的几项修改千万要确保正确,否则企业证书发布包将无法安装。
最后剩下的就是部署和发布了。实话说这个部署的过程也是只能呵呵了。先说一下企业账号的发布包是怎么安装的。首先用户设备先去访问安装包的配置文件,也就是我们刚才提到的plist文件,然后再根据plist文件的配置信息去访问和获取安装包进行安装。所以,IPA包和plist文件我们都是需要正确部署的。
我们首先要将plist文件与IPA包文件上传至服务器。这两个文件是不需要都放在一起的。对于plist文件而言,我们必须将此配置文件部署在支持https的服务器上,因为根据APPLE的要求,只有https的链接才能正确访问到plist文件。而ipa包就没有要求要支持https。所以,我们一般的做法是将plist文件放在支持https的服务器上,然后ipa包放在普通的http服务器上。
最后就是安装了。在手机浏览器输入以下内容:itms-services://?action=download-manifest&url=https://192.168.0.1.test.plist
红色的url部分就是配置文件的链接地址了。
正确的安装页面如下:
以前在应用安装完成后就可以正常使用了。但是在IOS9开始,苹果对企业应用的安全性做了重大的调整。在IOS9下安装完成后,点击应用是无法直接启动的。会有如下的弹窗:
在IOS9下安装完企业证书发布的应用后还需要用户的对该企业应用进行手动的信任。具体操作如下:设置-->通用-->描述文件-->企业级应用-->信任应用。手动信任完成后就可以正常打开使用了。
最后需要说明的是:企业开发者证书是不能在appstore上发布应用的,我们能做的也就是上面所说的在公司局部的范围内发布内测的应用版本。如果需要发布到appstore的话还需要花99美刀申请一个开发者账号。
- Xcode6以后如何用企业证书发布应用
- XCode6下发布企业证书应用
- Xcode6中进行企业证书发布时plist缺失的解决方法
- IOS7.1以后企业应用发布强制需要HTTPS协议
- IOS7.1以后企业应用发布强制需要HTTPS协议
- 企业证书发布
- 企业证书APP发布流程
- 如何用Java读取使用证书
- 如何用openssl命令行生成证书
- 如何用openssl命令行生成证书
- 如何用openssl命令行生成证书
- 如何用openssl命令行生成证书
- 如何用openssl命令行生成证书
- [发布]iOS 企业证书发布App流程
- iOS7.1以后企业应用发布需要HTTPS协议,解决步骤
- iOS7.1及以后版本企业应用发布过程中的问题及解决方案
- 关于iOS7以后版本企业发布问题
- 关于iOS7以后版本企业发布问题
- 先来个链接,按上面的来做吧
- Backbone return this;
- MyEclipse 下安装外置的jdk7
- 丁仿:PMP考试中的重头戏:变更管理专项突破!备考学员必备!!
- AndroidStudio安装遇到的拦路虎
- Xcode6以后如何用企业证书发布应用
- HTML <a> 标签的 href 属性
- Jquery实际应用,判断radio,selelct,checkbox是否选中及选中的值
- [异常] Java文件上传异常org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of mul
- php不提示报错
- CentOS 安装 Chrome
- LabVIEW访问MySQL数据库的一种简单方法
- 数据库知识整理总结
- .和..在路径中的区别