【App】不通过App Store实现ios应用分发下载安装(转)
转自:https://www.cnblogs.com/star91/p/5018995.html
- 1、应用程序 后缀(.ipa) 文件(使用了企业级预置描述文件);
- 2、清单 (后缀.plist) 文件(xml格式的清单描述文件)。
- 3、网页(后缀.html)文件(引导用户安装的界面)
<?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>http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>请填上你的开发者证书用户名</string>
<key>bundle-version</key>
<string>版本</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>请填上标题</string>
</dict>
</dict>
</array>
</dict>
</plist>
itms-services://?action=download-manifest&url=https://plist文件的地址
<a href="itms-services://?action=download-manifest&url=https://plist文件的地址">安装</a>
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <htmlxmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
5 <title>应用名字</title>
6 </head>
7 <body>
8 <h1style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/>
9 <h1style="font-size:100pt">
10 <a title="iPhone"href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me//你的.plist">点击下载 </a><h1/>
11 </body>
12 </html>
13
<script>
var url ="https://plist文件地址";
window.location ="itms-services://?action=download-manifest&url="+ url;
</script>
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://plist文件的地址"]];
最后才是重点,我们不必这么麻烦自己部署这么多文件,完全可以借助第三方应用内测分发平台,比较出名的有下面几个:
应用测试发布平台
fir.im - 免费应用内测托管平台|iOS应用Beta测试分发|Android应用内测分发
蒲公英 - 免费的应用托管平台|App应用众测分发
Pre.im - APP内测托管平台首选 - Beta测试 - 免费的应用内测托管平台
TestFlight Beta Testing - App Store - Apple Developer
https://developer.apple.com/testflight/
试用了一下蒲公英,真是相当方便,只要注册一个帐号,将ipa文件上传,就会立即生成一个下载地址以及引导下载页面
通过查看api可以看到,蒲公英也是通过上面的方式安装的,只是给开发者省了不少时间
如果你嫌蒲公英的下载引导页面不好看,你可以自己做一个html页面,直接是用上面的itms-services地址。
【App】不通过App Store实现ios应用分发下载安装(转)的更多相关文章
- 不通过App Store实现ios应用分发下载安装
最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到 ...
- ios实现分发下载
背景:原来公司Jenkins打包后的ipa和apk都是通过第三方的平台托管,手动上传,然后去扫二维码下载.虽然第三方平台有Jenkins插件来直接上传到该平台,但是想自己进行管理.所以就自己来做安装包 ...
- 聊聊Web App、Hybrid App与Native App的设计差异
目前主流应用程序大体分为三类:Web App.Hybrid App. Native App. 一.Web App.Hybrid App.Native App 纵向对比 首先,我们来看看什么是 Web ...
- 超赞!聊聊WEB APP、HYBRID APP与NATIVE APP的设计差异
编者按:这3类主流应用你都了解吗?设计师除了要有视觉功夫,对不同形式的APP也应当了然于胸,今天百度的同学写了一篇非常全面的总结,帮你迅速搞定3类主流APP的设计方法,附带一大波避雷针,带你巧妙跳过A ...
- Web App、Hybrid App与Native App的设计差异
目前主流应用程序大体分为三类:Web App.Hybrid App. Native App. 一.Web App.Hybrid App.Native App 纵向对比 首先,我们来看看什么是 Web ...
- 聊聊Web App、Hybrid App与Native App的设计差异(转)
目前主流应用程序大体分为三类:Web App.Hybrid App. Native App. 一.Web App.Hybrid App.Native App 纵向对比 首先,我们来看看什么是 Web ...
- [转帖]聊聊Web App、Hybrid App与Native App的设计差异
聊聊Web App.Hybrid App与Native App的设计差异 https://www.cnblogs.com/zhuiluoyu/p/6056672.html 编者按:这3类主流应用你都了 ...
- iOS App Store上架新APP与更新APP版本
iOS App Store上架新APP与更新APP版本 http://www.jianshu.com/p/9e8d1edca148
- 【转】APP被苹果App Store拒绝的N个原因(持续补充)
作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. 1.程序有重大bug,程序不能启动,或者 ...
随机推荐
- ssm框架出现的常见问题
1:自己写的代码测试的时候显示用户过期,需要释放拦截器,并配置权限允许 2:Servlet.service() for servlet [springmvc] in context with path ...
- Java 构造器 通过私有构造器强化不可实例化的能力
只有当类不包含显式的构造器时,编译器才会生成一个公有的.无参的缺省构造器.只要让一个类包含私有构造器,这个类就不能被实例化了.示例: // 工具类 public class UtilityClass ...
- NodeJS Stream流
NodeJS Stream流 流数据在网络通信中至关重要,nodeJS用Stream提供了一个抽象接口,node中有很多对象实现了这个接口,提供统一的操作体验 基本流类型 NodeJS中,Stream ...
- 11-13 js操作css样式
1.Js操作css样式 Div.style.width=”100px”.在div标签内我们添加了一个style属性,并设定了width值.这种写法会给标签带来大量的style属性,跟实际项目是不符. ...
- sql 索引笔记
以下资料来自MSDN. 数据库注意事项 设计索引时,应考虑以下数据库准则: 一个表如果建有大量索引会影响 INSERT.UPDATE 和 DELETE 语句的性能,因为在表中的数据更改时,所有索引都须 ...
- Gird Layout代码解释
<div class="wrapper"> <!--定义一个类名为wrapper的div盒子--> <div class="one" ...
- PHP05
php05 1.音乐案例删除部分 1)通过执行某些PHP代码获取到指定的数据,填充到html的指定位置 accept属性也可以直接写扩展名,多个扩展名间用英文的逗号分隔 accept=".l ...
- scipy.stats
scipy.stats Scipy的stats模块包含了多种概率分布的随机变量,随机变量分为连续的和离散的两种.所有的连续随机变量都是rv_continuous的派生类的对象,而所有的离散随机变量都是 ...
- Linux之网络编程:时间服务器
基于TCP-服务器 1,创建一个socket套接字 int socket(int domain,int type,int protocol) domain:IP地址族,AF_INET(IPv4).AF ...
- tmux终端工具的简单使用
Linux上管理和运行进程除了程序级别的守护进程之外,经常用到的有比如nohup &的方式,以及screen会话的方式,而Tmux正是一个非常优秀的终端进程管理的软件,和GNU screen类 ...