无线设备(iPhone 和 iPad)的下载是要去 Apple stone 的。但是如果要在企业官网发布应用下载,Android 的其实很容易,就是 apk(Android Package)文件的 url 地址,访问即可下载,和 Windows 平台的 exe、zip 这种下载是一样的。但是 ios 不行,ios 无线设备的安装包格式为 ipa(iPhone Application),这个如果上传到服务器中,直接访问 url 是不起作用的,这个过程是很难说清楚的,但是原因很简单就是为了安全,苹果在这一点是做的非常好的。但是如果应用还没上架,要公测呢?本文带你了解如何在企业网站发布 ios 应用下载。
index.html 文件
下载页面其实非常容易,如果点击唤醒 Apple stone 是很简单的,但是要直接下载安装包,也就是信任模式安装,在导读中也已提到是不可以直接访问 ipa 文件的 url 下载的。所以要创建一个网页,内容是。
<script>
window.location.href='itms-services://?action=download-manifest&url=https://域名/download/sjar.plist';
</script>
网页内容如此即可,存为 index.html,这个就是下载的落地页,或者叫引导页,懂我意思就行。但是建议把 index.html 放到一个单独的目录里,比如建立 download 目录,就是 https://域名/download,随后把 ipa、apk、plist 都放到 download 目录。
设定我的 ipa 文件名为 sjar.ipa,bundleID 是 com.shijianairen.www,bundle version 是 1.0.0,软件名为测试,以此来参考配置下面的文件吧
ipa 文件
ipa 文件就是 ios 移动设备的安装包,这个没什么好说,但是需要注意的是 ipa 文件的文件名要和接下来将到的 plist 的文件名一致。比如 ipa 文件全名为:sjar.ipa,则 plist 的文件全名也要是 sjar.plist,文件名一致,文件全名包括了(文件名)+(.)+(文件扩展名[文件格式])。
plist 文件
plist(Property List)的中文意思就是属性列表,在 GNUstep 和 NeXTSTEP 里面是一种用来存储序列化后的对象的文件,属性列表文件的文件扩展名为.plist,因此通常被称为 plist 文件。 Plist 文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的 Mac OS 中是由资源分支提供的。
言归正传,讲讲这个 plist 文件。首先把代码贴出来吧,plist 文件名为sjar.plist。请严格按照以下代码标记处进行修改。切勿修改标签及声明等任意部分。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://域名/download/sjar.ipa【第一处】</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://域名/download/fullimg.png【第二处】</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://域名/download/disimg.png【第三处】</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.shijianairen.www【第四处】</string>
<key>bundle-version</key>
<string>1.0.0【第五处】</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>install app</string>
<key>title</key>
<string>测试【第六处】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plist 文件修改讲解:
- 第一处 software-package 的 url,就是 ipa 的 url 绝对路径。
- 第二处 full-size-image 的 url,就是应用程序的图标,512*512 像素,注意是 png 格式,绝对路径。
- 第三处 display-image 的 url,就是下载和安装过程中的图标,57*57 像素,也是 png 格式,绝对路径。
- 第四处 bundle-identifier,就是应用程序的包标识符,和 Xcode 中指定的完全一样。
- 第五处 bundle-version,就是应用程序的包版本,也是在 Xcode 中指定的。
- 第六处 install app 的 title,就是应用程序名,软件名。
切记只修改这六处即可,别的不要动。并注意:plist 文件必须是 https 协议。关于 https 的部署可以参考文末的文章。
完成之后,确定一下这个结构:有两个应用 logo,一个是 512*512px,一个是 57*57px,一个下载的落地页,一个 ipa 的安装包,一个 sjar.plist 的属性列表(理解为配置文件)。当然不一定这些都在一个文件里面,但是涉及到的 url 一定要是绝对地址。
此时,使用 ios 移动设备访问 https://域名/download/index.html,即可下载(前提是开启了信任安装)。再配上一些应用发布的模板,或者找前端写一个。就算彻底完成了
https 部署参考
- 我当前使用的 Nginx 下站点 SSL 证书配置分享
- 在 IIS6/7/8 下部署 SSL 证书实现 HTTPS 的方法
- 网站 SSL 证书到期后如何进行续购更换?
- 老薛虚拟主机站点傻瓜式安装免费 SSL 证书
- 如何将.crt、.cer、.pfx、.p7b、.der 的 ssl 证书转换成.pem 格式?
- 或访问 boke112 导航搜索 https、ssl 等关键词,依据不同的服务器操作系统和环境配置 ssl 证书。