APP不通过AppStore下载,APP应用内完成升级(不需要重新上传、审核)---他人文章链接,自己留着

---------------------------------------------------------1.不通过AppStore,安装应用到IOS设备原理(http://mobile.51cto.com/hot-439095.htm)------------------------------------------

文章内容

通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可以实现安装,然后测试了。(PS:越狱设备也可以)

itms- services协议需要一个plist配置文件。如果要实现上面图示的功能,需要的文件有:一个ipa文件,一个plist文件,一个html文件和一
个图片文件。其中,最主要的,就是plist文件。通过shell脚本,我们可以让其自动为我们生成plist文件和html文件,并且在xcode工程
中的ipa文件和程序图标文件复制一份,放到一起。

《xcode自动打ipa包脚本》学习地址:http://webfrogs.me/2012/09/19/buildipa/

plist文件范例如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>items</key>
  6. <array>
  7. <dict>
  8. <key>assets</key>
  9. <array>
  10. <dict>
  11. <key>kind</key>
  12. <string>software-package</string>
  13. <key>url</key>
  14. <string>ipa包的下载地址,如:http://www.tammy.com:450/static/ios/(targetname)_(version)_build(buildversion)_yyyyMMdd.ipa</string>
  15. </dict>
  16. </array>
  17. <key>metadata</key>
  18. <dict>
  19. <key>bundle-identifier</key>
  20. <string>应用程序中的<span style="font-family:FangSong_GB2312">bundle-identifier</span><span style="font-family:FangSong_GB2312"></string></span>
  21. <key>bundle-version</key>
  22. <string>版本号</string>
  23. <key>kind</key>
  24. <string>software</string>
  25. <key>subtitle</key>
  26. <string>子标题</string>
  27. <key>title</key>
  28. <string>软件名称</string>
  29. </dict>
  30. </dict>
  31. </array>
  32. </dict>
  33. </plist>

html文件范例如下:

  1. <span style="font-size:12px"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta http-equiv="Content-Style-Type" content="text/css">
  6. <title>测试包安装</title>
  7. </head>
  8. <body>
  9. <br>
  10. <div style="position:absolute;left:200px" width=400><a href="../index.html">返回</a></div>
  11. <h1 align="center">开发版(TRUNK)</h1>
  12. <table align="center" border=1 width=400>
  13. <tr height=60>
  14. <th colspan=2><h2>标题</h2></th>
  15. </tr>
  16. <tr height=60 align="center">
  17. <td width=200><a href="itms-services://?action=download-manifest&url=</span><span style="font-size:10px"><span style="font-family:FangSong_GB2312">http://www.tammy.com:450/static/ios/****.plist</span><span style="font-family:FangSong_GB2312">"><h2>Install</h2></a></td></span></span><span style="font-size:12px">
  18. <td width=200><a href="</span><pre name="code" class="html" style="color:rgb(34,34,34); line-height:22px">http://www.tammy.com:450/static/ios/(targetname)_(version)_build(buildversion)_yyyyMMdd.ipa</pre>"><h2>Download</h2></a></td></tr>    </table><br></body></html>

不通过App Store,直接安装应用程序的实现步骤:

1、设置签名

利用developer profile或者adhoc distribution profile签名app,注意,不能使用distribution profile方式签名;个人开发者证书只能在100个设备中实现无线安装。

2、生成arichive

菜单:product->archive,完成后可以在organizer中看到生成的arichive。

3、生成ipa

选择刚刚生成的arichive,点击“Distribute...",弹出如下图界面,选择第二个,点“next”,设置相关参数,一
定要勾选“save for enterprise distribution”。application url,是生成的ipa在服务器的位置;title是安装过程中出现的标题;large
image url 和 smal image url是安装过程中出现的图标。点击保存,将生成两个文件:***.ipa和***.plist。

4、服务器部署

将生成的***.ipa和***.plist文件部署到服务器,同时在服务器生成一个html文件,目的是点击后打开一个链接,这样ios设备就会执行指令自动安装app了。要打开的链接内容如下:

itms-services://?action=download-manifest&url=http://www.tammy.com:450/static/ios/****.plist

-------------------------------------------------------------------------------------2.APP应用内完成升级-----------------------------------------------------------------------------------------

文章内容

没研究过支付宝钱包ios版本,不过根据appleapp框架,实现这个功能并不麻烦,尤其在HTML5普及以后,只不过其升级的功能是受到很多限制的。

简单得说,iosapp所用到的存储路径主要有两块,一块是app安装存放的地方,一块是app数据存放使用的地方。

ios app本身需要数字签名,所以任何改动都需要通过apple的审核,或者私有证书的校验。必须以apple规定的方式进行更新,这也是防盗版,防山寨应用的重要基础

但是另外一块数据存放的路径,也就是我们俗称的沙盒,这里面的发生任何数据及文件的变动,是不需要数字签名,也不需要通过apple的方式去进行发布。

如果将程序一部分的界面,通过html(包含HTML5)或者其他自行定义的脚本或者界面原语做成文件形式,放在程序的沙盒中,在app中提供一个入口去访问这一部分的功能,那么这一部分的功能就可以随时通过app自行更新就可以做到了。很多游戏的关卡下载更新,电子书的下载,靠的也是这种方式

显然,这样做的更新,其作用范围是受到限制的。如果采用HTML/.HTML5的方式,那么你那部分的应用就只能通过HTML./HTML5实现,native的部分是不能这样升级的。

如果你是通过自有的解释引擎来实现,那么你如果更新引擎本身的话,也必须依赖apple的更新机制。

理论上来说,可以开发一个app,提供一个脚本语言的解释器以及运行环境,那么这个app就可以成为一个开发平台,所有使用这种脚本语言所编写的程序,都无需apple的更新安装渠道,可以自行安装更新。HTML5正是这样的一种引擎,只不过它缺省已经被ios本身所支持了。

时间: 2024-11-10 10:22:22

APP不通过AppStore下载,APP应用内完成升级(不需要重新上传、审核)---他人文章链接,自己留着的相关文章

python3.6+BeautifulSoup4.2 爬取各类app应用信息并下载app包

---------------环境配置--------------- 1.在Windows操作系统下安装python-3.6.4-amd64.exe 2.配置环境变量 Path变量:如C:\Users\Administrator\AppData\Local\Programs\Python\Python36\ 打开cmd命令窗口,输入:python命令,可以进入python 编辑命令行,即可. 3.把beautifulsoup4-4.6.0.tar.gz解压后,放在Python36\目录下,在cm

内网/外网大文件上传解决方案

最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据.上传影音文件等.如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成. 下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用

idea 内置tomcat jersey 跨服务器 上传文件报400错误

报错内容 com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status of 400 Bad Request 因为跨服务器上传文件,文件名中里面含有中文名称,所以报错,解决: 让文件服务器支持utf-8编码或者将文件名变成英文.(最好的就是根据时间加随机数 或者是UUID来命名) 简单版的jsersey上传 @RequestMapping("/fileupload3&

在app中打开appStore中其他app

1 var str = "https://itunes.apple.com/cn/app/zhang-jiange-hao-tou-zi-ke/id402382976?mt=8"//这个链接是app在itunes中的地址 2 if UIApplication.sharedApplication().canOpenURL(NSURL(string: str)!){ 3 UIApplication.sharedApplication().openURL(NSURL(string: str

接口分享--利用augpush实现微信跳转浏览器下载APP

最近遇到一个需求.朋友找我制作一个在微信中的聊天框,或者公众号菜单发布一条链接或者二维码,.跳出微信打开一个指定的我们自己的APP推广网页引导下载APP,拿到这个需求后我们团队分开去找资料研究方案,通过微信的开发文档.腾讯的第三方开发文档我们都查阅过资料但是最终只找到一些历史性的资料也就是以前可以现在已经全部封闭了,在网络上找到 很早之前一些前辈分享的遮挡.我们加以改进.可以实现安卓手机的话是通过点击链接,直接跳转出微信.自动打开手机默认的浏览器.IOS的话可以调整到苹果商店下载安装.虽然还是需

上传app到苹果商店被拒理由及解决方案

一,Apps that are "demo", "trial", or "test" versions will be rejected. Beta Apps may only be submitted through TestFlight and must follow the TestFlight guidelines(任何"beta","演示(demo)","试用(trial)"或

ios app 打包上传 app store(Application Loader)

背景:使用Xcode 上传APP, 这个 有时候很慢,构建版本需要等很长时间,所以我推荐使用Application Loader 1.使用xocd 打包,导出.ipa文件 2. OK ,跟着上面做, 就一讲把APP.ipa 打包导出到桌面了. 2.下面使用Application Loader 上传APP 账号和密码就是 开发者账号和密码 然后就是等待成功就好了. 参考来源 :http://help.apple.com/itc/apploader/#/apdATD1E103-D1E1A1303-D

Android开发中使用七牛云存储进行图片上传下载

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了.可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端S

libcurl 下载上传

近来一个新的项目需要使用到http. 本来用socket来写一个的,后来发现功能实在太简单,有点捉襟见肘. 于是改用libcur来做. 首先下载libcur的源码,然后配置: 1 ./configure --prefix=$HOME/csource/linux/ CFLAGS='-O2 -m32 -fPIC' --enable-optimize --enable-static=libcurl.a --enable-ftp --without-zlib --disable-gopher --dis