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

环境搭建:

  1. Linux:ubuntu安装,我用的是linode的vps,可选择ubuntu14.04 LTS创建。自建服务器的,自行安装。
  2. Linux:安装LNMP,从http://lnmp.org/download.html页面下载最新的安装包,参考http://lnmp.org/install.html进行安装。之所以使用lnmp一键安装包是因为我们的重点是搭建一套可行的linux-nginx,mysql-php的运行环境,对于咱们的更新流程中,这部分的性能,并没那么重要。
  3. Linux:安装SVN Server,参考http://www.linuxidc.com/Linux/2015-01/111956.htm
  4. Mac:安装xcode,参考http://jingyan.baidu.com/article/b87fe19eb309f0521835682f.html,尽量安装最新版
  5. Mac:android环境配置,参考http://www.cnblogs.com/jarrah/archive/2013/03/15/2961892.html,http://blog.csdn.net/daydreamingboy/article/details/8252806,打包教程:http://blog.csdn.net/s278777851/article/details/9053985
  6. 待补充

协议、数据结构制定:

网站域名:http://version.mygame.com/
客户端更新url:http://version.mygame.com/check.php? channelid=%d&appver=%d&resver=%d
Channelid:渠道id(appstore,adhoc,91-android,uc,360,==,用id编号)
Appver:应用版本
Resver:资源版本
返回:1-无需更新,2-app版本更新-更新日志,3-资源更新-更新日志
下载服务器:web server
check.php 资源下载逻辑,根据渠道id,应用版本,资源版本下载特定的资源
目录结构
/gamename/channelid/lastest.zip
/gamename/channelid/appver/(1~now-1)-now.zip
通过scp进行文件传输
发布后台:创建、查看渠道,编译app,更新app版本,打包资源,更新资源版本,版本日志
数据库:渠道信息(id,name,app版本,资源版本,推送时间,已经推送?)

【原创】我所理解的自动更新-概要
【原创】我所理解的自动更新-环境搭建和协议制定
【原创】我所理解的自动更新-外网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-10-03 22:47:26

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

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

创建更新线程,跟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

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

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 "

【原创】我所理解的自动更新-外网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

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

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

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

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

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

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

CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)

1.安装 SVN 1.1先检查是否有安装 svn rpm -qa subversion #没有什么显示就说明没有安装过yum remove subversion #如果有安装就运行删除老版本yum install subversion #运行安装SVN 1.2创建SVN版本库(这里我们直接部署到Tomcat/webapps下,如果没有可以自行部署一个Tomcat) mkdir -p /usr/local/tomcat/webapps/svn 1.3创建版本库 svnadmin create /u