http://download.csdn.net/download/accps115202/7136935
http://www.cocoachina.com/bbs/read.php?tid=213861
iOS7.1后,增加了安全性,使用https的方式安装app。
处理方法可以将之前的http改成https,如下所示:
itms-services://?action=download-manifest&url=http://...
改为
itms-services://?action=download-manifest&url=https://...
使用https方式的话,有几种方式处理:
1、安装一个自签名/购买的证书。
https服务器配置:
1、环境
(1)操作系统:Windows server 2003、Windows server2008
(2)JDK:jdk 1.6
(3)apache-tomcat-6.0.35(注意版本号,版本6.0.18测试未通过)
(4)网络:互联网、专网测试均通过。
2、使用到的软件、jar包
(1)Win32OpenSSL_Light-1_0_1g.exe(将bin目录设置到path环境变量中,需在命令提示符窗口使用openssl等命令)
(2)jdeclipse_update_site_uncomplie_vcredist_x86.exe(OpenSSL提醒环境不支持时,安装)
(3)jetty-5.1.10.jar(放在证书所在的文件夹中)
3、服务器端、客户端证书生成步骤
以下命令在命令提示符窗口中执行。(路径:证书所在文件夹路径)
1.生成服务器的私钥:
openssl genrsa -out server.key 1024
2.生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名):
openssl req -new -out server.csr -key server.key
3.生成CA私钥
openssl genrsa -out ca.key 1024
4.利用CA的私钥产生CA的自签署证书(注意除Common Name和organizationName以外可以为空,Common Name必须为服务器的ip或域名(内外网区分), organizationName必须和上一次一致):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
5. 在当前目录创建demoCA,里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts。
CA为网站服务器签署证书:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
6.把服务端代码转换浏览器可以识别的PCS12格式,密码使用上面输入的密码。
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
7.使用jetty中的PKCS12Import工具类完成转换,密码同上.(jetty-5.1.10.jar在当前文件夹中)
java -cp jetty-5.1.10.jar org.mortbay.util.PKCS12Import server.p12 server.jks
8.使用下面命令查看jks文件中包含的证书信息
keytool -v -list -keystore server.jks
至此客户端证书ca.crt以及tomcat服务器证书server.jks已经生成完毕。
4、tomcat工程配置
(1)配置服务器端证书
打开tomcat安装目录下的conf/server.xml
加入以下内容
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/Users/wrs/Documents/study/apache-tomcat-7.0.54/webapps/***/server.p12" keystorePass="123456" keystoreType="PKCS12" truststoreFile="/Users/wrs/Documents/study/apache-tomcat-7.0.54/webapps/****/server.jks" truststorePass="123456" truststoreType="JKS"/> |
注意:keystoreFile、keystorePass为文件生成的位置和生成证书时输入的密码。 |
添加之后效果:
(2)工程配置(文件夹中有例子)
yjoa.jpa:打包生成的软件安装文件。
yjoa.plist:配置文件
url修改为该tomcat工程访问地址。
bundle-identifier为版本的签名信息,与打版本时的签名保持一致。
index.html文件:访问页面。
客户端下载:href的前半部分“itms-services://?action=download-manifest&url=”为固定写法,url之后的更改,https:// + ip + 端口 +工程名 + jj.plist。
注意:是https不是 http。端口为https的端口不是tomcat工程端口,上面设置的是8443。
证书下载:href为tomcat工程访问地址。
5、终端安装证书和软件
终端在浏览器地址栏里输入tomcat工程访问地址(使用自带Safari浏览器):
IOS7.1版本的,先安装证书、再点击客户端安装即可。
6、注意点
(1)openssl环境变量和jetty-5.1.10.jar位置
(2)tomcat版本号
(3)生成的证书所在位置、需在tomcat的server.xml中配置
(4)证书中的ip地址或域名,若ip地址更改,则证书重新生成。
(5)证书生成时,密码要记住。
(6)index.html中的.plist文件的地址,采用https协议及端口。
(7)index.html中的证书位置和.plist文件中的安装包位置均采用tomcat工程路径。
download.html:
<html>
<head>
<title>iOS online install</title>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
</head>
<body>
<script type="text/javascript">
function doLocation(url)
{
var a = document.createElement("a");
if(!a.click) {
window.location = url;
return;
}
a.setAttribute("href", url);
a.style.display = "none";
document.body.appendChild(a);
a.click();
}
var useHttps = false;
var key = "OS";
var userAgent = navigator.userAgent;
var idx = userAgent.indexOf(key);
if(idx!= -1) {
var version = userAgent.substr(idx+key.length + 1, 3)
if(version >= "7_1") {
useHttps = true;
}
}
if(useHttps) {
doLocation('http://**********/download-ios7.html');
} else {
doLocation('itms-services://?action=download-manifest&url=http://**********/******.plist');
}
</script>
</body>
</html>
download-ios7.html:
<html>
<head>
<title>iOS online install</title>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
</head>
<body>
注意:如果系统是ios7.1,请先安装证书再安装app。
请点击以下链接完成证书的安装
<center>
<br><br>
【<a href="http://*******/******.crt">iphone证书安装</a>】
<br><br>
请点击以下链接完成iphone版的安装<br><br>
【<a href="itms-services://?action=download-manifest&url=https://****/*******.plist">ipa下载安装</a>】
</center>
</body>
</html>
2、部署到dropbox。(http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1/22325916#22325916)
如果dropbox访问不了,对于墙内的我们,可以使用国内的服务是最有保障的了。机缘巧合之下,发现了新浪的sae可以提供https的服务。而且也是免费的。
其实机制是利用SAE提供的代码托管服务,将plist文件上传到SAE代码服务器,使用其提供的https服务。
新浪SAE地址:http://sae.sina.com.cn/
使用SAE需要先注册账号或者用已有的微博账号登录,登录后新建一个应用。
创建应用后,在“应用管理”下的“代码管理”创建一个代码版本,然后将plist文件上传。
如图:
文件上传后,可以通过如下地址访问到自己的plist文件。
https://[your app name].sinaapp.com/[your plist file name].plist
也可以用百度网盘
js判断是IOS还是Android平台:
var browser={
versions:function(){
var u = navigator.userAgent,
app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
qq: u.match(/\sQQ/i) == " qq" //是否QQ
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
var IOS = browser.versions.ios;
var ANDROID = browser.versions.android;
if(IOS) {
} else if (ANDROID) {
}
相关推荐
同时,随着iOS系统的更新,苹果可能会修补已知的越狱漏洞,使得越狱工具变得无效,因此,保持设备的越狱状态可能需要定期更新工具或寻找新的越狱解决方案。 总的来说,“evasi0n 7 win 1.0.5”是一个专为Windows...
python教程学习
tdac034.pdf
veclibm111111111111
nssm工具,进行2次解压后即可
视讯镜头优化,操作不走
【数据结构】的资源,包括书籍、在线课程和网站
北京大学-DeepSeek系列-提示词工程和落地场景.pdf.png
【财信国际经济研究院-2025研报】2025年2月CPI和PPI数据点评:通胀低于预期,内需亟待提振.pdf
【毕业设计】java-springboot+vue精品在线试题库系统源码(完整前后端+mysql+说明文档+LunW).zip
python安装-25.求 a 的 b 次方——有点不好意思哈.py
代码实现了自适应IMM(交互式多模型)算法,专注于对目标状态进行估计,并结合了匀速(CV)和匀加速(CA)运动模型。它使用自适应观测噪声估计和扩展卡尔曼滤波器(EKF)作为滤波主体,并在最后提供误差统计特性输出。
中产品工业物联网联网的基础功能,是企业开启数字化转型的入门之选。它能帮助企业快速搭建起基础的设备数据采集与监控体系,以较低成本实
北京大学DeepSeek系列-DeepSeek与AIGC应用.pdf.png
【毕业设计-java】springboot-vue基于多维分类的知识管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
## 一、数据介绍 本数据参考C刊《管理评论》佟岩(2024)老师的做法,使用各年度省级政府工作报告中“减碳”关键词的词频总数来测度地方政府对“减碳”的重视程度,“减碳”关键词包括二氧化碳、低碳、减排、节能、能耗、环境保护(环保)、生态、绿色。 本数据包含:原始数据、参考文献、代码do文件、最终结果。 ## 二、参考文献: 佟岩,李鑫,徐国铨.企业集团碳减排压力与债务分布-来自高耗能上市公司的经验证据[J].管理评论,2024,36(02):210-221.DOI:10.14120/j.cnki.cn11-5057/f.2024.02.014 ## 三、相关数据:城市、城市编码、年份、减碳重视程度词频。
python教程学习
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
python学习一些项目和资源
锐捷设备命令最全大合集