iOS企业应用分发的一点经验

最近在为公司开发一款企业级app,为图省时省力选择了第三方众测托管,经测试可以正常安装与使用。于是放心大胆的拿去给用户演示,结果喜闻乐见的事情发生了:在演示过程中出现了app无法下载的情况……

偷懒是不对的,问题是需要解决的:企业级app的发布需要Safari浏览器解析.plist文件,通过itms-services协议来下载并安装.ipa到iDevice上。而从iOS7.1开始,.plist文件就必须存放在https路径下,且该路径需要受信任的证书。

我想到了以下三种方案来解决这个问题:

方案一,将.plist文件托管在诸如dropbox、七牛这类https文件托管服务器上:考虑到“墙”的存在,以及对第三方服务的不信任,方案一pass;

方案二,搭建服务器并使用OpenSSL自签名:需要在iDevice上安装自签名证书,显然只能用于测试;

方案三,搭建服务器并申请SSL认证:最优解。

看起来方案三无误了,但不经历风雨,怎么见彩虹……领导要求必须在测试环境下验证通过才能在正式服务器上实施,而我们的测试环境是局域网,无法申请SSL认证。

所以先用方案二验证可行性,服务器是iis7。使用OpenSSL创建自签名证书过程:

因为Mac自带OpenSSL命令行工具,所以打开终端直接输入命令即可。

第一步,生成SSL证书:

openssl genrsa -out iis.key 2048

openssl req -new -x509 -key iis.key -out iis.cer -days 365 -subj /CN=HOSTNAME

openssl pkcs12 -export -out iis.pfx -inkey signed.key -in iis.cer

最终生成的iis.pfx文件需要导入iis服务器

第二步,生成CA证书:

openssl genrsa -out CA.key 2048

openssl req -x509 -new -key CA.key -out CA.cer -days 365 -subj /CN="CA"

最终生成的CA.cer文件可以通过邮件附件的方式发送到iDevice并安装;

第三步:创建服务器证书:

openssl genrsa -out cert.key 2048

openssl req -new -out cert.req -key cert.key -subj /CN=HOSTNAME

openssl x509 -req -in cert.req -out cert.cer -CAkey  CA.key -CA CA.cer -days 365 -CAcreateserial -CAserial serial

最终生成的cert.cer需要安装到iis服务器

注意:为iis服务器添加对.ipa和.plist文件的MIME类型支持 application/octet-stream

在下载页面添加如下链接即可实现点击安装:

<a href =“itms-services://?action=download-manifest&url=.plist文件路径”>点击安装</a>

点击下载后成功安装,在发布服务器上实施方案三,申请SSL证书:

我是在startssl申请的免费SSL认证,网址:www.startssl.com

第一步,获取个人操作证书:

首先注册一个账号,填写真实有效的邮箱,会有验证码发到注册邮箱里;

获取验证码之后填写到页面上并continue,会向注册邮箱内发送审核结果;如果审核通过就按照邮件内的提示下载个人操作证书。

注意:这个证书就是你登录startssl的唯一凭证,一定要妥善保管;

第二步,域名管理员验证:

证书安装后回到startssl,点击Authenticate登录,选择Validations Wizard,在Type中选择Domain Name validation;continue后输入申请SSL认证的域名;

continue后选择域名管理员的邮箱,startssl会向该邮箱发送验证码;

填入验证码后continue,验证域管理员成功;

第三步,SSL验证:

接下来点击 Certificates Wizard,Certificate Target选择 Web Server SSL;

continue后按照要求为私钥提供一个密码,注意这个密码在生成pfx文件时会用到;

continue后按照提示保存私钥,注意私钥在生成pfx文件时会用到;

最后需要输入待绑定的二级域名。没错,免费的认证只能绑定一个二级域名。

第四步:pfx证书文件获取:

进入Tool Box,点击Create PKCS#12 File,输入私钥和私钥密码,生成pfx文件,导入iis服务器即可~别忘了添加MIME类型支持。

注意:这个证书的有效期是一年,一年后可以通过个人操作证书登陆并续期。

时间: 2024-08-26 02:26:59

iOS企业应用分发的一点经验的相关文章

白痴级学习 iOS 企业包的分发

白痴级学习iOS 企业包的分发 使用 iOS 企业版的证书发布应用可以跳过 Appstore,直接发布到自己的网站,让其他人在自己的网站上下载安装,但前提是要用苹果自带的Safari 浏览器才能下载安装,其他浏览器可能不识别itms-services协议. 一.制作证书文件 1.修改钥匙串的配置.   2.打开钥匙串, 点击钥匙串访问—证书助理—从证书颁发机构请求证书. 3.保存证书,稍后会用到. 二.生成并安装证书 1.进入苹果开发者中心 https://developer.apple.com

iOS企业证书网页分发全过程具体解释(图文并茂史无前例的具体哦)

iOS企业证书网页分发全过程具体解释 苹果的企业级证书公布的应用.是不用设备授权就可以直接安装,而且不限设备上限. 为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用. 首先须要说明它的原理:主要的原理就是在生成企业证书授权的ipa的同一时候,要生成一个相应的plist文件,plist文件里会配置ipa的下载地址.版本号信息.Bundle ID 等信息,通过网页下载的时候事实上下载的是这个plist文件.然后苹果通过自己的协议依据plist文件的配置信息去自己主动的下载安装app.

iOS企业证书网页分发全过程详解(图文并茂史无前例的详细哦)

iOS企业证书网页分发全过程详解 苹果的企业级证书发布的应用,是不用设备授权即可直接安装,并且不限设备上限.为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用. 首先需要说明它的原理:基本的原理就是在生成企业证书授权的ipa的同时,要生成一个对应的plist文件,plist文件中会配置ipa的下载地址.版本信息.Bundle ID 等信息,通过网页下载的时候其实下载的是这个plist文件,然后苹果通过自己的协议根据plist文件的配置信息去自动的下载安装app. 这里有个地址用来生

iOS App苹果企业签分发 教程

1.必须有SSL证书(HTTPS) 企业签分发的 plist.icon.ipa 等文件下载链接必须是https协议的 例如:https://html.主域名.com/company_ios/propertylist.plist 2.配置MIME 如果是Nginx,在 nginx/conf/mime.types 配置文件里面添加如下配置 application/octet-stream ipa text/xml plist 说明: application/octet-stream表示.ipa后缀的

申请iOS企业证书.p12和描述文件.mobileprovision

iOS企业证书可以免上架App Store安装到手机使用 需要企业账号才能申请 企业账号申请介绍 一.iOS企业发布证书申请 iOS证书申请这里用到一个工具Appuploader,可以在win系统中辅助快速申请iOS证书,如果没有Mac也无所谓. 可以很快速的创建iOS推送证书 先安装好Appuploader安装教程 1.登录Appuploader选择Certification 2.选择iOS企业发布证书.输入证书名称.邮箱.密码点击ok创建 3.点击P12下载保存证书文件 二.iOS企业描述文

使用VS2010开发Qt程序的一点经验(转载)

转载:http://www.cnblogs.com/csuftzzk/p/VS_Qt_Experience.html 导读 相比于Qt Creator,我更喜欢用VS2010来进行开发.虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手.其中最重要的一点是,有时候Qt Creator报的错误莫名其妙.要根据提示找到错误根源显得无从下手.而VS的一般错误说明都比较人性化,即便在某些时候无从解决,也可以通过搜索引擎大致定位出错误的源头.下面是

iOS 企业证书发布app 流程

企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规范啊等等. 下面是具体的流程 1.修改你的 bundle identifier 为你的企业的app id : 2.修改Edit scheme 3.修改为 Release 4.修改bulid setting 的code sign:为企业的 mobileprifile 5.然后 Product  archive 归档构建你的app 6.选择 distrbutio

iOS单例创建的一点疑惑

线程安全的单例常用写法, +(AccountManager *)sharedManager{ static AccountManager *defaultManager = nil; disptch_once_t once; disptch_once(&once,^{ defaultManager = [[self alloc] init]; }); return defaultManager; } 在用的过程中,有点疑惑的点是:static AccountManager *defaultMan

计算机顶级会议Rankings &amp;&amp; 英文投稿的一点经验

英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时间;另外,每个杂志都有他们的具体格式要求,一定要按照他们的要求把论文写好,免得浪费时间,前些时候,我的一个同事向一个著名的英文杂志投稿,由于格式问题,人家过两个星期就退回来了,而且说了很多难听的话,说投稿前首先就应该看清楚他们的格式要求: 2. 论文写作一定要言简意赅,特别是摘要,引言和结论部分,特