IOS应用程序升级流程介绍:IOS手机端应用程序需要升级时,打开服务器端html文件(本文为ucab.html文件)-》点击在线安装-》打开plist文件(本文中为ucab.plist文件)-》plist文件中存储有应用程序升级包的地址。(本文为:http://192.168.1.126:8088/netcrm/ucab.ipa),这个地址是在打包时填写的Application URL值。通过升级包地址访问升级包,提示安装升级。
分步介绍:
一、准备工作
1、打包用的企业级证书mobileprovision文件,证书制作在这里就不罗嗦了。
2、应用升级所需要的服务器端html文件。
     应用升级所需要的服务器端html文件,新建一个html文件(本文中为ucab.html),代码如下:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>企业通讯录</title>
  6. <script type="text/javascript">
  7. function openurl(url){
  8. window.self.location=url;
  9. }
  10. </script>
  11. </head>
  12. <style type="text/css">
  13. html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,
  14. fieldset,legend,input,button,textarea,select,p,blockquote,th,td,span,frame,iframe {margin:0;padding:0;}
  15. .outbox{ margin:0; width:100%; height:1260px;}
  16. .box02 {  margin: auto auto; width:524px; height:81px; text-align:center;}
  17. .button{ margin: 80px auto 0 auto; width:458px; height:107px;}
  18. </style>
  19. <body>
  20. <div class="outbox" style="border:1px solid  #dadfe3;" >
  21. <div class="box02" style=" margin-top:300px; width:650px; height:81px"><label>
  22. <font style="font-size: 50pt">企业通讯录</font></label></div>
  23. <div class="button" style="width: 666px; height: 152px" >
  24. <p align="center"><a href="#" style=" margin-top:650px;" target="_blank"><label onclick="openurl('itms-services://?action=download-manifest&url=http://192.168.1.126:8088/netcrm/ucab.plist');">
  25. <font style="font-size: 40pt">iOS 4.0以上在线安装</font></label></a><font style="font-size: 40pt"> </font> </div>
  26. </div>
  27. </body>
  28. </html>

复制代码

核心代码:

  1. "openurl('itms-services://?action=download-manifest&url=http://192.168.1.126:8088/netcrm/ucab.plist');"

复制代码

http://192.168.1.126:8088/netcrm/ucab.plist为打包生成的ucab.plist文件的Web访问路径。
二、应用程序打包
V1.0打包:
1、编译后打包 <ignore_js_op style="word-wrap: break-word;">
2、点击distribute <ignore_js_op style="word-wrap: break-word;">
3、选择Save for Enterprise or Ad-Hoc Deployment,点击下一步 <ignore_js_op style="word-wrap: break-word;">
4、选择打包用的企业级证书,点击下一步  <ignore_js_op style="word-wrap: break-word;">
5、打包应用命名,保存路径选择。选中Save for Enterprise Distribution。
填写Application URL值,Application URL值为打包好的应用ipa文件的web访问路径。
填写Title值,Title值为应用名称。
注意每次打升级包时,保存的ipa文件名称要与Application URL值中web访问路径指向的ipa文件名称一致。否则的话,升级的时候会找不到升级包。  <ignore_js_op style="word-wrap: break-word;">  填写完毕,点击Save保存。V1.0打包完毕。生成ucab.ipa,ucab.plist两个文件。
目前我们已有如下文件:
(1)、ucab.ipa
(2)、ucab.plist
(3)、ucab.html
将三个文件放到服务器端Web应用程序的同一目录下(本文中放到了服务器端应用netcrm的根目录web下),如果需要放到不同的目录,修改相应的文件访问路径即可。
至此在手机端浏览器中输入ucab.html的访问路径,本文为:http://192.168.1.126:8088/netcrm/ucab.html,即可访问安装该应用程序。效果图如下:
<ignore_js_op style="word-wrap: break-word;"> 
<ignore_js_op style="word-wrap: break-word;"> 
<ignore_js_op style="word-wrap: break-word;"> 
V1.1 打包步骤与V1.0打包步骤一致,命名时为与1.0区别可做以下改动:
<ignore_js_op style="word-wrap: break-word;">
打包好V1.1,V1.0两个版本后即可测试升级功能。
iphone手机端获取本地应用程序版本代码如下:
  1. NSString *nsstrLocalVersion = [[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleVersion"];

复制代码

将本地版本号与接口获取的服务器端保存的版本号进行比较,如需要升级则执行iphone手机端升级代码。
iphone手机端升级代码如下:

  1. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@<a href="http://192.168.1.126:8088/ucab.html">http://192.168.1.126:8088/ucab.html</a>]];

复制代码

执行该代码,通过手机端浏览器打开http://192.168.1.126:8088/ucab.html地址,进行应用程序安装,即可用新版本的应用程序替换旧版本的应用程序,完成应用程序升级功能。效果图与在手机端浏览器中输入ucab.html的访问路径,安装应用程序的效果图一致

IOS应用程序升级的更多相关文章

  1. (转)基于企业级证书的IOS应用打包升级功能介绍

    IOS应用程序升级流程介绍:IOS手机端应用程序需要升级时,打开服务器端html文件(本文为ucab.html文件)->点击在线安装->打开plist文件(本文中为ucab.plist文件 ...

  2. 教程:如何减小iOS应用程序的大小?

    本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相关技巧(当第一次下载和安装 ...

  3. 减小iOS应用程序的大小

    减小iOS应用程序的大小 本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相 ...

  4. 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】

    转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...

  5. iOS 应用程序生命周期

    开发应用程序都要了解其生命周期. 今天我们接触一下iOS应用程序的生命周期, iOS的入口在main.m文件: int main(int argc, char * argv[]) { @autorel ...

  6. [ios基础]IOS应用程序的生命周期问题

    —程序的生命周期         a.程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程         b.每一个IOS应用程序都包含一个UIApplication对象,IOS系统通过该U ...

  7. iOS应用程序的生命周期

    iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有app来运行,而你提供自己编写的代码来定制app的外观 ...

  8. iOS app 程序启动原理

    iOS app 程序启动原理 Info.plist: 常见设置     建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...

  9. 发布iOS应用程序到苹果APP STORE完整流程

    参考:http://blog.csdn.net/mad1989/article/details/8167529(xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)) http ...

随机推荐

  1. vimdiff vimmerge 配置及使用

    1 Set up vimdiff The vimdiff as a merge tool will display several buffers to show the yours/theirs/o ...

  2. Git 图解剖析

    git中文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob的形式分别存储在数据库中(.git/objects),并用SHA-1值来校验. 索引文件用识别码列出相关的bl ...

  3. sass mapsource --->gulp

    详细,请戳这里 1.安装插件 npm install --save-dev gulp-sass gulp-sourcemaps gulp-autoprefixer 如果安装错误,请用sudo 权限: ...

  4. ASP.NET MVC学习1

    ViewBag是一个dynamic(动态类型)类型集合,可以动态添加任何类型的任意名称的属性和值,ViewBag是Controller和view之间传递数据的,如以下: ViewBag.HtmlStr ...

  5. LESS 拓展选择器extend基础用法说明

    扩展选择器是less的伪类选择器,他会复制当前选择器,定义新的样式,而原来的不变 nav ul { &:extend(.inline); background: blue; } .inline ...

  6. leetcode 24

    链表操作的,要注意标记头结点和边界问题. 代码如下: ListNode *swapPairs(ListNode *head) { if(head==NULL||head->next==NULL) ...

  7. C++ STL 简单记录

    1,STL提供三种类型的组件:容器.迭代器.算法. 容器: 顺序容器(vector.list.deque.string等)是一系列元素的有序集合: 关联容器(set.multiset.map.mult ...

  8. CentOS6.5安装readline时报错:/usr/bin/ld : cannot find -lncurses

    CentOS6.5安装readline时报错:/usr/bin/ld : cannot find -lncurses 解决方法: 安装ncurses-devel,输入命令: #yum install ...

  9. jquery animate 动画效果使用说明

    animate( params, [duration], [easing], [callback] ) 用于创建自定义动画的函数. 这个函数的关键在于指定动画形式及结果样式属性对象.这个对象中每个属性 ...

  10. JS正则表达式使用方法及示例

    1.定义正则表达式: a.普通方式:var reg=/表达式/附加参数 附件参数: g:代表可以进行全局匹配.i:代表不区分大小写匹配.m:代表可以进行多行匹配. 上面三个参数,可以任意组合,代表复合 ...