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


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>itemskey>
 6    <array>
 7        <dict>
 8            <key>assetskey>
 9            <array>
10                <dict>
11                    <key>kindkey>
12                    <string>software-packagestring>
13                    <key>urlkey>
14                    <string>http://xxxxx/xxxx.ipa(安装包的url)string>
15                dict>
16                <dict>
17                    <key>kindkey>
18                    <string>display-imagestring>
19                    <key>needs-shinekey>
20                    <true/>
21                    <key>urlkey>
22                    <string>图片的地址string>
23                dict>
24       <dict>
25                    <key>kindkey>
26                    <string>full-size-imagestring>
27                    <key>needs-shinekey>
28                    <true/>
29                    <key>urlkey>
30                    <string>图片的地址string>
31                dict>
32            array>
33            <key>metadatakey>
34            <dict>
35                <key>bundle-identifierkey>
36                <string>和ipa中的相同)string>
37                <key>bundle-versionkey>
38                <string>1.0.0string>
39                <key>kindkey>
40                <string>softwarestring>
41                <key>subtitlekey>
42                <string>Tuestring>
43                <key>titlekey>
44                <string>Tuestring>
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发布与后台发布
【原创】我所理解的自动更新-资源打包流程
【原创】我所理解的自动更新-客户端更新流程
【原创】我所理解的自动更新-知识点讲解