【原创】我所理解的自动更新-知识点讲解

itms-services协议
可以通过safari,chrome等浏览器直接在IOS设备上安装应用程序。适用于安装企业签名或者已绑定设备id的测试签名的IPA。itms-services协议需要的文件有:一个ipa文件,一个plist文件,一个html文件和一个图片文件。其中,最主要的,就是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>http://xxxxx/xxxx.ipa(安装包的url)</string>
15                </dict>
16                <dict>
17                    <key>kind</key>
18                    <string>display-image</string>
19                    <key>needs-shine</key>
20                    <true/>
21                    <key>url</key>
22                    <string>图片的地址</string>
23                </dict>
24       <dict>
25                    <key>kind</key>
26                    <string>full-size-image</string>
27                    <key>needs-shine</key>
28                    <true/>
29                    <key>url</key>
30                    <string>图片的地址</string>
31                </dict>
32            </array>
33            <key>metadata</key>
34            <dict>
35                <key>bundle-identifier</key>
36                <string>和ipa中的相同)</string>
37                <key>bundle-version</key>
38                <string>1.0.0</string>
39                <key>kind</key>
40                <string>software</string>
41                <key>subtitle</key>
42                <string>Tue</string>
43                <key>title</key>
44                <string>Tue</string>
45            </dict>
46        </dict>
47    </array>
48 </dict>
49 </plist>

苹果从ios7.1开始,用户安装app,需要使用https协议,来下载plist文件。那么,需要自己建立服务器添加https签名,或者将plist文件放在第三方平台托管,我的选择是使用(github,oschina)。

ssh无密码登陆、传输

实现步骤:
1.在你的自己的机器下面使用ssh-keygen命令来实现创建公钥
    使用 ssh-keygen -t rsa 来创建密钥,程序会问你存放的目录,如果不需要修改,直接回车两次即可
2.将你~/.ssh目录中的id_rsa.pub这个文件拷贝到你要登录的服务器的~/.ssh目录中,然后再运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,注意是管道符是 >>,你可以将很多机器加进去。完毕之后,退出服务器的登录,再使用ssh登录,你就会发现服务器不会再向你询问密码了。当然这个顺便也解决了,scp拷贝的授权问题。

1 scp -P %PUSH_SSHPORT% xx.zip %SSHUSER%@%PUSH_SSHSERVER%:/xx
2 ssh -p %PUSH_SSHPORT% %SSHUSER%@%PUSH_SSHSERVER% "ls /"

UA判断浏览器是在ios还是android上运行

ua本身是可以通过浏览器修改或者伪造的,我们不考虑被伪造的情况。

1 <?php
2     $agent = strtolower($_SERVER[‘HTTP_USER_AGENT‘]);
3     if(strpos($agent, ‘iphone‘)){  }   //iPhone设备
4     if(strpos($agent, ‘ipad‘)){  }  //iPad设备
5     if(strpos($agent, ‘android‘)){   }  //Android设备
6     其他设备
7 ?>  

我们可以根据设备类型显示不同的网页内容,比如ios设备打开xxx.php可以直接下载ipa或者去appstore更新。
【原创】我所理解的自动更新-概要
【原创】我所理解的自动更新-环境搭建和协议制定
【原创】我所理解的自动更新-外网web服务器配置
【原创】我所理解的自动更新-APP发布与后台发布
【原创】我所理解的自动更新-资源打包流程
【原创】我所理解的自动更新-客户端更新流程
【原创】我所理解的自动更新-知识点讲解

本文中的服务器用的是linode,linode是啥就不需要过多介绍了吧。
有兴趣的童鞋可以通过https://www.linode.com/?r=000161937771838e320f2bda5fef0dbad54ad86c注册服务器,
r后面的数字是我的推荐码,如果你用了以上我推荐的推荐码,并且保持3个月是在线帐号,那么我将在三个月后得到20美元的信用,
这样也就是可以多用一个月最低档19.95美元的linode vps。
Referrals reward you when you refer people to Linode.
If someone signs up using your referral code,
you‘ll receive a credit of $20.00, so long as the person you referred remains an active customer for 90 days。

时间: 2024-12-08 20:04:08

【原创】我所理解的自动更新-知识点讲解的相关文章

【原创】我所理解的自动更新-客户端更新流程

创建更新线程,跟ui主线程通过message进行交互.1,去http://version.mygame.com/check.php? channelid=%d&appver=%d&resver=%d获取客户端最新版本信息.用curl获取,代码如下,至于curl的具体参数,man或者搜索引擎会告诉你答案 1 static size_t funcGetHttpText(void *ptr, size_t size, size_t nmemb, void *userdata) { 2 size_

【原创】我所理解的自动更新-APP发布与后台发布

发布后台 创建渠道:添加新的渠道,设置渠道名称,自动生成渠道id.    查看渠道:查看渠道基本信息,渠道app版本号,资源版本号,是否开启更新.    创建/更新APP:选择打包ios,android版本,设置渠道所属,设置版本日志,发送消息到APP Publish并等待反馈.    创建/更新资源:设置渠道所属,设置版本日志,发送消息到ResPackageTool并等待反馈. APP打包发布 从VersionServer里获取相应渠道的代码,保存到目录[channel-渠道号-版本号]. 

【原创】我所理解的自动更新-资源打包流程

参数提供资源号(资源版本号),渠道号,目标目录(存放新资源包和差异包)    预处理:从VersionServer里获取相应渠道的资源,保存到目录[channel-渠道号-资源版本号]标记为NEW,遍历NEW目录里的文件并计算文件校验码(MD5之类)标记为NEWTAG_MAP,生成index文件保存文件和校验码的组合,压缩新资源+index文件并保存到目标目录.    差异包生成:从版本号1开始遍历直到新版本号-1.标记为目录OLDVER,遍历OLDVER目录里的文件并计算文件校验码标记为OLD

【原创】我所理解的自动更新-外网web服务器配置

ClientDownload和ClientUpdate共享渠道配置信息: channel-0.php //以appstore的渠道为例 1 <?php 2 define('APPNAME', 'TOKENAPPNAME');//应用版本号 3 define('SERVER_MAJOR_VERSION', 'TOKENMAJORVER');//最新应用版本号 4 define('SERVER_MAJOR_VERSION_TXT', 'TOKENMAJORTXT');//最新应用版本描述 5 def

【原创】我所理解的自动更新-概要

概述    一般来说,游戏在开发完成后会通过渠道分发至玩家的手机上.这也就涉及到游戏的下载,安装.但是游戏还有一个重要的步骤,更新.对于手游而言,更新分为大版本更新和当前内容更新(大版本更新也会包含当前内容更新).大版本更新需要开发商重新提交游戏安装包,玩家重新下载安装包安装.而当前内容更新更多的是指更新脚本/资源等.那么问题来了,就技术而言,游戏通过什么方式下载安装?内容通过什么方式更新?恰好刚完成某手游的下载更新模块,就自己的理解,和大家聊聊游戏更新的那些事儿. 本文适用人群 本文档适用于自

【原创】我所理解的自动更新-环境搭建和协议制定

环境搭建: Linux:ubuntu安装,我用的是linode的vps,可选择ubuntu14.04 LTS创建.自建服务器的,自行安装. Linux:安装LNMP,从http://lnmp.org/download.html页面下载最新的安装包,参考http://lnmp.org/install.html进行安装.之所以使用lnmp一键安装包是因为我们的重点是搭建一套可行的linux-nginx,mysql-php的运行环境,对于咱们的更新流程中,这部分的性能,并没那么重要. Linux:安装

理解统计信息(4/6):自动更新统计信息的阀值——人为更新统计信息的重要性

在理解统计信息(3/6):谁创建和管理统计信息?在性能调优中,统计信息的作用里我们讨论了统计信息的自动创建和自动更新.我们真的需要人为维护统计信息来保持性能最优?答案是肯定的,这取决与你的工作量.SQL Server只在达到阀限值时进行统计信息的自动更新.当大量的Insert/Update/Delete操作发生时,内建的自动更新统计信息不能持续保证性能的最优. 经过一系列的Insert/Update/Delete后,统计信息可能不会是最新.如果SQL Server查询优化器在表里需要指定列的统计

【原创】从零开始搭建Electron+Vue+Webpack项目框架(五)预加载和Electron自动更新

导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(四)Electron配置润色(五)预加载及自动更新(六)构建.发布整个项目(包括client和web)(未完待续) 摘要:到目前为止,我们的项目已经具备了PC客户端该有的一些基础功能和调试环境,但是总感觉缺了灵魂,那就是结合实际项目.实际业务的细节处理,缺着吧...这篇文章就介绍一下预加载和自动更新,文字功底有限,如有介绍的不清楚的地方,欢迎留言

WinForm通用自动更新器AutoUpdater项目实战

一.项目背景介绍 最近单位开发一个项目,其中需要用到自动升级功能.因为自动升级是一个比较常用的功能,可能会在很多程序中用到,于是,我就想写一个自动升级的组件,在应用程序中,只需要引用这个自动升级组件,并添加少量代码,即可实现自动升级功能.因为我们的程序中可能包含多个类型的文件,比如exe.dll. config.xml.bat等等自定义格式的后缀名文件,所以要支持多文件类型的更新. 本期同样带给大家分享的是阿笨在实际工作中遇到真实项目场景,请跟随阿笨的视角去如何开发实现WinForm通用自动更新